Разработчик, знающий только одну парадигму программирования, напоминает плотника, у которого в ящике с инструментами лежит один-единственный молоток. Конечно, молотком можно идеально забить гвоздь. Или шуруп, если приложить достаточно рвения. Но попробуйте этим молотком распилить или отшлифовать доску — и сразу станет ясно, — при условии, что вам доводилось видеть в жизни пилу или рубанок, — что инструмент выбран неудачно. Так и с парадигмами: знание только императивного программирования или только объектно-ориентированного подхода превращает разработчика в механического исполнителя задач, неспособного увидеть элегантное решение там, где оно лежит на поверхности.
Узость кругозора программиста, застрявшего в одной парадигме, проявляется во всем. Он будет городить циклы там, где достаточно одной функции высшего порядка. Плодить классы и наследование там, где хватило бы чистой функции и композиции. Попытается решить задачу верификации корректности алгоритма отладчиком и тестами вместо того, чтобы доказать её формально на уровне типов. Такой разработчик похож на туриста, который знает только одно слово на иностранном языке и пытается с его помощью объяснить таксисту маршрут через весь город. И хорошо еще, если это слово — не обсценно.
Я список парадигм прочёл до середины25 декабря состоялся выпуск 0.19.0 ELinks – программы для просмотра веб-страниц в текстовом режиме. С самого начала целью проекта было создание многофункционального текстового браузера с открытой политикой включения патчей и функций, и активной разработкой. Одной из таких функций является включение в ELinks Links-Lua, который добавляет в ELinks возможность использования пользовательских скриптов.
Наиболее примечательные функции:
Все возможности перечислены здесь.
( читать дальше... )
Подавляющее большинство изображений кубика Рубика — в иллюстрациях, принтах на одежде, мультфильмах, компьютерной графике и особенно в генерациях нейросетей — воспроизводят неправильные кубики. Чаще всего это невозможные в реальности комбинации цветов, реже к некорректным цветовым схемам добавляются нарушения геометрии и структуры кубика. Разгоняем эту тему в статье.
Крутить далее...802.1x и двери по картам — это должно быть надёжно. Пентестер зашёл в банк ночью, «обманул» ИК-датчик баллончиком, стал принтером в сети и нашёл заполненные чеки. Это не теория. Это отчёт по реальному тесту на проникновение.
Читать далее Кажется, я изобрёл алгоритм, при помощи которого можно достаточно надёжно отличить авторский текст от AI‑текста.
Помимо надёжности, алгоритм очень нетребователен к вычислительным ресурсам и способен эффективно работать даже на 8‑битных микроконтроллерах в связке с W5100.
Суть его в следующем. Ваше вычислительное устройство открывает web‑страницу и ищет на ней четырёхзначные числа. Если таких чисел нет или если на странице попадается хотя бы одно число, большее чем 2023, такая web‑страница с вероятностью 50% AI‑сгенерирована.
Если же все найденные четырёхзначные числа меньше, либо равны 2022, то вероятность AI‑генерации данной страницы равна 1%.
Ниже я расскажу, как мне пришла в голову идея столь простого, но в тоже время эффективного алгоритма.
распознать AI с первого взглядаКаждый разработчик в начале пути видит перед собой ясную лестницу: Junior → Middle → Senior. Рост компетенций сопровождается ощутимым ростом зарплаты, и это даёт мощный заряд мотивации. Но что происходит, когда вы достигаете уровня Senior? Зарплата упирается в «стеклянный потолок», задачи становятся однотипными, а привычный драйв исчезает.
Читать далееИстория концептов в C++ – один из самых показательных примеров того, как язык развивается не линейно, а через десятилетия экспериментов, откатов и переосмыслений. Первые идеи, которые мы сегодня называем концептами, появились ещё в конце 1990-х, когда стало очевидно, что шаблоны C++ имеют колоссальную выразительность, но практически не дают средств для описания намерений программиста. Шаблон можно было инстанцировать почти с любым типом, но ошибка проявлялась либо в виде километров сообщений компилятора, либо в виде неожиданного поведения в рантайме. Уже тогда Страуструп сформулировал проблему как «отсутствие контрактов для шаблонов», когда программист знает, что от типа требуется оператор + или ==, но язык этого не выражает.
Ранние предложения концептов были чрезвычайно амбициозными и стремились описывать не только синтаксис, но и семантику. Например, концепт EqualityComparable должен был означать не просто наличие operator==, но и выполнение математических свойств эквивалентности: рефлексивности, симметричности и транзитивности. Аналогично, концепты для упорядоченных типов предполагали строгую слабую упорядоченность, а для итераторов корректное поведение при многократном проходе. Это отражало академический взгляд на обобщённое программирование, сильно вдохновленный функциональными языками и работами Степанова.
Читать далееЧисто DIY-статья как я делал электронно-механическую новогоднюю лошадку. Под катом – кинематика, механика, электроника и всякое шитьё. Кому интересно рукоделие и самоделки в стиле Юных техников...
Иго-го!В детстве каждое лето я проводил на даче. Из Ленинграда до дачи мы добирались на пригородном автобусе. Особой удачей я считал занять место напротив кассы и смотреть на то, как люди покупают себе билеты. Но не с целью контроля, а с целью наблюдения за самим процессом. И за билетами.
Очень меня интересовали эти самые билетики! Я их коллекционировал. На даче у меня был специальный дерматиновый красивый полупрозрачный конверт (от старых фломастеров), в котором я хранил все свои билеты. Номера автобусных билетов состояли из шести цифр, и я отдельно выделял те, у которых сумма первых трёх цифр была равна сумме трёх последних. Конечно, самыми ценными были бы те билеты, у которых все цифры одинаковые...
Читать далееПри работе с Yandex Database (YDB) часто возникает потребность в удобном визуальном инструменте для работы с данными. AWS NoSQL Workbench — популярное приложение для моделирования и тестирования NoSQL баз можно использовать и с YDB благодаря DynamoDB-совместимому Document API.
Читать далееУ меня нет классического образования в области радиотехники, но связь представлений сигнала во временной и частотной областях меня сильно интересует. При попытке сформировать в голове ясное представление возникают примерно такие вопросы.
Рассмотрим базовую ситуацию для любого радиоканала.
Передатчик излучает немодулированную несущую (Рис. 1)
Читать далееДевять месяцев назад я начал вести свой канал t.me/siliconchannel. Писал статьи для Хабра на свою профессиональную тему - Go-разработку - и задумался: а могут ли эти статьи и вложенный в них труд приносить кратно больше пользы и мне, и Хабру? В итоге это привело к блогу на 4000 подписчиков с 0 рублей вложений.
Читать далееРешил собрать нюансы создания резервных копий и восстановления таблиц в YDB. Это не замена документации, а раскрытие деталей, которые не очевидны для тех, кто начинает работать с этой базой данных.
Читать далееВ данной статье я попытаюсь переписать часть приложения Kawai-Focus на стек: FastAPI + Vue.js + Tauri + Ionic. Также я соберу приложение только с экраном «Таймеры» под Linux в AppImage, которое подойдёт для большинства Linux-дистрибутивов. Реализация одного экрана не будет слишком долгим процессом, а финальная сборка приложения позволит оценить сложность и удобство полного цикла разработки.
Эта cтатья не будет подробным гайдом, так как размер переписанного кода и его описание слишком велики для одной статьи. Однако я покажу часть кода проекта и расскажу о выбранном стеке, а также о трудностях и преимуществах, с которыми я столкнулся в процессе переписывания проекта. Я буду использовать часть кода старого проекта, который не касается Kivy и KivyMD, поэтому его душа не умрёт, а обновится.
Заваривайте чай, доставайте вкусняшки — пора «старый стек превращать в удобрение для новых помидор»!
Состоялся релиз дистрибутива Manjaro 26.0, ключевыми особенностями которого стали обновления Gnome до версии 49 и KDE Plasma до версии 6.5, а также переход на Wayland в обеих указанных средах по умолчанию. Включен драйвер Nvidia 590.48, в котором прекращена поддержка видеокарт Maxwell (GTX 9xx) и Pascal (GTX 10xx).
Среди ядер на выбор теперь доступны варианты: 5.10, 5.15, 6.1, 6.6, 6.12 и 6.18.
Также обновлен ряд прикладных программ, такие как браузеры и Libreoffice.
Как отличить строку «имя» от строки «e-mail»? К примеру, чтобы не ошибиться в передаче в функцию. На помощь приходит паттерн Newtype, но его не очень удобно использовать. В статье разберем как добавить удобства.
Читать далееПривет, друзья!
В этой небольшой статье мы вместе с вами немного пощупаем новый Web API - Anchor Positioning.
Anchor Positioning API предоставляет новые возможности для связывания элементов между собой. Одни элементы являются якорями (якорными, anchor elements), другие - позиционируемыми относительно якорей (закрепленными, anchor-positioned elements). Размер и положение позиционируемого элемента может определяться размером и положением якорного элемента.
Кроме того, с помощью CSS можно:
определять альтернативные позиции закрепленного элемента, которые будут применяться браузером, например, при выходе такого элемента за пределы экрана
определять условия видимости закрепленного элемента, например, скрывать такой элемент при выходе за пределы экрана
На сегодняшний день этот API поддерживается всеми основными браузерами (в Safari пока только в качестве экспериментальной возможности).
Читать далееЗаходишь на Хабр.Карьеру, открываешь вакансии системных аналитиков, а в требованиях всё как обычно: построение информационных систем, понимание архитектуры, ТЗ, BPMN, базовый SQL. Нигде ни слова о знании GPT или умении промптить. Формально профессия как будто не изменилась.
Тем временем в свежем отчёте OpenAI о корпоративном применении ИИ опубликовали статистику: использование ChatGPT в корпоративной среде за год выросло в 8 раз, а объём запросов от одного человека — в среднем на 30%.
Мы решили выяснить, что происходит в полях, и поговорили с двумя коллегами по цеху: системным архитектором из финтех-продукта и аналитиком с опытом работы и в госсекторе, и в корпоративных продуктах. Спросили их о самом важном: какие задачи быстрее делать с ИИ, где он пока бесполезен и что вообще стоит прокачивать аналитику, чтобы не выпасть из профессии, пока всех грозятся заменить моделями.
Читать далееПривет и с Новым годом, Хабр! Меня зовут Екатерина, я практикующий юрист, исследую эффективное применение нейросетей в юридических задачах. В декабре ушедшего года я провела необычный для себя и российского LegalTech-рынка эксперимент: с помощью одиннадцати коллег-оценщиков организовала небольшоенезависимое слепое сравнение пяти нейросетевых сервисов. В этой публикации хочу рассказать о вызовах human-eval бенчмарка в домене, где зачастую нет единственно правильных ответов, интересных выводах исследования, полученной мной обратной связи и дальнейших планах.
Читать далееЭксперимент по хирургическому удалению слоёв из языковой модели
Современные LLM переобучены — многие слои делают одно и то же. Я проверил эту гипотезу на практике: взял TinyLlama (1.1B параметров, 22 слоя) и измерил, как удаление каждого слоя влияет на perplexity.
Результаты:
• Удаление 1 среднего слоя: +10% скорость, -4% качество
• Удаление 7 «безопасных» слоёв: +32% скорость, -2.5% качество
• Удаление первого слоя: модель полностью ломается
Неожиданно: Layer 2 важнее Layer 0 (perplexity +6.67 vs +3.92 при удалении).
Статья с кодом на PyTorch, графиками и практическими рекомендациями — какие слои можно удалять для ускорения инференса.
Читать далее