Search
Write a publication
Pull to refresh
4
0.1
Send message

Яндекс.Разврат или анти-этичный ИИ

Level of difficultyEasy
Reading time6 min
Views44K

tl;dr: как обойти внутреннюю цензуру «Шедеврума» и получить то, что хочешь. Описание реализованных состязательных атак с примерами реализации. Без глубокого раскрытия механизма почему так получается.

Читать далее

Руководство Google по промпт-инжинирингу. Часть 1: основы и базовые техники

Level of difficultyEasy
Reading time18 min
Views45K

Представляю вашему вниманию перевод статьи "Prompt Engineering" (Промпт-инжиниринг) авторства Lee Boonstra - Software Engineer Tech Lead, Office of the CTO в Google.

Это первая часть из цикла трех статей, где мы разберем основы промпт-инжиниринга и базовые техники взаимодействия с большими языковыми моделями. Вы узнаете, как настраивать параметры моделей, использовать различные типы промптов и получать предсказуемые, релевантные результаты. Несмотря на фокус оригинала на Gemini/Vertex AI, описанные принципы применимы ко всем современным моделям ИИ.

Читать далее

Искусство Unit-тестирования: сокращаем Arrange до нуля

Level of difficultyMedium
Reading time12 min
Views4.7K


Unit-тесты очень важно и нужно писать, но вот незадача — на них никогда не хватает времени! Прочитав эту статью, вы узнаете абсолютно новый способ их написания, который сэкономит кучу времени и нервов.

Эта статья будет полезна .NET разработчикам, которые когда-либо сталкивались с написанием unit тестов, а также тим и техлидам в поиске оптимальной практики для своей команды.
Читать дальше →

Google инструкция по промпт инжинирингу или как правильно писать запросы (краткий перевод)

Level of difficultyEasy
Reading time8 min
Views34K

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

Дальше будет небольшая выжимка и перевод с помощью ChatGPT.

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

Что такое Промпт-инжиниринг?

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

Читать далее

Я стала злодейкой и теперь мои контроллеры лежат в библиотеках. Архитектурный паттерн SUFA в .net приложении

Level of difficultyMedium
Reading time8 min
Views8.7K

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

Читать далее

HTTP Request Smuggling: как особенности в обработке HTTP-заголовков приводят к атакам CL.TE и TE.CL

Level of difficultyMedium
Reading time11 min
Views2.3K

HTTP Request Smuggling  или контрабанда HTTP-запросов — тип уязвимости, который возникает из-за несоответствий в обработке HTTP-запросов между фронтендом и бэкендом. Каким образом различия в интерпретации заголовков позволяют атакующим использовать эту уязвимость? Как HTTP Request Smuggling можно использован в сочетании с Web Cache Poisoning? И на что обратить внимание, чтобы предотвратить подобные атаки? Разберем вместе на примере лабораторных работ с PortSwigger.

Читать далее

Технологии древних: ATAPI IDE, часть первая, подготовительная

Level of difficultyHard
Reading time15 min
Views9.8K

Однажды я захотел себе сделать PC уровня не старше первого Pentium для DOS и WIN9x игр. Причём, я хотел это организовать не как ещё один огромный ящик на столе, а в формате обычной приставки к телевизору. Я нашел материнскую плату формата Baby‑AT так называемую Super7, это материнская плата для Socket-7 на стероидах: у неё память уже SDRAM, есть AGP и большой кеш второго уровня. Нашёл корпус для mITX, куда Baby‑AT может быть размещена и, самое главное, блок питания там PicoPSU, что позволяет использовать стандартный блок питания от ноутбука. В качестве HDD я использовал IDE SSD, которые достаточно дешёвые. Пока испытывал эту связку на столе я использовал IDE ATAPI привод оптических дисков. Всё работало прекрасно. Только вот в маленьком корпусе mITX нет места для 5,25» привода, а привод нужен, ибо даже для DOS игры были с поддержкой CD, не говоря за WI9x. И вот тут я понял — пора делать свой IDE ATAPI эмулятор оптических дисков, компактный и бесшумный. Именно об этом и будет этот небольшой цикл статей, который, я надеюсь, доведу до логического конца. Если интересно — заходите, вместе веселее!

Окунуться в дебри неизведанного

Можно ли реализовать инкапсуляцию средствами ООП?

Reading time6 min
Views5.7K

Если на Силикатной улице (это в Мытищах) остановить тысячу случайных прохожих и спросить их, на каких трёх слонах покоится ООП, каждый второй назовёт инкапсуляцию. В коридорах МИФИ, или на собеседовании в Яндексе — процент будет даже выше. Даже LLM способна на шести пальцах объяснить, почему.

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

Минус поставил, готов ознакомиться

Угон аккаунтов в Telegram: схемы, о которых все должны знать

Reading time21 min
Views141K

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

Читать

Внутренняя кухня UEFI: что это такое и как мы готовим его в YADRO

Level of difficultyMedium
Reading time18 min
Views29K

Привет, Хабр. На связи Сергей Пушкарёв, я руковожу отделом разработки BIOS в YADRO. Расскажу об устройстве UEFI и его применении в компании. Мы разрабатываем и выпускаем разные аппаратные платформы: серверы, системы хранения данных, клиентское и телеком-оборудование. 

Один из «кирпичиков», который обеспечивает инициализацию и функционирование оборудования, — это BIOS (но правильнее говорить UEFI 🙂). В статье кратко разберем историю этой системы и ее современную реализацию — UEFI. Также поговорим о подходе к разработке и отладке этого ПО в YADRO.

