Рубрика «ненормальное программирование» - 3

0. Предисловие

Вдохновлённый статьёй «Когда private, но очень хочется public», я решил исследовать альтернативный способ доступа к приватным членам класса в C++. В отличие от классического подхода с прокси-структурами и частичной специализацией, мой метод использует иерархическую специализацию шаблонов с явной инициализацией указателей, что даёт несколько преимуществ:

  1. Единообразие синтаксиса:
    Доступ к данным, методам и статическим членам осуществляется через единый интерфейс access_member, а не через разрозненные механизмы.

  2. Читать полностью »

WebAssembly голыми руками - 1

WebAssembly являясь (относительно) молодой технологией уже довольно распространён в индустрииЧитать полностью »

На одной из конференций я наблюдал, как наши коллеги реализовывали тернарный оператор в Go с помощью комментариев. Доклад длился всего минут 10, и, честно говоря, я не смог уловить ничего внятного, кроме того, что ребята явно хорошо повеселились. Однако это вдохновило меня разобраться, как работает компилятор Go под капотом. А лучший способ разобраться — это попробовать написать что-то своё.

Самым простым и понятным для меня в этом плане показалась реализация цикла while. В этой статье я покажу, что у меня получилось выяснить. Вот примерный результат, к которому мы придём:

Читать полностью »
Ультимативные крестики-нолики и iPXE - 1

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

Ранее я уже использовал инструменты не по назначению, когда создавал Морской бой на SQL, тетрис в QR-коде, крестики-нолики в DNS и Gravity Defied на sed. С прошлой «серии» ненормального программирования прошло почти два года — время вновь попробовать силы и придумать что-нибудь новое.Читать полностью »

Это еще одна статья про демосцену, сайзкодинг, ассемблер, MS-DOS и ретрокодинг. То есть, о том, как ночами напролет добровольно и бесплатно писать бесполезный и очень трудоемкий код и поседеть в 30 лет. Но вдруг вам захочется?

  1. Вступление

  2. Примеры intro

  3. Зачем это надо?

  4. На кого расчитана статья?

  5. Начинаем писать код

  6. Оптимизация размера

  7. Заключительное слово

  8. Полезные ссылки на данную тему

  9. Читать полностью »

С чего все началось

В C++ уже больше 10 лет существует constexpr, который позволяет программисту ушло возложить часть вычислений на компилятор. В свое время это взорвало мне мозг, ведь компилятор может посчитать какие-то достаточно сложные вещи еще до запуска программы!

В какой-то момент я подумал: если компилятор сможет сам посчитать все за тебя, то зачем тогда тебе вообще рантайм? Что ты там будешь делать — ответ выводить что ли? Глупости какие-то. Это неспортивно.

На этом моменте и зародился мой челлендж:

"Без рук" или "даже не думай запускать exe-файл"Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js