Pull to refresh
117
0.2
Evengard @Evengard

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

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

Reading time 3 min
Views 66K
При разработке современного сайта часто возникает необходимость реализовать функционал вывода близлежащих географических точек. Самым оптимальным способом решения этой задачи является перекладывание работы по реализации определения точек на плечи 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
Comments 41

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

Level of difficulty Hard
Reading time 12 min
Views 4.5K

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

Читать далее
Total votes 29: ↑29 and ↓0 +29
Comments 3

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

Reading time 16 min
Views 10K

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

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

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

Level of difficulty Medium
Reading time 10 min
Views 9.7K

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

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

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

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

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

Level of difficulty Medium
Reading time 5 min
Views 1.9K

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

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

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

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

Level of difficulty Easy
Reading time 11 min
Views 139K

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

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

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

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

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

Level of difficulty Medium
Reading time 24 min
Views 20K

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

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

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

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

Level of difficulty Easy
Reading time 3 min
Views 39K

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

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

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

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

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

Точечный обход блокировок на роутере OpenWrt c помощью BGP

Level of difficulty Medium
Reading time 4 min
Views 10K

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

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

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

Level of difficulty Medium
Reading time 10 min
Views 5.3K

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

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

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

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

Reading time 10 min
Views 6.6K

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

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

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

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

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

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

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

Reading time 5 min
Views 39K

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

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

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

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

Reading time 17 min
Views 34K

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

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

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

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

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

Reading time 5 min
Views 10K

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

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

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

Reading time 5 min
Views 25K

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

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

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

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

Reading time 13 min
Views 15K

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

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

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

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

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

Reading time 5 min
Views 33K

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

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

Читать далее
Total votes 15: ↑11 and ↓4 +7
Comments 14

RustDesk — self-hosted аналог TeamViewer

Reading time 2 min
Views 78K

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

Читать далее
Total votes 88: ↑87 and ↓1 +86
Comments 41

Неустаревающие книги?

Reading time 6 min
Views 32K

Некоторым из этих книг уже очень много лет. Главная книга о паттернах — Design Patterns — увидела свет в 1994-м году, значит, ей уже почти тридцать. По сравнению с ней, Clean Architecture, вышедшая десять лет назад — практически, ребёнок!

Но десять лет для индустрии — гигантский срок. Возможно, эти книги уже устарели и нам они не нужны?

Перечитаем и попробуем разобраться
Total votes 27: ↑24 and ↓3 +21
Comments 34

Собеседование Golang разработчика (теоретические вопросы), Часть II. Что там с конкурентностью?

Reading time 20 min
Views 49K

Что спрашивают на собеседовании Golang разработчика? Асинхронщина? Контексты? Вторая часть статьи с вопросами и ответами, собранными на собеседованиях.

Читать далее
Total votes 18: ↑16 and ↓2 +14
Comments 19

Information

Rating
1,635-th
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity