Как стать автором
Обновить
823.79

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Профессия «кибердетектив»: кто такой исследователь угроз и как им стать

Время на прочтение8 мин
Количество просмотров1.3K

Привет, Хабр! Об исследовании киберугроз ходит немало мифов. Якобы это крайне узкая специализация, котирующаяся только в ИБ. Попасть в профессию непросто: необходимо на старте иметь глубокую теоретическую подготовку и навыки обратной разработки. Наконец, карьерные возможности такого специалиста строго ограничены: если ты все-таки прорвался в индустрию и дорос до исследователя угроз, дальше остается прокачивать свои скилы… в общем-то, все. Хорошая новость: это все мифы, с которыми я столкнулся лично и которые с радостью развею в этой статье.

Меня зовут Алексей Вишняков, сегодня я руковожу процессами эмуляции атак и испытания экспертизы продуктов в Standoff 365, Positive Technologies, но долгое время был руководителем отдела обнаружения вредоносного ПО экспертного центра безопасности (PT Expert Security Center).

Разрушаем мифы ИБ вместе
Всего голосов 4: ↑2.5 и ↓1.5+1
Комментарии6

Безопасность в Docker: от правильной настройки хоста до демона

Время на прочтение12 мин
Количество просмотров8.7K

Привет, Хабр! Меня зовут Эллада, я специалист по информационной безопасности в Selectel. Помогаю клиентам обеспечивать защиту инфраструктуры и участвую в разработке новых решений компании в сфере ИБ. И сейчас я начала больше погружаться в тему разработки и изучать лучшие практики по обеспечению безопасности приложений.

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

Сегодня сложно представить современное приложение без технологий контейнеризации. Поэтому я решила подробно изучить вопросы безопасности в этом направлении и собрала рекомендации, как лучше подойти к работе с Docker-платформой. Подробности под катом!
Читать дальше →
Всего голосов 47: ↑50.5 и ↓-3.5+54
Комментарии2

Телеграм-каналы для айтишников

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

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

Я уже опубликовала на Хабре подборки моих любимых ресурсов по Python и QA. Сегодня я набросала список Телеграм‑каналов по самым разным технологиям.

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

Читать далее
Всего голосов 18: ↑2 и ↓16-14
Комментарии5

35+ бесплатных ресурсов для начинающих разработчиков С++

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров8.7K

Привет. Предположим, вы захотели начать изучать языĸ программирования C++ или, возможно, тех материалов, что уже изучили, вам недостаточно.

Я — Савва, программирую уже больше 7 лет, работаю менеджером команды наставников в Практикуме на курсе «Разработчик С++», а с недавнего времени — разработчиком в Positive Technologies. В этой статье мы с вместе с Практикумом собрали леĸции, ĸниги, курсы и всяĸое таĸое, чтобы шансов выстрелить себе в ногу самостоятельно было меньше :) По C++ существуют и другие подборĸи, но, ĸ удивлению, на Хабре их всего две.

Читать далее
Всего голосов 21: ↑21.5 и ↓-0.5+22
Комментарии14

Истории

Разбираем на винтики учебный процессор TOY

Время на прочтение11 мин
Количество просмотров2.1K

А давайте возьмём простейший процессор и напишем его эмулятор на Python. Будем кормить его бинарниками и дебажить.

Статья для тех, кто всегда хотел разобраться в машинном коде, но боялся начать.

Читать далее
Всего голосов 9: ↑11 и ↓-2+13
Комментарии6

На пути к 1-разрядным моделям машинного обучения

Время на прочтение8 мин
Количество просмотров3.5K

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

Эта статья написана в схожем ключе, но нас наиболее интересует, возможно ли напрямую квантовать предобученные модели при экстремальных настройках, в том числе, при двоичных весах (0 и 1). Уже имеющиеся работы нацелены на обучение моделей с нуля. Но в открытом доступе сейчас достаточно много отличных предобученных моделей, таких как Llama2. Более того, обучение с нуля — это ресурсозатратная задача в пересчёте как на вычисления, так и на данные, поэтому такие подходы не слишком доступны в свободном сообществе.

В этой статье мы подробно разберём крайне малоразрядное (2 и 1-разрядное) квантование предобученных моделей с применением HQQ+. HQQ+ — это адаптация HQQ (полуквадратичного квантования), в которой для повышения производительности используется адаптер с низкой размерностью. Наши результаты показывают, что при обучении лишь небольшой части весов в верхней части HQQ-квантованной модели (даже одноразрядной) качество вывода значительно возрастает, такая модель может даже превосходить небольшие модели полной точности.

Модели находятся на Hugging Face: 1-разрядная2-разрядная.

Читать далее
Всего голосов 19: ↑18.5 и ↓0.5+18
Комментарии1

