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

Кодобред

Код, за который должно быть стыдно

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

Бобры-п[р]огромисты

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

Эта история навеяна недавним интервью в одну контору, которая считает, что желтые и красные конторы, не такие синие. Все случайные совпадения неслучайны, имена скрыты. Ни один случайный бобёр за время интервью не пострадал.

Бобер-HRобер: я увидела как грызете дерево в соседнем лесу, не хотите перебраться к нам? У нас деревья синие и потолще ваших, зеленые деревья нынче не в моде.
Бобер-погромист: хм, наверное нет, толщина текущих деревьeв меня устраивает.

Бобер-HRобер: ну вы всё-таки приходите, мы заложили пару делянок, где самые опытные бобры будут распиливать очень старую монолитную сосну с ветками длиной 98 см, на доски очень модной нынче длины 23 см, а еще у вас также будет возможность повлиять на толщину досок длиной 26 см.
Бобер-погромист: а вот это интересно, отправляйте соловья.

Через неделю, на комфортабельной полянке где-то в синем лесу.

Senior-Бобер: Итак, вы считаете себя хорошим бобром?
Бобер-погромист: Всё верно. Грызу деревья разной толщины уже лет двадцать.

Lead-Бобер: А ветки какой длины предпочитаете?
Бобер-погромист: Ветки 17см самые вкусные

Бобры идут, бобрам дорогу!
Всего голосов 93: ↑82 и ↓11+89
Комментарии27

Новости

Почему проверять результат вызова malloc c помощью assert плохая идея

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

malloc и assert


Указатель, который вернула функция malloc, необходимо проверить перед использованием. Неправильным решением будет использовать для этого макрос assert. В этой статье мы разберём, почему это является антипаттерном.

Читать дальше →
Всего голосов 24: ↑20 и ↓4+21
Комментарии117

Следует ли проверять указатель на NULL перед вызовом функции free?

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

Проверка указателя перед вызовом функции free


Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.

Читать дальше →
Всего голосов 66: ↑65 и ↓1+84
Комментарии35

BASHUI

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

BASHUI - это BASH + UI, а не то что вы подумали.

Начиная работать над sshto я решил не переизобретать велосипед, вернее не переизобретать велосипед целиком а только некоторые его части и в качестве "рамы с педалями" использовал dialog. Это значительно ускорило разработку, но идея написать свой UI на баше с блекджеком и всем остальным ни на секунду не покидала мой воспалённый мозг. Звёзды сошлись, и я решил воплотить этот проект в жизнь(в bash). Втречайте BASHUI!

нажми на кнопку
Всего голосов 73: ↑72 и ↓1+84
Комментарии44

Истории

Карта мародёров: пусть экзамен сдаёт себя сам

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

Ученикам École 42 в процессе обучения необходимо сдавать экзамен. С учётом того, что в школе существует ачивка за "хацкерство", появилось желание найти способ схитрить. Под катом история небольшой шалости с использованием особенностей HFS+.

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

Сквозь покрытые тайной искусства строки кода: Как я оживил рабочий стол с помощью P/Invoke 🪄

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

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

В этой истории о магической мощи программирования мы расскажем, как открываются двери к возможностям, о которых вы даже не подозревали. Узнаете ли вы, что стоит за командами, вдохновленными Ctrl+Alt+B и Shift+C? Все это и многое другое ждет вас внутри. Следите за нашим путешествием сквозь замысловатые лабиринты кода и давайте волшебству свободу! ✨

Раскрыть завесу тайны
Всего голосов 5: ↑4 и ↓1+4
Комментарии13

Можем ли мы сохранить животных с помощью Golang?

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

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

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

Я люблю питон, и вот почему он меня бесит

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

Вас приветствует ваш зануда!

Если вы следите за моей ленивой активностью, то заметили бы, что у меня много от чего пригорает. Вот, например:
- У меня пригорает от низкосортных статей на потоке: Питон против Безумного Макса, или как я посты на Хабре замораживал
- У меня пригорает от Django: Окей, Джанго, у меня к тебе несколько вопросов
- И от Яндекса тоже: Собеседование в Яндекс: театр абсурда :/
- И от рекрутеров: Я единственный из 1400, или самый крутой рекрутинг, что я проходил

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

Это что же получается, kesn опять открыл postman и сломал вёрстку на сайте? Поразительно, никогда такого не было, и вот опять! В принципе, тут можно писать текст любой длины (похоже, у них на бэкенде не Char(255), а Text). Они проверяют длину только на фронтенде, а бэкенд принимает строку любой длины. И это, блин, забавно) Вообще мой девиз - 'кто ищет, тот всегда найдёт', поэтому я ищу постоянно. Кстати, на Хабре скоро выйдет статья про программирование глазами Погромиста, там в том числе про уязвимости на сайтах будет - поэтому если не хотите пропустить, то подписывайтесь на меня в телеге: @blog_pogromista
Всего голосов 212: ↑202 и ↓10+228
Комментарии143

Игра «Жизнь» в одном твите

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

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

В одно прекрасное воскресенье, потягивая пиво и размышляя о жизни, я вдруг подумал: а можно ли вместить JavaScript-реализацию игры «Жизнь» в один твит? И не смог устоять перед желанием попробовать свои силы. 

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

Признаюсь: я писал поддельный экран загрузки

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

