Pull to refresh
120
0.2
Evengard @Evengard

Немного: реверсер, администратор, .NET программист

Send message

Разработка и применение систем разграничения доступа на базе атрибутов

Reading time16 min
Views8.1K

Привет! Меня зовут Михаил, в Positive Technologies я руковожу бэкенд-разработкой метапродукта MaxPatrol O2. В этой статье я расскажу, зачем нам в компании понадобилось разграничение доступа на основе атрибутов. Его еще называют ABAC (attribute-based access control). Рассмотрим, чем ABAC отличается от других способов разграничения доступа, как это реализуется и что мы в итоге сделали у себя.

Читать
Total votes 9: ↑9 and ↓0+9
Comments6

Практическое руководство по Rust. 2/4

Level of difficultyMedium
Reading time30 min
Views6.9K



Hello world!


Представляю вашему вниманию вторую часть практического руководства по Rust.



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


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments2

Учим ИИ играть в настолку Magic the Gathering

Level of difficultyMedium
Reading time8 min
Views3.8K

За последние полгода я несколько раз писал о тонкой настройке (fine tuning). Fine tuning — очень соблазнительная технология, обещающая закрыть проблемы в функциях GPT-4, будучи при этом быстрее и дешевле. Однако как бы часто не обсуждали fine tuning, я нашёл на удивление мало контента о том, который бы помог мне понять, насколько эффективен fine tuning и насколько сложно встраивать новые возможности в языковые модели.

Поэтому я решил взять всё в свои руки, сдуть пыль с моих навыков ML и разобраться самостоятельно.

Выбор задачи

Меня особенно интересовала проверка возможностей модели рассуждать (то есть выполнять достаточно сложные задачи, требующие хорошего понимания контекста ) о данных вне распределения (то есть о тех, которые модель не видела). В конечном итоге я выбрал своё хобби: коллекционную карточную игру Magic the Gathering (и в частности, драфт).

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

Определение расстояния между географическими точками в MySQL

Reading time3 min
Views67K
При разработке современного сайта часто возникает необходимость реализовать функционал вывода близлежащих географических точек. Самым оптимальным способом решения этой задачи является перекладывание работы по реализации определения точек на плечи MySQL. Если конкретней, то нам будут нужны возможности пространственных расширений MySQL (до версии 5.0.16 эти расширения были доступны только для MyISAM, более поздние версии MySQL поддерживают работу пространственных расширений с InnoDB, NDB, BDB и ARCHIVE).

Расстояние между точками будет вычисляться по формуле гаверсинусов. Формула позволяет получать расстояние между точками с очень низкой погрешностью (величина погрешности прямо пропорциональна расстоянию между точками, и не превышает 10-20 километров при вычислении очень больших расстояний, например между штаб-квартирой Google в Калифорнии (37.422045, -122.084347) и оперным театром в Сиднее, Австралия (-33.856553, 151.214696)).

Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments41

«ИИ без границ»: как научить Transformer обрабатывать длинные тексты

Level of difficultyHard
Reading time12 min
Views7.2K

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

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

Что я хотел бы знать заранее, когда выкупал себе целую ASN

Reading time16 min
Views12K

Как вы, возможно, знаете, я сейчас пишу серию статей о BGP и о том, как устроен Интернет. Рассказываю об этом с собственной точки зрения — как оператор небольшой автономной системы, AS200 351. Притом, что теоретического материала на эту тему много, предположу, что мои читатели достаточно поднаторели в теории и умеют самостоятельно обустроить элементарную автономную систему. Не вынуждая вас заниматься самостоятельными исследованиями, основанными на неактуальной и потенциально ошибочной информации, взятой из Интернета, а тем более не подвергая вас риску столкнуться с мошенничеством, полагаю, было бы важно рассказать, каково это — приобрести собственную ASN.

Читать далее
Total votes 26: ↑25 and ↓1+24
Comments9

Дообучение ruGPT-3.5 13B с LoRA

Level of difficultyMedium
Reading time10 min
Views16K

Добрый день, уважаемые читатели и авторы Хабра!

Сегодня я рад представить вам подробное руководство по обучению модели ruGPT-3.5 13B с использованием датасетов модели Saiga-2/GigaSaiga, технологии Peft/LoRA и технологии GGML. Эта статья призвана стать полезным и практичным ресурсом для всех, кто интересуется машинным обучением, искусственным интеллектом и глубоким обучением, а также для тех, кто стремится глубже понять и освоить процесс обучения одной из самых мощных и перспективных русскоязычных моделей.

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

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

Истории из жизни вредоносов: Отражающая DLL инъекция

Level of difficultyMedium
Reading time5 min
Views2.7K

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

В этой статье речь пойдет об использовании отражающих dll инъекций (reflective dll injection), которые позволяют в определенной степени спрятаться от средств защиты на этапе закрепления на машине жертвы.

Читать далее
Total votes 15: ↑13 and ↓2+11
Comments1

Что происходит с рождаемостью в России и мире. И как это может отразиться на каждом из нас

