Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры
Новость

Meta* представила четыре поколения чипов для искусственного интеллекта, призванных снизить затраты на обработку данных

Время на прочтение2 мин
Охват и читатели6.1K

Компания Meta* представила четыре новых поколения специализированных чипов для искусственного интеллекта - MTIA 300, 400, 450 и 500, - разработанных для того, чтобы сделать эксплуатацию ИИ на своих платформах более экономичной.

Читать далее
Статья

Когда код начинают писать машины: что реально изменится в программировании

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели7.8K

Кажется, мы приближаемся к моменту, когда генерация кода перестанет быть игрушкой и станет обычным инструментом разработки. Уже сейчас можно попросить модель написать API, SQL-запрос или даже кусок архитектуры сервиса. Но что будет дальше, когда такой подход станет стандартом? Изменится ли профессия разработчика или просто появится ещё один инструмент вроде IDE?

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

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

Честно говоря, в какой-то момент стало немного странно. Ты вроде разработчик, но код пишет не совсем ты.

Возникает ощущение, будто ты больше архитектор или редактор кода.

И тут появляется вопрос.

Если генерация станет стандартом, кем вообще будет программист?

Тем, кто пишет код?
Тем, кто проверяет код?
Или тем, кто придумывает системы, которые этот код потом генерируют?

Попробую поделиться наблюдениями.

Читать далее
Новость

Panasonic извинилась перед японскими покупателями из-за дефицита флагманских Blu-ray-рекордеров DMR-ZR1

Время на прочтение1 мин
Охват и читатели11K

Panasonic столкнулась с проблемами при выполнении заказов на свой флагманский Blu-ray-рекордер DMR-ZR1 в Японии. Из-за чрезвычайно ограниченных запасов устройств японская компания сделала официальное заявление и извинилась за нехватку. Panasonic осталась единственным крупным поставщиком рекордеров Blu-ray, поэтому дефицит, вероятно, будет сопровождаться повышение цен. Сейчас стоимость DMR-ZR1 составляет $2,3 тыс.

Читать далее
Статья

Он меня заблокировал, но я его всё равно люблю! История о потере аккаунта LinkedIn с 23 000 подписчиков

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.6K

Вообще история началась 23 июля. Тогда аккаунт с 23+ тысячами подписчиков попал в блок. «Ну и ладно, не в первый раз» - подумала я. Уж я то точно знаю, что нужно делать:) Однако это было начало конца… (впрочем, эта история с двумя концами 😁)

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

Но 5 августа пришел “приговор” от службы поддержки LinkedIn - "аккаунт заблокирован НАВСЕГДА!"

И что, все усилия, которые я и команда вкладывали ежедневно на протяжении 3,5 лет, оказались… напрасны?

Читать далее
Статья

Как мы оперативно на PostgreSQL переезжали, или Новые грани применения Dapper

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели7.6K

Всем привет! Я Игорь Эльяс — бэкенд-разработчик, сейчас работаю в МТС Веб Сервисы. Однажды мне досталась задача «перенести приложение в другую БД, за XX времени», где ХХ — короткий интервал с точки зрения потенциального объема работ при подходе «переделываем все по-нормальному — на Entity Framework» :-)

Проект на C#, изначальная БД — MS SQL + мы использовали самодельный ORM. Возможно, вы сейчас подумали — «очередное легаси!». И да и нет. Проект родился еще во времена Framework 2.0, но регулярно обновлялся и сейчас работает на .NET8. Он пережил десятки циклов рефакторинга, поэтому не безнадежен для доработок.

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

Читать далее
Статья

Более быстрый asin()

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.1K

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

Я продолжаю работать над проектом PSRayTracing. Как ни стараюсь я положить его на полку, время от времени слышу о чём-то «новом» и задаюсь вопросом: «а можно ли засунуть это в мой трассировщик лучей, чтобы выжать из него ещё немного скорости?». На этот раз такой темой стали аппроксимации Паде. Моя цель заключалась в обеспечении более быстрых (и точных) тригонометрических аппроксимаций.

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

Читать далее
Статья

От MNIST к Transformer. Часть 3. Умножение тензоров. Пишем Linear Layer

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели6.2K

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

Это третья статья из цикла От MNIST к Transformer, цель которого пошагово пройти путь от простого CUDA ядра до создания архитектуры Transformer - фундамента современных LLM моделей. Мы не будем использовать готовые высокоуровневые библиотеки. Мы будем разбирать, как все устроено под капотом, и пересобирать их ключевые механизмы своими руками на самом низком уровне. Только так можно по настоящему понять как работают LLM и что за этим стоит. В этой статье мы перейдем от матриц к такому понятию как тензоры, напишем умножение тензоров, так же создадим свой первый линейный слой или полно-связную нейронную сеть. И наконец напишем сеть для распознования mnist датасета.

Приготовьтесь, будет много кода на C++ и CUDA, работы с памятью и погружения в архитектуру GPU. И конечно же математика что за этим стоит. Поехали!

Читать далее
Статья

Квест на выживание: Настраиваем плагин Госуслуг и КриптоПро на Ubuntu 24.04 (Noble Numbat)

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели7.4K

Настройка электронной подписи (ЭП) в Linux — это всегда приключение. Но попытка завести плагин Госуслуг на свежей Ubuntu 24.04 LTS превращается в настоящий хардкорный квест. Официальные инструкции безнадежно устарели, инсталляторы выдают ошибки, а техническая поддержка обычно разводит руками.

В этой статье я пошагово разберу, как заставить всё это работать, когда «всё против вас»: от конфликтов OpenSSL 3.0 до капризов Wayland и Native Messaging.

Читать далее
Статья

Транзакции в 1С: ошибки на собеседованиях, реальные примеры и правильные решения

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.6K

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

Транзакция — это логическая группа операций, которую нужно выполнить целиком или не выполнять вовсе.

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

В 1С транзакции помогают обеспечить атомарность, целостность и согласованность данных.

Рассмотрим примеры.

Читать далее
Новость

AGIMA и «Инк.» выпустили исследование российского рынка онлайн-страхования

Время на прочтение2 мин
Охват и читатели4.5K

Спецпроект из трех материалов анализирует развитие иншуртеха, цифровизацию страховых компаний и новые риски бизнеса.

Диджитал-интегратор AGIMA совместно с деловым изданием «Инк.» выпустил исследование, посвященное развитию онлайн-страхования в России. Проект включает три аналитических материала о цифровой трансформации страхового рынка, ключевых технологических трендах и новых страховых продуктах. Исследование основано на отраслевой аналитике и комментариях экспертов и предназначено для предпринимателей и компаний, которые выбирают страховые решения для бизнеса.

Читать далее
Пост

JEP 524 в JDK 26 — второй preview PEM API

Наконец-то работа с PEM в Java становится похожа на API, а не на набор ручного парсинга, Base64 и странных телодвижений.

Справка: PEM или Privacy-Enhanced Mail - это текстовый контейнер для криптографических данных. Проще говоря – это способ хранить или передавать ключ, сертификат или другой crypto-объект не в бинарном виде, а в текстовом.

Раньше с PEM работали так:

String pem = "-----BEGIN PUBLIC KEY-----\n"
        + Base64.getMimeEncoder(64, "\n".getBytes())
                .encodeToString(publicKey.getEncoded())
        + "\n-----END PUBLIC KEY-----";

А в обратную сторону, но уже с ручной нормализацией PEM, Base64-декодированием и KeyFactory:

String normalized = pem
        .replace("-----BEGIN PUBLIC KEY-----", "")
        .replace("-----END PUBLIC KEY-----", "")
        .replaceAll("\\s", "");

byte[] der = Base64.getDecoder().decode(normalized);

PublicKey key = KeyFactory.getInstance("EC")
        .generatePublic(new X509EncodedKeySpec(der));

По факту PEM в Java долгое время был не отдельным API, а набором низкоуровневых шагов, которые разработчик собирал руками.

А теперь это выглядит так:

var encoder = PEMEncoder.of();
String pem = encoder.encodeToString(keyPair);

var decoder = PEMDecoder.of();
KeyPair decoded = decoder.decode(pem, KeyPair.class);

То есть ключевую пару можно закодировать в PEM и декодировать обратно буквально в несколько строк.

Во втором preview:

  • PEMRecord переименовали в PEM

  • добавили decode()

  • расширили поддержку KeyPair и PKCS8EncodedKeySpec

  • упростили шифрование через EncryptedPrivateKeyInfo

А так, как все это дело еще в preview, не забываем использовать --enable-preview.

❓ Минус еще один кусок криптографической копипасты из Java-кода. PEM в Java постепенно перестает быть унылым?

Присоединяйтесь к русскоязычному сообществу разработчиков на Spring Boot в телеграм — Spring АйО, чтобы быть в курсе последних новостей из мира разработки на Spring Boot и всего, что с ним связано.

Теги:
+3
Комментарии0
Статья

Работаем с контейнерами в C++ с помощью библиотеки Ranges

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.6K

