Pull to refresh
-5
@andmerk93read⁠-⁠only

User

Send message

Коротко про слоты в Vue.js

Level of difficultyEasy
Reading time3 min
Views5.4K

Привет, Хабр!

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

Читать далее

Как делать дробление бизнеса, чтобы использовать IT-льготы Минцифры

Reading time8 min
Views2.9K

В марте 2022 года ФНС опубликовала письмо в котором разрешила компаниям выделять IT-направление в отдельное юрлицо без рисков по обвинению в дроблении. В статье рассказываем, как работает этот механизм, в чем выгода для бизнеса и реально ли ФНС «разрешила» дробиться?

Читать далее

Искусство аугментации: как улучшить модели компьютерного зрения без сбора новых данных

Level of difficultyMedium
Reading time22 min
Views5.4K

Представьте, что вы разрабатываете модель компьютерного зрения для распознавания кошек на фотографиях. Чем больше разных фото кошек вы покажете модели, тем лучше она будет справляться с задачей. Но что делать, если у вас не хватает фотографий? Вы же не пойдете делать 10000 фотографий вашего питомца? На такой случай существует решение — метод аугментации данных.

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

Читать далее

Анализ вакансий ИТ в Москве: системное администрирование, 2024г

Level of difficultyEasy
Reading time19 min
Views11K

Прошел еще один год и снова появилась необходимость актуализировать и проанализировать данные по предложениям работы в сфере системного администрирования для дальнейшего планирования заработных плат специалистам уже на 2025 год.

В этот раз мы дополнительно сравним результаты со значениями проведенного анализа в 2022 и 2023 годах.

Цели, условия, методика и формат анализа остались без изменений, их можно прочитать в предыдущих статьях или спойлером ниже. Данные по каждой должности сравним с предыдущими периодами по количеству вакансий и по заработным платам.

Читать далее

Учимся следить за браузером Vivaldi

Reading time8 min
Views14K


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

Он запускает сканер сетевой активности и с ужасом смотрит на множество автоматических подключений браузера к серверам Vivaldi или даже Google.

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

Впрочем, большинство таких любознательных пользователей ничего нам не напишет, а просто сделает для себя вывод, что Vivaldi банально шпионит за их активностью и даже время от времени «сливает» детали в Google. Ну, а чего удивляться — ведь другие браузеры не стесняются мониторить активность своих пользователей и отправлять подробности разработчикам браузера.
Читать дальше →

Как GitHub заменил SourceForge в роли доминирующей платформы для хостинга кода

Level of difficultyEasy
Reading time12 min
Views4.8K

Уже 16 лет инженеры и разработчики всего мира размещают код своих проектов на GitHub. Но что было до него? Как сервис занял доминирующее положение на рынке? Разбираемся и смотрим скриншоты из конца нулевых вместе с Грегом Фостером, CTO Graphite.

Читать далее

Почему GitHub на самом деле победил: история глазами сооснователя

Level of difficultyEasy
Reading time17 min
Views12K

Недавно мы опубликовали в блоге перевод статьи о том, как GitHub заменил SourceForge в роли доминирующей платформы для хостинга кода. Но, как справедливо отметил автор оригинала, его мнение основано на открытых источниках и интервью с коллегами. А потом своим ви́дением поделился один из сооснователей GitHub, Скотт Чакон, который «действительно был там». Под катом — перевод его ответной статьи о реальных причинах победы GitHub. 

Читать далее

How sqlalchemy uses greenlet to call an async Python function from a normal function

Reading time5 min
Views4K

The Python language has two kind of functions — normal functions that you would use in most cases, and async functions. The latter functions are used when performing network IO in an asynchronous manner. The problem with this division is that async functions can only be called from other async functions. Normal functions, on the other hand, can be called from any functions — however, if you call a normal function that does a blocking operation from an async function, it will block the whole event loop and all your coroutines. These limitations usually mean that when writing an using Python`s asyncio, you can`t use any of the IO libraries that you use when writing a synchronous application, and vice versa, unless a library supports usage both in sync and async applications.

Now, the question is, in case you are developing a large and complex library, that, say, allows users to interact with relational databases, abstracting away (some of) the differences between the SQL syntax and other aspects of these databases, and abstracting away the differences between the drivers for that database, how do you support both sync and async usage of your library without duplicating the code of your library? The way sqlalchemy is organized is that regardless of what database and driver for it you are using, you will be calling functions and methods related to Engine, Connection, etc classes, which will do some general work independent of database, then apply the logic specific to your database and finally, call the functions of your database driver to actually communicate with the database. If you are using Python`s asyncio, the database driver will expose async functions and methods, but the rest of the library that is driver‑independent would ideally remain the same. However, the issue is that that you can`t call the async functions of the driver from the normal functions of the core of the library.

Read more

Размышления о Нобелевской премии по физике 2024

Level of difficultyEasy
Reading time4 min
Views10K

Нобелевская премия по физике за 2024 год останется в истории науки как одно из самых спорных решений комитета. Однако, несмотря на спорность этого решения, скорее всего, проблема кроется в кризисе современной физики.

Читать далее

Как я написал бота для саммари telegram каналов

Level of difficultyEasy
Reading time3 min
Views5.8K

Всем привет!
Меня зовут Азрет, я - CTO в AAA (читается как "трипл-эй"). Мы разрабатываем LLM приложения для бизнеса. Решаем разнообразные задачи - оптимизация внутренних процессов за счет ИИ, маркетинговые исследования и запуск новых продуктов. Но запрос на бота, про которого я хочу рассказать, внезапно пришел от фаундера нашего агенства.

Ситуация понятна - я подписан на кучу телеграм каналов, я не успеваю их читать, мне от этого неприятно, я испытываю FOMO. А я бы хотел не пропустить ничего важного, тратить как можно меньше времени и иметь все в одном месте.

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

В этой обзорной статье - детали архитектуры и стека.
Кому интересно - прошу под кат.

Читать далее

Пишем и тестируем миграции БД с Alembic. Доклад Яндекса

Reading time20 min
Views101K
Приложения на бэкенде могут работать с самыми разными базами данных: PostgreSQL, SQLite, MariaDB и другими. Перед разработчиками встает задача реализовать возможность легко и безопасно изменять состояние БД. Менять нужно как структуру базы, так и сами данные от одной версии приложения к другой.


В докладе я поделился опытом использования Alembic — хорошо себя зарекомендовавшего инструмента для управления миграциями. Почему стоит выбрать именно Alembic, как с его помощью подготовить миграции, как их запускать (автоматически или вручную), как решить проблемы необратимых изменений, зачем тестировать миграции, какие проблемы могут выявить тесты и как их реализовать — на все эти вопросы я постарался ответить. Заодно поделился несколькими лайфхаками, которые сделают работу с миграциями в Alembic легкой и приятной.
Читать дальше →

Битрикс для программиста и менеджера: любовь и ненависть

Reading time7 min
Views18K
Здравствуйте. Я уже давно не пишу на php, но то и дело натыкаюсь на интернет-магазины на системе управления сайтами Битрикс. И я вспоминаю о своих исследованиях.

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

И это всё очень интересно.

Джумла вызывает смех.
Вордпресс вызывает удивление.
Битрикс вызывает ненависть. Почему? Я захотел ответить именно на этот вопрос, и этот ответ оказался неожиданным.
Читать дальше →

Модель CMMI

Reading time8 min
Views109K
Всем здравствуйте! Наконец-то я на Хабре. Постараюсь незамедлительно начать приносить пользу если не всему сообществу, то хотя бы некоторой его части:)

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

Что такое CMMI?


Википедия даёт следующее определение:
Capability Maturity Model Integration (CMMI) – Комплексная модель производительности и зрелости – набор моделей (методологий) совершенствования процессов в организациях разных размеров и видов деятельности. CMMI содержит набор рекомендаций в виде практик, реализация которых, по мнению разработчиков модели, позволяет реализовать цели, необходимые для полной реализации определенных областей деятельности.

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

Обзор LiveWire 3 и Volt

Reading time13 min
Views7.3K

Приветствую всех поклонников Laravel!

Эта статья-обзор новой, уже третьей версии Livewire. Решил сделать эту статью после выпуска на youtube-канале видео обзора Livewire, который понравился аудитории. Ну и заодно также взглянем на новинку - Volt. Думаю, многие из вас ждали этот обзор и особенно обзор Volt.

Читать далее

50 оттенков линейной регрессии, или почему всё, что вы знаете об A/B тестах, помещается в одно уравнение

Reading time18 min
Views26K

Всем привет! A/B тестирование уже давно стало стандартом в проверке гипотез и улучшении продуктов в X5. Но, как ни странно, многие из «модных» техник, которые применяются в A/B тестировании, на самом деле, не что иное, как вариации старой доброй линейной регрессии. 

Основная идея здесь проста: правильное добавление новых переменных в модель помогает лучше контролировать внешние факторы и уменьшать шум в данных. Это позволяет точнее оценить эффект от воздействия и объединить разные статистические подходы, которые обычно рассматриваются отдельно. Но почему это работает? Почему всё сводится к тому, что добавление переменных помогает объединить, казалось бы, разрозненные техники? 

Чтобы разобраться в этом, для начала вспомним основы линейной регрессии, после чего перейдём к различным статистическим методам снижения дисперсии и покажем, как они сводятся к линейной регрессии. Затем объединим все техники вместе и на примере покажем, как они работают на практике.

Читать далее

Микросервисы в представлении среднего разработчика, и как всё на самом деле

Level of difficultyMedium
Reading time11 min
Views70K

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

Когда спрашиваю у людей на собесах, или когда в команде решаем, как клепать очередной проект, такое порой слышу, что становится страшновато. Мне кажется, лет через 5 все компании будут обитать в мультивселенной безумия из “микросервисов”, которую они себе радостно построили, уходя от этих ваших страшных “монолитов”.

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

погрузиться в микросервисы

Деконструкция монолита: Максимально производительный подход к проектированию программ

Reading time10 min
Views7.2K

Как и почему компания Shopify перешла от монолитной архитектуры к модульно-монолитной.


image

У компании Shopify одна из крупнейших баз кода на Ruby on Rails. Над ней трудились более десяти лет свыше тысячи разработчиков. Она включает множество разнообразных функций, например, выставление счетов продавцам, управление сторонними приложениями, обновление информации о товарах, обработка доставки и так далее.

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

USB over IP в домашних условиях

Reading time4 min
Views57K
Иногда возникает желание работать с устройством, подключенным по USB, не держа его на столе рядом с ноутбуком. У меня таким устройством является китайский гравёр с лазером на 500 мВт, штука довольно неприятная при близком контакте. Помимо непосредственной опасности для глаз, в процессе работы лазера выделяются токсичные продукты горения, поэтому устройство должно находится в хорошо проветриваемом помещении, и желательно изолированно от людей. А как же таким устройством управлять? Ответ на данный вопрос я случайно нашел, просматривая репозиторий OpenWRT в надежде найти достойное применение старенькому роутеру D-Link DIR-320 A2. Для подключения решил использовать описываемый на Хабре ранее USB over IP tunnel, однако все инструкции по его установке успели потерять актуальность, поэтому пишу свою.
Читать дальше →

И снова о Redmi AX6S + OpenWRT

Level of difficultyMedium
Reading time15 min
Views42K

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

Хочу прошить!

Какой роутер для OpenWrt купить в 2025 году?

Level of difficultyEasy
Reading time21 min
Views290K

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

Роутер, как и любой другой девайс, нужно покупать под запрос. Например, линуксоиды привыкли покупать ноутбуки именно под Linux, а не первый попавшийся. Также и тут: если нужен OpenWrt, то роутер тоже надо выбирать с умом, а не надеяться на то, что кастомная прошивка сделает конфетку из роутера за 700 р.

В 2023 и 2024 появились интересные роутеры, которые уже поддерживаются проектом OpenWrt. Эти роутеры сделаны на базе ARM-процессоров. Такие роутеры появились у нескольких компаний, и дальше их количество будет только увеличиваться.

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

Инженер АСУТП
SQL
Python
Network administration
System administration
Server administration
PLC
PLC programming
SCADA
APCS