Неужели это очередной «конец» сферы разработки ПО?

Время на прочтение8 мин
Количество просмотров12K

Привет, Хабр! Поговорим о роли ИИ в жизни разработчика — мы в блоге beeline cloud часто обсуждаем темы, которые волнуют ИТ-сообщество. 

Увольнения, увольнения, увольнения, кажется, они никогда не закончатся. На сайте layoffs.fyi есть даже трекер увольнений в технологической сфере. Финансирование стартапов опускается на минимальный за последние 5 лет уровень, пишет Crunchbase. Помимо общих экономических проблем, на горизонте маячит страх, что ИИ и вовсе вытеснит программистов. 

Техноновости напоминают репортажи о конце света. Так ли это?

Как человек, который начал свою карьеру программиста сразу после того, как лопнул пузырь доткомов, я могу с уверенностью утверждать, что все не так уж плохо. Когда я только начинал свою профессиональную деятельность, люди говорили мне, что «Интернет мертв» и мне стоит поискать настоящую работу. А проблемы, с которыми боролись доткомовские стартапы, никуда не делись. Причём многие из найденных в начале 2000-х решений были зарыты в землю, лишь для того, чтобы вновь объявиться несколько лет спустя.

Читать далее
Всего голосов 18: ↑16 и ↓2+14
Комментарии19

Безопасность памяти меня не волнует

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.8K
Фото с сайта платформы CHERIoT, проекта Microsoft по решению проблем с доступом к памяти IoT-устройств на аппаратном уровне

Такое заявление может показаться странным для тех, кто более десяти лет работает над обеспечением безопасности памяти на аппаратном уровне, так что я его поясню. Безопасность памяти меня волнует в той же степени, в какой и сложение. Если оно работает, я могу строить на его основе что-нибудь интересное. По факту большинство интересующих меня вещей опираются на него как на фундамент. Если же сложение не работает, я не могу уверенно рассуждать о чём-либо, происходящем в программе.

То же касается и безопасности памяти. Для меня тот факт, что 70% уязвимостей возникают в результате её отсутствия, не говорит о важности этого аспекта. Важность безопасности памяти в том, что один связанный с ней баг может полностью подорвать все гарантии, на которые я опираюсь.
Читать дальше →
Всего голосов 27: ↑30.5 и ↓-3.5+34
Комментарии7

«ReadStreakBot» — как я начал «кодить» с чатгпт, не умея программировать

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров12K

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

Но сегодняшняя статья, к сожалению моих подписчиков, будет не про Обсидиан, она будет про телеграмм-бота, чатгпт и чтение, потому что всё это время вечерами я занимался своим пет-проектом, о котором и хочу рассказать.

Читать далее
Всего голосов 17: ↑16 и ↓1+15
Комментарии31

Неразрешимые проблемы программирования

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7.3K

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

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

Читать далее
Всего голосов 26: ↑26.5 и ↓-0.5+27
Комментарии24

История терминала как инструмент продуктивности

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.7K

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

Читать далее
Всего голосов 8: ↑10 и ↓-2+12
Комментарии2

Как быстро собрать кубик для простых задач: играемся с TinyOLAP

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

Привет, Хабр. Сегодняшняя статья будет интересна тем, кто хочет собрать простой OLAP‑куб для анализа данных, чтобы понять, как он устроен и работает. Экспериментировать будем с помощью TinyOLAP, одного из немногих OpenSource движков на Python.

Читать далее
Всего голосов 6: ↑7 и ↓-1+8
Комментарии10

Настоящая причина, по которой вы не станете сеньором

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров8.3K

История о воробушках, правильном фидбеке и житейских проблемах/

В 1958 году Мао Цзэдун инициировал «Большой скачок» — организованную китайской коммунистической партией кампанию по трансформации страны в индустриально развитое государство.

Акция «Четыре зла» входила в число первых шагов, предпринятых в рамках «Большого скачка». Под девизом «Человек должен победить природу» власти нацелились на уничтожение четырех вредителей: крыс, мух, комаров и воробьев.

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

Истребление воробьев привело к серьезному экологическому дисбалансу. Отсутствие естественных хищников повлекло за собой нашествие насекомых на поля и порчу урожая, что в итоге послужило одной из причин Великого китайского голода 1959-1961 годов.

Читать далее
Всего голосов 35: ↑19 и ↓16+3
Комментарии17

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Создание реактивных сервисов Micronaut и Kotlin

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.7K

В данной статье обсудим создание REST-сервиса в “реактивном” исполнении. Приведу примеры кода на Kotlin в двух вариантах: Reactor и coroutines

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии16

Больше ИИ-инструментов, хороших и разных: Google представила помощника для написания кода

Время на прочтение3 мин
Количество просмотров5.5K

Всё больше компаний создают разнообразные ИИ-модели, и, конечно, крупные корпорации — впереди планеты всей. На днях Google представила свой новый проект — Gemini Code Assist, инструмент, который помогает разработчикам писать код. О том, что это за новинка и какие ей дали возможности — читайте под катом.

Читать далее
Всего голосов 8: ↑9.5 и ↓-1.5+11
Комментарии7

Обобщённые типы. Часть 3/3. Применение контейнерных типов

Уровень сложностиСложный
Время на прочтение46 мин
Количество просмотров2.2K

В последней третьей части обзора продемонстрировано, как на основе обобщённых типов-контейнеров реализуются различные ФП-техники “чистого” построения “эффективных” программ. В заключении будет отмечена роль теории категорий в обосновании важности абстракций, построенных над обобщёнными типами.

Читать третью часть обзора
Всего голосов 4: ↑4 и ↓0+4
Комментарии1

Обобщённые типы. Часть 1/3. Полиморфные типы высокого рода

Уровень сложностиСредний
Время на прочтение37 мин
Количество просмотров4.6K

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

Читать первую часть обзора
Всего голосов 10: ↑10.5 и ↓-0.5+11
Комментарии3

Обобщённые типы. Часть 2/3. Классы типов и контейнеры

Уровень сложностиСредний
Время на прочтение38 мин
Количество просмотров1.7K

Это вторая часть обзора обобщённых типов, в которой мы расскажем о классах типов и типах-контейнерах.

Читать вторую часть обзора
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Не бойтесь бросать свои пет-проекты

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


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

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

Мы слышим столько историй об успешных личных проектах, но что, если более открыто говорить о тех, которые провалились? Многие из нас проводят ретроспективный анализ на работе, но не в отношении пет-проектов. А почему бы нам не пролить свет на всё то время, которое было вложено в начинания, которые так и не ожили? На заброшенное ПО, которое в своё время казалось хорошей идеей. По нашим средам разработки до сих пор скитаются духи захороненных каталогов node_modules.

И здесь я хочу рассказать о своём недавнем пет-проекте, который забросил в тот же день, в который запустил.
Читать дальше →
Всего голосов 50: ↑55 и ↓-5+60
Комментарии26

МРЭМ – 200. Электронный микроскоп родом из СССР. Цифровизация захвата изображения

Время на прочтение5 мин
Количество просмотров5.9K

В 2020 году я опубликовал  здесь статью, в которой описал свой советский растровый микроскоп МРЭМ-200  1987 года выпуска. Мне было приятно, что статья вызвала большой интерес и помогла мне познакомиться с  людьми со схожими увлечениями.

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

За прошедшие годы микроскоп подвергся нескольким модернизациям, об одной из которых хочется рассказать. В 80-е годы  изображения с  мониторов микроскопа фиксировались для дальнейшего изучения и сохранения с помощью пленочного фотоаппарата. Для этого в комплекте с микроскопом шла специальная тубусная приставка, фиксирующаяся на мониторе. В третьем тысячелетии  мне хотелось, конечно, уже иметь компьютерный захват картинки, как в современных растровых микроскопах. В начале я пошел по самому простому пути: стал использовать цифровой фотоаппарат Canon вместо пленочного  фотоаппарата. Поскольку построение изображения в максимальном разрешении длится 41 секунду, мне пришлось перепрошить  фотоаппарат на такую длительную выдержку. Работа  с микроскопом  сразу стала комфортней, но  я понимал, что  есть еще  к чему стремиться.

В декабре 2022 года в Телеграмме я познакомился  с еще одним владельцем микроскопа МРЭМ-200. В  этой статье я буду, называть этого человека, по его просьбе, «Владелец МРЭМ-200 из Москвы, пожелавший остаться анонимным».  Он  решил проблему прямого компьютерного захвата, использовав  видео с youtube (https://www.youtube.com/watch?v=ruuxn2u3yao) известного  американского популяризатора науки Бена Краснова (Ben Krasnow). «Владелец МРЭМ-200 из Москвы, пожелавший остаться анонимным» творчески переработал информацию Бена Краснова, адаптировал софт под технические особенности  своего микроскопа  и  любезно поделился со мной этим софтом. У меня появилась программа, которая замечательно строила и сохраняла изображение на экране компьютера синхронно с изображением на родных мониторах микроскопа. Между компьютером и микроскопом добавился отдельный модуль согласования, в котором помещался АЦП с выходом USB и операционные усилители с регулировкой коэффициента усиления:

Читать далее
Всего голосов 47: ↑57 и ↓-10+67
Комментарии18
Изменить настройки темы

Вклад авторов