Level of difficultyEasy
Reading time11 min
Views145K

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

С первого взгляда кажется, что эта тема очень узкая и уж точно не имеет отношения к IT. Но уменьшение населения, а что ещё более важно, изменение его возрастной и национальной структуры затрагивает все стороны жизни. Экономику - как пример длительная рецессия в Японии или поднятие пенсионного возраста в разных странах, общество - беспорядки на национальной почве как во Франции, право - обсуждение запретов абортов в России. Представьте, ваша девушка (или вы сами, если вы девушка) беременна, в стране аборты запрещены, а улететь можно только сдав кровь на ХГЧ, и если тест положительный за границу не пускают. Сейчас выглядит как бред, но в 2019 году наша реальность тоже показалась бы бредом.

Я пишу цикл статей по этой тематике. Разбираюсь в причинах, прогнозирую последствия и предлагаю пути решения. В этой статье есть ли вообще такая проблема как кризис депопуляции и почему люди перестали рожать. Если мои статьи заинтересую сообщество, буду продолжать.

Читать далее
Total votes 346: ↑298 and ↓48+250
Comments1961

Реально Бесконечное (лето) RuGPT3.5: Генерация новеллы на ходу нейросетью

Level of difficultyMedium
Reading time24 min
Views23K

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

Будет создан прототип text adventure, основанного на тексте Everlasting summer, проведена оценка потенциала RuGPT3.5 в разных аспектах подобной задачи и проведено дообучение модели для получения лучших результатов.

Перейти на другую временную линию
Total votes 32: ↑31 and ↓1+30
Comments23

Сбер открывает доступ к нейросетевой модели ruGPT-3.5

Level of difficultyEasy
Reading time3 min
Views43K

👉 Upd. Добавили пример запуска в Colab'е.

Друзья, свершилось. Сегодня мы рады сообщить вам о релизе в открытый доступ нейросетевой модели, которая лежит в основе сервиса GigaChat.

Про то, что такое GigaChat и как мы его обучаем, вы можете прочитать в нашей предыдущей статье. Скажу лишь, что главной его частью, ядром, порождающим креативный ответ на ваш запрос, является языковая модель обученная на огромном количестве разнообразных текстов — сотен тысяч книг, статей, программного кода и т.д. Эта часть (pretrain) затем дообучается на инструкциях, чтобы лучше соответствовать заданной форме ответа. Обучение такого претрейна занимает около 99% от всего цикла обучения и требует значительного количества ресурсов, которыми обычно обладают только крупные компании.

Этот претрейн, названный ruGPT-3.5, мы выкладываем на Hugging Face под лицензией MIT, которая является открытой и позволяет использовать модель в коммерческих целях. Поговорим о модели подробнее.

Читать далее
Total votes 103: ↑99 and ↓4+95
Comments100

Настройка динамической маршрутизации на роутере OpenWrt c помощью BGP

Level of difficultyMedium
Reading time4 min
Views14K

Туториал о настройке обхода блокировок на роутере с OpenWrt с помощью BGP и сервиса https://antifilter.download/.

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

Обезличенный вызов делегатов в C#

Level of difficultyMedium
Reading time10 min
Views5.6K

Как говорится: сидел, никого не трогал, программировал на C#, и тут родилась «хитрая» нужда. В рамках одного из своих проектов мне понадобился механизм обезличенного вызова делегатов, который бы позволил организовать их универсальные хранение и вызов. Также, главной целью разработки являлся уход от необходимости вызова методов конкретных экземпляров объектов через рефлексию (рефлексия используется только на этапе инициализации), что в конечном счете сильно увеличило производительность.

Обезличенный вызов делегата - вызов делегата с известным количеством параметров, но с неизвестными типами параметров, где каждый тип параметра представлен базовым классом Object. Пример: Action<string, int> преобразуется в Action<object, object>.

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

Путь стартапа. От идеи до рабочего бизнеса. 18 шагов опыта

Reading time10 min
Views7.8K

Привет, меня зовут Максим Кульгин. Написал из нашего опыта, как с минимальными вложениями (насчитал прямых затрат на 95 500 руб.) можно сделать ИТ-бизнес в России. В этой статье вы не найдете такие термины, как: 'выгорание', 'питч', 'custdev', 'ментор', 'product market fit', 'k8s', 'mrr/cac/ltv', 'burn rate', 'криптокочевник', 'номад' и т. п. Просто шпаргалка по приземленным этапам, которые проходили мы сами.

Я никого не учу, пишу свое мнение из личного опыта, не считаю, что написанное ниже истина и уверен, что есть множество других «тропинок на вершину горы Фудзи». Более того, если вы поделитесь своим опытом в комментариях — буду признателен. Исхожу из того, что у вас в команде есть минимум два человека (техника и маркетинг). Сделал статью в виде простых шагов от идеи до рабочего бизнеса с максимальной детализацией, где это возможно. Разумеется, я учел не все, ведь скорее всего ваш путь будет отличаться от нашего.

Подчеркну — речь пойдет про то, как запустить ИТ- бизнес «с нуля» (пусть это будет SAAS, например — сервис транзакционных почтовых рассылок, взамен покинувших наш рынок западных аналогов) до первой выручки. Уже потом надо будет учить упомянутые в заголовке статьи нужные и важные термины.

Итак…попробую расписать по шагам.

1. Идея. Кто-то говорит, что идея имеет решающее значение, а кто-то уверен ровно наоборот — «идея ничего не стоит». Все наши рабочие идеи приходят от запросов клиентов, которые готовы за них платить, а все то, что придумали сами — потерянные деньги и время. Лично мне, например, нравится идея сделать SAAS для транзакционных писем, даже зарегистрировал домен mailcheap.ru (дальше регистрации дело не дошло).

Читать далее
Total votes 23: ↑17 and ↓6+11
Comments17

Крякнул софт? Суши сухари

Reading time5 min
Views39K

Именно так считает "товарищ майор", и с подобным утверждением порой соглашается российское правосудие.

С 1997 года в своде законов российских дремлет статья 273 УК РФ (Создание, использование и распространение вредоносных компьютерных программ), карающая не чтившего уголовный закон наказанием вплоть до семи лет лишения свободы.  Судебную практику по данной статье объективно не назовешь обширной, но изучение реальных случаев её применения должно вызывать дрожь и трепет у всякого, возложившего руки на клавиатуру.

Читать далее
Total votes 76: ↑65 and ↓11+54
Comments188

Inkscape с 0 до Pro за 5 дней

Reading time17 min
Views41K

Создал мини курс по программе для векторной графики Inkscape в 2022.

Разработал методические материалы для изучения темы «Кодирование и обработка графической и мультимедийной информации» в школьном курсе информатики.

«Векторные графические редакторы позволяют пользователю создавать и редактировать векторные изображения непосредственно на экране компьютера, а также сохранять их в различных векторных форматах, например, CDR, AI, EPS, WMF или SVG». «Inkscape - редактор векторной графики, аналогичный по своим возможностям таким программам, как Adobe Illustrator, Corel Draw и другим».

Читать далее
Total votes 78: ↑77 and ↓1+76
Comments42

Немножко кодгена

Reading time5 min
Views11K

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

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

Не так страшен Rust, как его излагают

Reading time5 min
Views26K

Последние годы часто хвалят язык программирования Rust. Однако, без изучения синтаксиса и особенностей языка в нём сложно разобраться. Честно говоря, при первом просмотре дальше простых примеров я продвинуться не смог. Вроде догадываешься, что тут указываем тип переменных, амперсанд – это вроде “я только посмотреть”, но всё равно код складывался в некую мешанину иероглифов с кучей скобок и, на первый взгляд, случайно проставленных точек с запятыми. То ли дело Python, минимализм синтаксиса которого так привлекателен для неокрепших душ. Однако, так ли сложен Rust на самом деле или это миф? 

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

Так ли это?
Total votes 51: ↑42 and ↓9+33
Comments123

Иммутабельность в C#

Reading time13 min
Views18K

В разработке программного обеспечения иммутабельным (immutable — неизменяемым) называется объект, который после своего создания не может быть изменен. Зачем вам может понадобиться такой объект? Чтобы ответить на этот вопрос, давайте проведем анализ проблем, которые могут возникнуть в результате мутации (изменения) объектов. Вернемся к основам того, что делает каждое приложение: создает, извлекает, обновляет и удаляет данные (CRUD-операции). Ядро любого приложения манипулирует объектами. Ответ на вопрос о том, работает ли приложение в соответствии со своей спецификацией, в первую очередь определяется правильностью обработки данных. Вам необходимо быть уверенными, что код работает правильно, каждый раз, когда он затрагивает какой-либо объект. 

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

Если ваше приложение является многопоточным, иммутабельность должна быть фундаментальной частью вашей архитектуры, поскольку неизменяемые объекты по своей природе являются потокобезопасными и невосприимчивыми к состояниям гонки. Если ваше приложение использует data transport objects (DTO — объекты передачи данных), вам также следует серьезно подойти к иммутабельности ваших объектов. Предметом дискуссий остается лишь то, как наиболее эффективно реализовать и работать с иммутабельными объектами, поскольку C# не предлагает встроенной поддержки таких объектов. Эта статья предлагает ответ на этот вопрос.

Читать далее
Total votes 9: ↑5 and ↓4+1
Comments10

Свой Mail Server на Docker за 10 минут

Reading time5 min
Views40K

В Интернетах много разных очень крутых сервисов, которые позволяют сделать свой почтовый сервис с собственными адресами. Однако, захотелось приключений и появилась тяга к созданию чего-нибудь своего. Зачем что-то делать просто, если можно причудливо?

Предпосылки, что и зачем описал тут: статья

Читать далее
Total votes 15: ↑11 and ↓4+7
Comments14
1
23 ...

Information

Rating
2,021-st
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity