Ненормальное программирование

  • Хабрахабр

    [recovery mode] Максимальное количество значений в enum Часть I

    Часть первая, теоретическая | Часть вторая, практическая По мотивам твита от Evgeny Mandrikov aka godin: Quiz: without running #Java compiler, do you know how many constants can be defined in enum? — Evgeny Mandrikov (@_godin_) December 13, 2019 После ряда экспериментов и применения чёрной магии ConstantDynamic (JEP 309) автор вопроса приходит к числу 8191. В нём он задаётся вопросом, какое максимальное количество…

    Подробнее »
  • Хабрахабр

    Терминальные забавы: 10 классических консольных приколов

    Половина длинных новогодних каникул уже позади и сейчас самое время вспомнить бородатые шутки юниксовых админов. Результаты работы некоторых программ могут позабавить забредших на огонек гостей. Текстовые оболочки в UNIX-подобных ОС пригодны не только для выполнения внутренних команд, запуска различных утилит и написания скриптов. Редакция блога RUVDS поздравляет читателей с Рождеством и предлагает вспомнить классические консольные шутки, радующие уже многие поколения…

    Подробнее »
  • Хабрахабр

    Неразгаданная загадка

    Приветствую тебя, дорогой читатель! На момент публикации статьи до конца не дошел ни один из участников, поэтому если тебе интересно попробовать и, возможно, получить приз, то ниже тебя ждет QR код. В этой статье я расскажу о своем опыте сделать «крутой квест» и как все накрылось медным тазом что у меня получилось. Разгадав кодовую фразу, отправляй её на следующую почту:…

    Подробнее »
  • Хабрахабр

    Рисуем морозные узоры на SQL

    Немного SQL-магии под катом: математика, рекурсия, псевдографика. Заодно вспоминаем под Новый год формулу угла между векторами: WITH RECURSIVE T AS ( SELECT 0 x , 0 y , '"}'::text[] c -- растим узор от центра , 0 i UNION ALL ( WITH Z AS ( SELECT dn.x , dn.y , T.c , T.i FROM T -- вбрасываем случайную точку на…

    Подробнее »
  • Хабрахабр

    ELFийские трюки в Go

    В этой заметке мы научимся получать машинный код Go функции прямо в рантайме, распечатаем его с помощью дизассемблера и по пути узнаем несколько фокусов вроде получения адреса функции без её вызова. Предупреждение: ничему полезному эта мини-статья вас не научит. Для начала определимся, что такое Go функция и зачем нам нужно понятие function value. 1 Function Calls. Лучше всего это объясняет…

    Подробнее »
  • Хабрахабр

    В поисках LD_PRELOAD

    Эта заметка была написана в 2014-м году, но я как раз попал под репрессии на хабре и она не увидела свет. За время бана я про неё забыл, а сейчас нашёл в черновиках. Думал было удалить, но авось кому пригодится. В общем, небольшое пятничное админское чтиво на тему поиска «включенного» LD_PRELOAD. 1. Небольшое отступление для тех, кто не знаком с…

    Подробнее »
  • Хабрахабр

    Транскомпилируемые языки: проекты конвертации код-в-код

    Источник: Ward Cunningham С помощью специального транспилера (транскомпилятора) один язык программирования общего назначения можно перенести на любой другой язык программирования общего назначения. Транспиляция — это конвертация кода одного языка в другой. Например, при преобразовании программ из Python 2 в Python 3, или при переносе софта от старого API в новый. Если необходимо переключиться на другой язык, транспилеры помогут разработчикам сохранить…

    Подробнее »
  • Хабрахабр

    Как я на спор развернул двусвязный список за O(1)

    Как-то раз я случайно увидел, как мой коллега решает джуниорскую задачку разворачивания двусвязного списка на C++. И в тот момент странным мне показалось не то, что он лид и давно перерос подобное, а само решение. Вернее, не так. Ничего необычного или сложного, но при взгляде на него у меня возникло два вопроса: Решение было стандартным: тот же линейный проход с…

    Подробнее »
  • Хабрахабр

    Unsafe generic math in C#

    С удивлением я обнаружил, что официальная документация MSDN называет "дженерики" "шаблонами" (по аналогии с C++ templates, я полагаю). К сожалению, адекватно перевести название затеянного мной безобразия на русский язык оказалось не просто. В этой статье речь пойдет о небезопасных обобщенных математических операциях в C#. В попавшемся мне на глаза 4-м издании "CLR via C#" Джеффри Рихтера, переведенном издательством "Питер", дженерики…

    Подробнее »
  • Хабрахабр

    CreateRemoteThread для Linux

    Её можно использовать для разнообразных DLL-инъекций как с нехорошими целями (читы в играх, кража паролей, и т. В WinAPI есть функция CreateRemoteThread, позволяющая запустить новый поток в адресном пространстве другого процесса. д.), так и для того, чтобы на лету исправить баг в работающей программе, или добавить плагины туда, где они не были предусмотрены. Однако, мне было интересно, как он может…

    Подробнее »


Кнопка «Наверх»
Закрыть