Вы узнаете, зачем нам нужна «синяя коробка» Intel, как мы прошиваем BIOS и проводим диагностику «в полях».

Читать далее

Пишем свой загрузчик операционной системы Linux

Level of difficultyMedium
Reading time23 min
Views25K


Меня давно интересовал вопрос, насколько сложно написать собственный загрузчик операционной системы. Я не говорю о простой программе, выводящей «Hello, World!», а о полноценном загрузчике, который передаёт управление от встроенного программного обеспечения компьютера ядру операционной системы. Современные загрузчики представляют собой сложные программы, способные загружать множество операционных систем различными способами, учитывая массу нюансов, связанных с программным и аппаратным обеспечением. Читая их исходный код, легко утонуть в деталях и потерять понимание сути и реализации.


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

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

Окей, Джанго, у меня к тебе несколько вопросов

Reading time36 min
Views60K

Недавно я проходил очередное интервью, и меня спросили, пишу ли я на flask, на что я ответил, что я себя люблю, и поэтому пишу на django. Меня не взяли, потому что, кхм, у них, оказывается, много чего было на фласке, и вышло неловко. Да-да, я знаю, фласк крут, потому что он простой, всё что надо ставишь сам, а чего не надо там и так нет, но как по мне, всё равно потом получается django.

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

Читать далее

Канбан Метод: не магия, а логика. Наводим порядок в хаосе

Level of difficultyEasy
Reading time14 min
Views15K

Вы думаете, что Канбан – это просто доска с карточками? Ошибаетесь!

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

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

Алексей Пименов — тренер, эксперт и практик по Канбан Методу, Гибкости Бизнеса и Стратегическому Маркетингу. Более 10 лет помогает компаниям разного уровня с построением адаптивных процессов. Организатор, продюсер, постоянный спикер и кейноут крупнейших профессиональных конференций FlowDays, Kanban Eurasia, AgileDays, TeamLead Conf, Merge, IT Nights, SECON, SECR, CodeFest, Стачка и пр. Специально для комьюнити Skillbox Code Experts рассказал про мифы о Канбан Метода. Публикую статью по мотивам этого эфира.

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

Читать далее

Порядок инициализации полей, статики и всего остального в C#

Level of difficultyEasy
Reading time4 min
Views5.5K

Всем привет! Многие сталкиваются с трудностями на собеседовании на вопросе по типу "Расскажите о порядке иницализации в C#". Либо банально когда видят квиз, стараются вспомнить, а что там должно инициализироваться? Сегодня многие вспомнят, а кто-то узнает о порядке инициализации. Затронем не только классы, а также структуры, а точнее - ключевое слово default для них.

Сделаем следующие классы и посмотрим, что будет при создании объекта B:

Читать далее

Как пройти алгоритмическое собеседование: полный гид по алгоритмам, сложностям и стратегиям

Reading time31 min
Views43K

Не тратьте время на задачи – сначала разберитесь в основах. В статье:

1. Как проходят собеседования (ВАЖНО!)
2. Big O, оценка сложности алгоритмов
3. Популярные техники: два указателя, DFS, динамическое программирование и другие
4. Какие задачи решать, чтобы пройти в Яндекс

Читаем, практикуемся, получаем оффер!

Читать далее

Как конфигурировать Git

Reading time13 min
Views15K

Какие настройки git config сейчас следует устанавливать по умолчанию? Ниже рассмотрены избранные настройки, менять которые не стесняются даже разработчики самого Git.

Несколько недель назад я написал о настройке Git help.autocorrect и поведал странную историю о том, как её значение стали задавать в децисекундах.  

Эта статья заставила меня поразмыслить и о других настройках git config, вероятно, не известных широкому кругу пользователей. Возможно, для этих настроек стоит задать по умолчанию иные значения, чем действуют сейчас.

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

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

Читать далее

Многопоточное программирование на C

Level of difficultyMedium
Reading time13 min
Views14K

Привет хабр! Новичок в написании статей, но никогда не поздно начать. Объемный гайд по функциям pthreads для людей знающих базы C/C++.

Читать далее

Фрактальный декоратор в C#

Reading time6 min
Views4.9K

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

Сегодня разберём паттерн «Фрактальный декоратор» — способ рекурсивного декорирования объектов, позволяющий динамически добавлять уровни логики без изменения базового кода.

Читать далее

Еще раз о забытом. Roslyn Source Generators

Level of difficultyEasy
Reading time11 min
Views3K

Каждый разработчик часто сталкивается с написанием большого объема рутинного и повторяющегося кода, который имеет один и тот же смысл. Начиная с C# версии 9 появилась возможность генерации кода, которая интегрирована напрямую с компилятором. Такой подход позволяет избавиться от множества строк шаблонного кода. О нём сегодня и поговорим.

Читать далее

Создание файлового сервера на c++ и Boost

Level of difficultyMedium
Reading time12 min
Views4.1K

В этой статье я описал процесс создания файлового сервера — инструмента для организации доступа к файлам по сети. В статье представлен пример реализации файлового сервера на C++ с использованием библиотеки Boost.Beast и Boost.Filesystem. Сервер позволяет просматривать содержимое указанной директории и поддиректорий, скачивать файлы.

Читать далее

Information

Rating
6,918-th
Registered
Activity