Понятие контейнер сейчас активно применяется в контексте Docker и аналогичных решений по контейнеризации. Однако, в языке C++ контейнеры существуют уже очень давно и являются фундаментальной частью Standard Template Library (STL). Они предоставляют готовые реализации наиболее часто используемых структур данных, избавляя разработчика от необходимости писать их с нуля.

Контейнеры C++ можно разделить на несколько основных категорий. Последовательные контейнеры (Sequence Containers) хранят элементы в линейной последовательности, при этом порядок элементов определяется позицией добавления. Ассоциативные контейнеры (Associative Containers) автоматически сортируют элементы по ключу. При этом, они обеспечивают достаточно быстрый поиск (O(log n)). Неупорядоченные ассоциативные контейнеры (Unordered Associative Containers) хранят элементы в хеш-таблицах. Обеспечивают поиск в среднем за O(1). Адаптеры контейнеров (Container Adapters) предоставляют ограниченный интерфейс поверх других контейнеров.

В рамках данной статьи мы будем говорить об использовании библиотеки Ranges для работы с контейнерами.

Читать далее
Статья

Cнижаем энергопотребление видеосервера на Linux с помощью измерителя тока

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.5K

Меня тут давно донимает вопрос снижения энергопотребления в квартире, так как ежемесячный расход электроэнергии каждый месяц переваливает за 300 киловатт. В связи с этим решил понаблюдать за работой домашнего видеорегистратора. Для этих целей крутится небольшой сервачок (Debian Linux) на MiniITX с Ryzen 3 3200GE, который обслуживает несколько IP-камер и пишет их с помощью Xeoma (а также параллельно крутит Home Assistant).

Подключил умную розетку к этому устройству на месяц и выяснил, что устройство ежемесячно потребляет 64 киловатта.

Далее попытался понять, как мне снизить энергопотребление и выявил интересную особенность... К серверу подключён монитор, который в графическом интерфейсе отображает картинку с видеокамер. В таком режиме работы процессор нагружен на 80-90% по всем ядрам.

Читать далее

Ближайшие события

Новость

Создатель Wordle вернулся с новой игрой — Parseword

Время на прочтение1 мин
Охват и читатели5.9K

Спустя четыре года после продажи прав на головоломку Wordle газете New York Times создатель игры Джош Уордл запустил новый игровой проект под названием Parseword. Новинка оказалась сложнее предшественницы, пишет Verge.

Читать далее
Новость

В OpenIDE появился импорт настроек из JetBrains IDE и VS Code при первом запуске

Время на прочтение1 мин
Охват и читатели7.8K

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

Теперь при первом открытии IDE появляется диалог импорта настроек из других редакторов — например, из IDE на базе JetBrains или VS Code.

Можно перенести основные настройки из среды, которой вы пользовались раньше. После импорта OpenIDE предложит установить набор рекомендуемых плагинов.

Читать далее
Статья

Анализ плутония из советского датчика дыма

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели17K

Плутоний — это вещество, имеющее широкий спектр применений, от устроения ядерного армагеддона до повседневной защиты от пожаров. Этот химический элемент массово производился в ядерных реакторах со Второй мировой войны, в отработанном ядерном топливе он встречается в различных изотопных составах, по которым можно определить такие параметры конструкции реактора, как выгорание топлива, исходная степень обогащения урана и спектральные характеристики нейтронов. Советский Союз изготовил больше плутония, чем любая другая страна. Основная его часть предназначалась для благородной цели сдерживания капиталистического империализма, однако малая доля досталась и ионизационным датчикам дыма наподобие КИ-1, РИД-1 и РИД-6М. (Буржуазные поджигатели войны предпочитали и по-прежнему предпочитают использовать для этого америций-241.) Время от времени жители бывшего СССР пытаются продавать плутоний из старых датчиков дыма на чёрном рынке ядерных технологий, считая, что их товар привлечёт бешеные деньги террористов, стремящимся развязать ядерную войну. Чуть ниже мы подробнее рассмотрим вероятность этого.

Мне были любопытны технические характеристики плутония из советских датчиков дыма, поэтому я нашёл старый датчик КИ-1 и извлёк из него источник. Конструкция источника во многом походит на конструкцию источников детектирующих камер в виде тюбика помады из первых датчиков Pyrotronics, производившихся в США. Советский выполнен из латуни и немного шире, чем аналогичный Pyrotronics. На внутренней осевой резьбе закрепляется крышкообразная защита от альфа-частиц, закрывающая полосу, которая содержит активный осадок; таким образом регулируется степень ионизации, производимой источником в камере, а также чувствительность датчика. Ниже я опишу свой анализ гамма- и альфа-излучения этого источника, а также поделюсь своими выводами о возрасте, активности, способе производства и пригодности этого плутония для ведения ядерной войны.

Читать далее
Пост

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

Первое, что нам нужно сделать — понять, как администраторы создают учётные записи в домене, а точнее — каков шаблон имён пользователей. Лучшей практикой для корпоративных имён пользователей является сочетание фамилии человека и первой буквы его имени, например в моём случае — iglinkin@corporate.local или i.glinkin@corporate.local. Шаблон зависит от политики безопасности компании и может выглядеть так: ivanglinkin@corporate.local, glinkini@corporate.local, glinkin.i@corporate.local, glinkinivan@corporate.local, или даже просто фамилия — glinkin@corporate.local

Для более точного определения формата пентестеры изучают сайты организаций и посещаемых ими публичных мероприятий: там как раз и указан верный формат. Например, в Microsoft используют формат ИФамилия@microsoft.com: John Winn имеет почту jwinn@microsoft.com.

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

Мониторя интернет, я нашёл интересный источник https://woords.su/full-name/russian-surnames: в нём содержится почти полный список русских фамилий, в том числе уже c окончаниями "а" для женской половины. Ну а дальше дело техники: создаем скрипт,
for p in {1..2234}; do curl -shttps://woords.su/surnames/russian/page-$p | grep "<tr><td>" | sed 's/<tr><td>/\n/g' | sed 's/<\/td><td>/\n/g' | cut -d "/" -f 5 | cut -d "\"" -f 1 | sed 's/surname-//g' >> surnames.txt; done
который парсит все фамилии и кладет в файлик surnames.txt.

Далее генерируем простой словарь с буквами. Его можно даже создать вручную, там всего-то будет 28 букв (минус Ë, Й, Ъ, Ы, Ь - так как с них имена не начинаются): a, b, v, g , d, e, zh, z, i, y, k, l, m, n, o, p, r, s, t, u, f, h, ts, ch, sh, shch, yu, ya.

Последний шаг — это добавить каждую букву перед каждой фамилией. Что может быть проще?
for name in $(cat one_letter.txt); do for surname in $(cat lastnames.txt); do echo $name$surname; done;done
Полный список username'ов будет состоять из чуть более 9 миллионов. Достаточно много, но, как показывает моя практика, они перебираются за 1.5 часа через kerberos_enumusers от метасплоита.

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

🧠 Обязательно поделись с теми, кому это может быть полезно 💬 Телеграм | 💬 Max | 📝 Хабр | 💙 ВКонтакте | ⚡️Бустануть канал

Теги:
+3
Комментарии4
Статья

Temporal: 9-летний путь к исправлению времени в JavaScript

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели6.6K

Cтарший инженер-программист в организации JavaScript Infrastructure & Terminal Experience компании Bloomberg Джейсон Уильямс опубликовал пост, в котором рассказал, как он вместе с командой реализовывал библиотеку Temporal вместо Date для различных типов дат и времени. Автор выступает делегатом TC39 (группы экспертов из Ecma International, отвечающей за стандартизацию и развитие языка JavaScript) и имеет опыт стандартизации функций, реализации языка и участия в крупных проектах с открытым исходным кодом. Джейсон также является создателем движка Boa JavaScript.

Читать далее
Новость

Нужно ли переезжать в столицу ради карьеры в ИТ? Статистика рынка и опрос специалистов

Время на прочтение3 мин
Охват и читатели5.7K

Долгое время в российском ИТ считалось, что для серьёзного карьерного роста разработчику нужно переезжать в Москву или Санкт-Петербург. Там концентрировались продуктовые компании, архитектурные команды и самые высокие зарплаты.

Но за последние несколько лет рынок изменился: многие разработчики работают в столичных компаниях, не переезжая туда физически.

Мы решили посмотреть на цифры и проверить, насколько релокация сегодня влияет на карьеру ИТ-специалистов. Собрали статистику рынка и результаты нескольких опросов — в том числе нового исследования getmatch и Островка.

Читать далее
Статья

Почему Яндекс.Мессенджер

Время на прочтение3 мин
Охват и читатели7.4K

В роли эксперта, который давно в теме корпоративных мессенджеров (ресёрч-разработка-внедрение), нашёл несколько ограничений, которые можно обойти сегодня и получить обновления завтра. Экосистема бизнес-продуктов Яндекса заметно развивается в последние годы. И замечательный поиск, как вишенка на торте.

Читать далее