Search
Write a publication
Pull to refresh
5
0

Специалист по БД

Send message

Личный опыт: переезд на собственное хранилище репозиториев в GitLab CE

Reading time6 min
Views17K

На связи Саша Хрущев, технический директор IT-компании WINFOX. Рассказываю, как мы быстренько развернули свое независимое локальное хранилище репозиториев в GitLab CE, сколько времени это заняло и какие особенности вам нужно учитывать при переезде, чтобы все прошло гладко. 

Читать далее

Qubes — защищенная ОС

Reading time9 min
Views28K

Qubes OS использует виртуализацию для реализации доменов безопасности посредством изоляции и компартментализации. Это хорошо, потому что виртуализация снижает количество интерфейсов между доменами безопасности, но несмотря на это позволяет доменам безопасности сосуществовать и коммуницировать. Представьте, что на "железе" вашего лэптопа запущен гипервизор первого типа Xen с каким-нибудь ядром Linux и дополнительным кодом для поддержания связи между имеющимися виртуальными машинами, плюс ряд дополнительных средств обеспечения безопасности - это и будет Qubes.

Читать далее

Создание и запуск веб-приложения в ASP.NET Core

Reading time30 min
Views16K


Эта статья является продолжением двух предыдущих занудных статей под общим заголовком "О классах Program и Startup — инициализация ASP.NET приложения": "Program и IHostBuilder"[1] и "IWebHostBuilder и Startup"[2] — в которых подробно написано о том, что происходит в процессе инициализации приложения ASP.NET, сделанного по шаблону Generic Host. В тех двух статьях я рассказывал, как производится настройка и выполняется создание объектов конфигурации (она доступна через интерфейс IConfiguration), контейнера сервисов (он же DI-контейнер, его интерфейс — IServiceProvider) и размещения (интерфейс IHost). А в этой статье я собираюсь подробно рассказать, что происходит сразу после того, как приложение запускается на выполнение в объекте размещения.
Написав третью статью на примерно одну и ту же тему, я подумал, что и первые две, и эта должны стать частью одной серии, которую я для себя озаглавил "Под капотом" (см. КДПВ)


Предупреждение: статья занудная

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


TLDR, она же аннотация
  1. Запуск приложения, состоящего из размещенных (фоновых) сервисов в Generic Host (конструктор класса Internal.Host и его метод StartAsync).
  2. Запуск размещенного сервиса веб-приложения (Конструктор класса GenericWebHostedService и его метод StartAsync)
  3. Создание конвейера компонентов-обработчиков запроса(middleware). Класс ApplicationBuilder.
  4. Заключение

Но если вам все ещё интересно (или не интересно, но читать все равно зачем-то надо) — добро пожаловать под кат (и не говорите, что я вас не предупреждал, что легкого чтения не будет).

Читать дальше →

Как один мужик карту города рисовал

Reading time3 min
Views13K

Всем привет!



Сегодня поговорим о визуализации геоданных с помощью GeoPandas и Kepler.gl. Хотел бы рассказать, как я за пару дней построил вот такую карту, где высота полигонов регулировалась этажностью здания, а цвет - годом постройки.

Читать далее

Превращаем HTML table в GridComponent. Часть I. Frontend

Reading time17 min
Views8K

Привет хабровцы и любители фронтенда!

Это моя первая статья, в которой я хочу поделиться своими первыми шагами в мир frontend разработки на VueJS. И в качестве примера для изучения я решил реализовать вариант грида со стандартным набором функционала: сортировкой, фильтрацией и пагинацией.

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

Читать далее

Record vs struct — когда кто кого

Reading time13 min
Views32K

В .Net, помимо типов class и struct, с недавних пор есть еще и типы record и record struct. Появление двух новых типов могло внести запутанность по поводу того, в чем их сходства и различия, и в каких случаях стоит их применять. В этой статье мы разберем, в каких ситуациях использовать class, record, struct, и какие преимущества даёт тот или иной тип в различных ситуациях. В конце мы приведем шпаргалку, которая поможет быстро определиться, какой из видов типов лучше подходит в том или ином случае.

Читать далее

Как backend разработчики frontend писали (Vue + TS + Webpack)

Reading time10 min
Views8.5K

У нас в команде есть пару проектов, для которых есть старые frontend. Написаны все они на разных технологиях, но объединяет их одно: нежелание кого-либо туда лезть и что-то править. Команде там кажется страшно, непонятно и неудобно. Любая доработка превращается в головную боль. В очередном проекте нам хотелось не допустить такого развития событий, и, кажется, у нас получилось.

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

