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

Кодобред

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

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

Вычисляем миллиардное число Фибоначчи менее чем за 7 секунд

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

Мы будем считать 1000,000,000 число Фибоначчи со всеми цифрами. Для этого я буду использовать продвинутый алгоритм для поиска чисел Фибоначчи. Тут не будет базовых алгоритмов на подобии матричного возведения в степень и проще. Но эта статья будет понятна и школьнику :-)

Читать далее
Всего голосов 114: ↑113 и ↓1+136
Комментарии46

Новости

Как я писал простой язык конфигурации и в итоге перемудрил

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

Статья о том, как я во время каникул писал-писал язык для описания конфигураций, да и переборщил с объёмом

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

Новый убийца Си опроверг арифметику

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

Что Вы знаете про эзотерические языки программирования? Они кажутся вам странными? Смешными? Интересными? Этот язык не из таких – он не эзотерический. Если смех действительно продливает жизнь, то после этой статьи Вы станете бессмертным.

Продлить жизнь
Всего голосов 122: ↑87 и ↓35+70
Комментарии70

Enlarge your BASHUI for free! Как увеличить потенциал производительности?

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

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

Увеличить потенциал
Всего голосов 3: ↑3 и ↓0+5
Комментарии1

Истории

Рефакторинг — это как весенняя уборка: никто не хочет её начинать, но все ценят чистоту и порядок после её завершения

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

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

Итак, что я имею сейчас? Что стало с кодом, который не рефакторили год? Вопрос риторический, и так понятно, что он превратился в легаси.

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

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

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

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

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

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

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

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

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

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

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

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

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

malloc и assert


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

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

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

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

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


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

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

BASHUI

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн

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

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

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

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

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

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

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

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

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

Недавно завершилась одиннадцатая кибербитва 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.9K

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

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

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

Читать далее
Всего голосов 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

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

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

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

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

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

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

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

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

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

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

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

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