На выходных посмотрел видео Алексея Макаренкова с заголовком “Полоса загрузки - не то, чем кажется…”, где он рассказывает как разработчики игр мухлюют с полосой загрузки. Если кратко: это всё обман!

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

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

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

Приподнимем завесу...
Всего голосов 29: ↑28 и ↓1+37
Комментарии108

По горячим следам: как обходили PT Application Inspector на Standoff 11

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

Недавно завершилась одиннадцатая кибербитва Standoff, проходившая в рамках Positive Hack Days 12 в московском Парке Горького. C 17 по 20 мая 22 команды белых хакеров атаковали государство F — виртуальный город с собственной железнодорожной инфраструктурой, атомной станцией, заводом по обогащению урана, солнечной электростанцией и другими объектами. В одном из его сегментов располагалась сеть IT-отдела авиакомпании, принадлежащей Heavy Logistics. По легенде у отдела разработки был выстроен процесс безопасной разработки: код проверялся с помощью PT Application Inspector.

Сразу обратим ваше внимание, что эта ситуация была смоделирована специально для кибербитвы Standoff для того, чтобы PT Application Inspector, задача которого искать уязвимости, мог еще и обнаруживать зловредный код. Поэтому «обошли» его только в рамках кибербитвы и заложенных в нее сценариев возможных атак.

Красным требовалось внедрить «закладку» в исходный код разрабатываемого приложения и сделать так, чтобы для SAST-анализатора она выглядела безопасной. В случае успеха они могли бы выполнить произвольный код на удаленном сервере компании.

Что рассмотрим в статье:

· особенности внедрения SAST-анализатор в кибербитву Standoff,

· попытки хакеров обойти анализатор,

· итоги и планы.

Под кат
Всего голосов 3: ↑2 и ↓1+2
Комментарии2

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

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

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

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

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

Читать далее
Всего голосов 17: ↑9 и ↓8+6
Комментарии9

[1 апреля] Все новые возможности C# 13 | Что нового в .NET 10, почему нет .NET 9

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

Я являюсь студентом по обмену из российского ГМИГ имени Трофима Лысенко (Главный Мурманский Институт Генетики). Учился на инженера-программиста и пол года назад был отправлен в Америку в качестве студента по обмену. Это у меня получилось благодаря двойному гражданству (я гражданин Ирана и России).

К нам на лекцию пришел один из разработчиков Microsoft и рассказал про .NET 10, подробнее в самом низу статьи под спойлером.

.NET 10 или как его теперь начнут называть .NET X - это новая версия .NET, которая выйдет уже в 2024 году. Большая часть этой статьи посвящена именно новым возможностям C# 13.

Почему .NET 10 и где .NET 9?

"У нас так принято." - Дословный перевод. Больше комментариев разработчик не дал.

Читать далее
Всего голосов 96: ↑89 и ↓7+102
Комментарии72

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

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Небезопасный android часть 2: эксперименты с sun.misc.Unsafe

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

В этой статье я расскажу о классах-двойниках в ART и использовании этого механизма для получения полного списка полей, методов и конструкторов других классов, а также конвертации конструктора в метод и его вызов на готовом объекте.

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

Небезопасный android часть 1: эксперименты с sun.misc.Unsafe

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

Java очень глубоко интегрирована в android и имеет в данной ОС свою нестандартную виртуальную машину — DVM/ART, поэтому многие детали реализации отличаются от привычных. А что насчёт внутреннего API sun.misc.Unsafe? В этом цикле статей с его помощью мы попытаемся максимально сломать виртуальную машину андроида.

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

Каббалистическая вычислительная машина Dataghost 2

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

Французский коллектив RYBN изучил каббалистическую нумерологическую систему преобразований, ассоциаций и замен, создав удивительное устройство. Их установка Dataghost 2, представленная на выставке Artefact в Париже, представляет собой вычислительную машину, которая стремится выявить скрытые сообщения, скрытые в потоке сетевых данных.

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

Эвристический подход для теста Поиск частоты заказов

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

В статье Пример как писать тесты в Yandex.Contest были даны рекомендации по для успешного прохождения тестов компании Яндекс. Один из тестов - поиск наибольшего числа заказов для заданной площади прямоугольника, мы решали простым перебором всех заказов, что увеличивает сложность поиска решения в геометрической прогрессии. Но есть более изящное решение. Однако такие решения приходят не сразу - задача прорабатывается на подкорке некоторое время (несколько дней), а потом вдруг, когда едешь в метро или гуляешь с собакой, бац и решение готово почти мгновенно.

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

Пример как писать тесты в Yandex.Contest

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

Делюсь своим опытом как проходить тесты в Яндекс Контест. Уже после прохождения теста, который я провалил, решил повторить чисто для проверки сколько времени уйдет на написание кода, если уже знаешь что писать.

Читать далее
Рейтинг0
Комментарии2

Планируете взяться за .NET MAUI? Будьте готовы к приключениям с NullReferenceException

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

.NET Multi-platform App UI – фреймворк, который пишут профессионалы. Тем не менее, код некоторых его функций выглядит так, будто разработчики забыли о последствиях разыменования нулевых ссылок.

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

Массивный BASH

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

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

бомбить
Всего голосов 21: ↑20 и ↓1+25
Комментарии53
1
23 ...

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