Читать далее

DIY. Книги для всех, даром

Reading time7 min
Views36K

Lingtrain cover


⚡ Градиент обреченный


Upd. 11.06.2022 Многие заинтересовались генерацией изображений нейросетями. Вот Colab (интерактивная среда для запуска кода) для рисования картинок в стиле pixel art по текстовому описанию. Просто запускайте, ближе к концу увидете ячейку для ввода текста. Примеры картинок из Colab'а в комментариях.


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


Сегодня же я расскажу как при помощи него создать полноценную параллельную книгу на разных языках. Книга будет красиво сверстана в PDF, иметь содержание, обложку и две выровненные по смыслу колонки текста. Такие книги служат отличным подспорьем при изучении иностранного языка. Найти их, однако, не так просто, и скорее всего это будут книги для детей или избранная классика. Полный пример готовой книги можно посмотреть здесь. Под капотом у приложения NLP модели, поддерживаемых языков более ста.


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

Сделать книжку

multiboot usb-drive. своими руками

Reading time7 min
Views24K

Давненько пользуюсь мультизагрузочным внешним жестким диском, набитым различными дистрибутивами Linux. В свете последних событий и очередной волны импортозамещения понадобилось дополнить его и «отечественными» дистрибутивами. Решил сделать для себя небольшое HOWTO, заодно поделиться с сообществом.

Кому стало неинтересно — расходимся. Никаких сакральных знаний тут не будет.

Читать далее

По дороге с облаками: интеграция пакета ONLYOFFICE в Nextcloud

Reading time7 min
Views43K

Надеюсь, ни для кого не секрет, что вследствие определённых причин интернет начал сильно преображаться. Например, привычные сервисы становятся недоступны в силу блокировок или собственного решения компании о прекращении предоставления услуг в отдельных регионах.
Читать дальше →

Как перевести 100 000 учеток на микросервис и ничего не сломать

Reading time9 min
Views7K

Меня зовут Андрей Рождествин, я QA-специалист СберМаркета. После роста заказов аутентификация на монолите перестала с ними справляться. Я расскажу, как мы перевели её на микросервис и подружили с ним мобильное приложение.

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

Читать далее

Monotype ушел из России. Чем заменить популярные иностранные шрифты?

Reading time4 min
Views18K

На прошлой неделе компания Monotype — владелец прав на популярные шрифты Times New Roman, Verdana, Arial, Helvetica и Tahoma — объявила об ограничении доступа из России к своей библиотеке и сообщила о приостановке взаимодействия с российскими организациями. Новость стала еще одним поводом обратить внимание на специфику использования проприетарных шрифтов в бизнес-среде – проблему, которая выходит далеко за рамки ситуации с Monotype. Речь о возможных сложностях при отображении существующих документов и шаблонов, особенно при работе с различными таблицами, формами и автоматически формируемыми файлами из информационных систем.


Для минимизации подобных проблем мы в МойОфис еще шесть лет назад представили свои шрифты XO_Fonts. Они свободно распространяются и доступны бесплатно. Сегодня этот набор состоит из 11 шрифтов и 24 начертаний. Их особенностью является метрическая совместимость с распространенными проприетарными шрифтами, которая позволяет сохранить оригинальное форматирование и верстку документов, ранее созданных с использованием популярных иностранных шрифтов.

Некоторое время назад на D-Russia была опубликована история создания XO_Fonts. Теперь мы предлагаем ознакомиться с ней и читателям Хабра.

Читать далее

“Сигма дельта” или как сделать хорошую звуковую карту из STM32F401

Reading time5 min
Views18K

Жене мешают смотреть последние новости из телефона и телевизора, приходящие поесть (первично ?) и поиграть на компьютере (вторично?) внуки. Она их конечно любит , но звуки их взаимодействия с компьютером ее сильно раздражают. Пришлось надеть на внуков наушники. А звуковой выход у компа в неудобном месте и каждый хочет со своей громкостью. Ну пришлось разработать внешнюю USB звуковую карточку. Хочется и красиво и качественно. Впрочем, внуки скорее , только повод для поностальгировать по своей старой специальности радиоконструктора и вообще, так как последние двадцать с лишним лет я далеко от нее и пишу заклинания программы реконструкции изображений для медицинских томографов в больших и не очень фирмах , то есть энжинер-погромист по специальности. Хотел написать статью на эту очень интересную и важную тему (компьютерная томография), но выяснилось что мне нельзя по условиям контракта ...

Итак вернемся к нашим баранам внукам и звуковым карточкам, у нас есть в нескольких экземплярах(овер дофига,купил пока были дешевые) модули из Китая:

1. Stm32f401ccu6 black pill – сейчас $3 за штучку

2. I2S DAC Decoder GY-PCM5102 ->$3.5 за штучку

3 .SPI display ips 1.3 inch 240x240 (controller st7789) ->$7 за два

Сначала построим максимальную конфигурацию из двух экранов и I2S GY-PCM5102.

Конфигурируем куб, разбавляем его говно код своим г. кодом, добавляем ФАПЧ ( фазовой автоматической подстройки частоты или PLL на ихнем ) , для согласования скоростей приходящих от компьютера данных и выдачи на i2s внешний ЦАП (DAC). Хмм , звучит очень неплохо, явно лучше большинства встроенных звуковушек. PCM5102 – весьма и весьма качественный ЦАП за свою цену в пару- тройку долларов за модуль с чипом. Добавляем отображение индикаторов уровня на паре неплохих дисплеев st7789 ...

Итак вернемся

Эргономичный подход к разработке информационных систем v1.0M1

Reading time8 min
Views1.8K

... или как писать программы, которые приносят больше положительных эмоций.

Работу над Эргономичным подходом я начал весной 2020 года. Причиной тому стал возврат к работе над стандартными для экосистемы Spring-а проектами после четырёхлетнего перерыва.

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

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

И вот что у меня получилось...

Хранение кода в SCM

Reading time11 min
Views9.7K

Смотри, ты устроился работать в большую компанию, где много команд, каждая разрабатывает свой продукт, часть из них создаёт микросервисы вокруг ядра, часть создаёт свои отдельные полноценные продукты. И, допустим, вся разработка до сих пор не использует централизованное хранение кода, работает без CI/CD и без наработок DevOps. Твоей первой задачей поставили организовать подход к хранению исходного кода в рамках всей компании. По секрету скажу, большие компании любят, когда используется единый подход, индивидуализм для бизнес-конвейеров всегда означает сложность управления сроками разработки, поставки и т.д. Задача, которая кажется простой на первый взгляд, всегда обрастает сложностями в нюансах.

Ты настроен на волну NotOps и в этой статье я постараюсь ответить на вопросы:

Читать далее

Docker, VSCode, GitLab и Office: бесплатные альтернативы популярным сервисам для программирования и работы

Reading time4 min
Views23K

В результате приостановки работы зарубежных компаний и отключения российских компаний от платежных систем Visa и MasterCard многие программисты столкнулись с проблемой доступа к привычным сервисам. Рассказываем о бесплатных альтернативах продуктам, которые уже недоступны для российских пользователей по корпоративным подпискам или могут стать такими в ближайшее время.

Читать далее

Властелин структур

Reading time15 min
Views11K

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

Читать далее

Keycloak X. Что за зверь и с чем его едят?

Reading time9 min
Views15K

Недавно мы с коллегами из X5 Tech проводили митап, на котором разбирали, что такое Keycloak X и чего от него ждать. Для тех, кто пропустил или предпочитает читать, а не смотреть, подготовили текстовый вариант. 

Меня зовут Виктор Попов, я техлид DevOps-команды в X5 Tech. И я расскажу, как сэкономить время на чтении плохой документации, с какими сложностями можно столкнуться при обновлении на Keycloak X и как их преодолеть.

Читать далее

О чём говорили на митап по Keycloak от X5 Tech

Reading time1 min
Views5.8K

Привет! Недавно X5 провела об опенсорсном проекте Keyckloack. По традиции публикуем запись мероприятия и презентации спикеров.

Читать далее

JSON Web Token и Secure Sockets Layer

Reading time7 min
Views20K

Для начала разберем небольшую задачу. Она поможет читателю получить представление об основах шифрования.

Представим, что у нас есть сундук с важными документами. Мы хотим отправить его из пункта А в пункт Б, но так, чтобы никто не мог открыть его содержимое по пути следования. На сундук можно повесить замок/замки, отправлять сундук несколько раз, принимать обратно, передавать ключ/ключи через посредника. Посредник может скопировать ключ или даже сам сундук, подобно файлам на компьютере. Как же выстроить цепочку передачи, чтобы посредник не получил доступ к закрытым документам при перевозке?

Читать далее

Information

Rating
6,701-st
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Database Developer
ASP.NET Web API
PostgreSQL
Git