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

Roslyn: встреча .Net сообщества на CLRium #2 - 1 Довольно долгое время я пытался изучить Roslyn, но как и все мы, столкнулся с единой проблемой: времени на это абсолютно не было. Как обычно решается этот вопрос? Мы идем на множество ресурсов и ищем доклады и статьи на интересующую нас тему и как по шаблону повторяем движения автора, который показывает как этим пользоваться. С чем мы сталкиваемся, когда ищем описания тем, предложенных на CLRium? Мы не находим ничего. Т.е., конечно, Google выдает что-то по запросам “Roslyn”, “Roslyn samples”, но все-таки это тысячу раз разжеванные примеры, и притом древние как мамонты по меркам выхода новых версий CTP. Это важно, т.к. наличие информации предполагает развитость той или иной инфраструктуры. А самая крутая и единственная статья по Roslyn на данный момент — это эта: Roslyn: встреча .Net сообщества на CLRium #2 - 2 Roslyn для автоматического перевода кода C# в 1С-код
Отсюда и возникли идеи рассказать на CLRium про Roslyn, RyuJIT, CoreFx, шаринг объектов между процессами и прочие вопросы, на которые сложно найти ответы в сети Интернет.
Читать полностью »

Иногда я пишу небольшие программы на C++, и часто выходит так, что иконка программы «весит» больше, чем собственно сама программа. Так же вышло и при написании Sound Keeper: программа — 14КБ, иконка 16×16 + 32×32 + 48×48 пикселей — 15КБ. Какое расточительство! :) К счастью оказалось, что Windows (начиная с Vista) поддерживает PNG внутри ICO. Это как раз то, что нужно! Но почему-то не нашлось программы, которая бы позволила самому оптимизировать файлы PNG и собрать из них файл ICO. Поскольку у файлов ICO очень простой формат, соберём его при помощи FASM. Это нестандартное использование «плоского» ассемблера показывает, что его можно применять в самых неожиданных ситуациях, и это работает! :)

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

Прочитал пост habrahabr.ru/post/247161/ и подумал: вот человек написал непонятную программу на bash, которая выводит «Happy new year». Но это ведь bash! Надо показать, что zsh не хуже, а даже намного лучше! И так, программа на zsh, выводящая «С новым годом!» (по‐русски!) со следующими ограничениями:

  1. Программа не должна использовать никакие сторонние программы. Ни base64, ни cat, ничего.
  2. Программа должна выводить текст по‐русски.
  3. Программа быть написана на ASCII, но не должна содержать ни одной буквы или цифры.

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

Да, именно так и никаких уловок. Эта идея мою голову посетила около двух месяцев назад в процессе обдумывания статьи об Алгоритмах и решениях. Типы .NET в том движке использовать легко, а можно ли наоборот…
Читать полностью »

Простите за мат в заголовке, это намёк на развлечение, начало которому дал язык «Брейнфак» — написать на каком-либо языке код, выполняющий что-то разумное, не используя букв и цифр. Мы уже видели JSFuck, PHPFuck, теперь я вам хочу представить Bashfuck:

__=${_##*/};____=<(:);___=${__#???};_____=$((${#___}<<${#___}))
__=${__::-${#___}}${____:$_____:${#___}}
__=$__$((${#__}|$_____))$((${#__}));___=$___${__:${#___}:${#___}};____=$($__<<<$_____|$__)
_____=${____:$((${#__}-${#___})):${#?}};___=$___$_____$_____;____=$($__<<<$____|$__|$__)
___=$___${____:$((${#?}+${#__})):${#?}};___=$___' '${____:$((${#___}+${#___})):${#?}}
___=$___${__:$((${#____}/${#___}-${#?})):${#?}};___=$___${____:$((${#____}#$_____-${#___})):${#?}}
___=$___ ${____:$((${#__}+${#?})):${#?}}${__:$((${#__}>>${#?})):${#?}}${__:${#_____}:${#?}}
___=$___${____:$((${#___}-${#?}-${#?})):${#?}};___=${___,,}
____=${____:$((${#___}+${#__}-${#?})):$((${#?}+${#?}))}
____=${____::${#?}}${__:${#_____}:${#?}}${____:${#?}};${____,,}<<<${___^}

Для запуска потребуется «Баш» четвёртой версии. Ничего вредоносного скрипт не делает смело запускайте из-под «рута», просто выведет надпись «Happy new year». Исходник надо скопировать в файл и запустить.
Читать полностью »

Давно гуляла в голове идея света, плавно регулируемого, еще и дистанционно.

В то время светодиоды были непопулярны, дороги, а на лампах накаливания делать не хотелось, ибо напряжение и потребление.
И вот настал день…

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

Прежде чем немного поделюсь технологией, расскажу, что она умеет, и чего мне не удалось добиться.

— При включении, люстра включается на максимум (как не удивительно), т.е. ее можно использовать как обыкновенную люстру с физической коммутацией;
— Люстра так же управляется дистанционно с пульта управления (четырехканальный для Arduino);
— Яркость света можно регулировать плавно (относительно) назад-вперед при помощи двух кнопок. При этом регулировка цикличная, т.е. если сделать ярче максимума — свет потухнет (сбросится на 0), а если сделать меньше минимума — включится на максимум (таким образом одним нажатием кнопки на пульте, люстру можно включать и выключать)
— Спустя полчаса после включения, люстра немного сбрасывает яркость. Яркий свет нужен не всегда, а этот костыль немного охладит систему. После сброса яркости, ее можно заново выставить на максимум, и опять на полчаса.
— У люстры есть неизбежный таймер отключения. По умолчанию он составляет один час. При помощи пульта (нажатия одной из кнопок) может устанавливаться на полчаса, два часа, либо обратно на час. Но это не тупой таймер, потому что:
— У люстры есть датчик движения, соответственно таймер считает время после последнего замеченного движения;
— В ночное время суток, при обнаружении движения, люстра включается на очень маленькую яркость на протяжении одной минуты. В дневное время суток это не работает, поскольку в люстре стоит датчик света. Движений нужно несколько (секунд 5), чтобы люстра не включалась, когда я переворачиваюсь в кровати;
— Фича включения люстры в ночное время суток отключается при помощи кнопки на пульте, поскольку понятие «ночное время суток» для датчика света и для человека немного различается;
— При достижении таймаута отключения — свет плавно начинает гаситься, и если в это время произойдет движение — свет вернется на свое старое значение;
— Люстра умеет индицировать свое состояние при помощи светодиодика, а то и самой люстры.

Есть желание читать дальше? Тогда вперед.
Читать полностью »


Графика видеоигры Quake 1 на экране Hitachi V-422

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

Рисование на осциллографе происходит в режиме XY, в котором напряжения определяют координаты точек на экране. Их достаточно варьировать как функцию времени, чтобы рисовать линии. При этом скорость изменения нужно оставлять примерно одинаковой, иначе будут получаться линии с различной яркостью. Согласно отличному руководству от Джеда Марголина, особой точности в определении длины линии не нужно. Чтобы нарисовать не связанный с предыдущим сегмент, луч нужно быстро сдвинуть, не оставляя видимой линии.
Читать полностью »

В заголовке порядок слов не перепутан.
Assembler в 30 строк на Excel - 1
Живет в Венгрии юный программист Адам Кисс. Он участвует в чем-то типа онлайн-олимпиады KöMaL. Для решения заданий по информатике предлагается использовать несколько обычных языков программирования: С, С++, Python и некоторые другие. В одном из заданий требовалось написать Сапер и бота для игры в него. Такая задача очень легко решается средствами табличного процессора — того же Excel, например, и пачки макросов. Однако же, макросы использовать нельзя. Адам выкрутился необычным способом: реализовал в книге Excel простенький виртуальный компьютер, который программируется на Ассемблере — Excembler. Читать полностью »

Мясо на любителя. Встреча .Net сообщества на CLRium #2. Москва, Питер, online - 1 Я не люблю заезженное слово «конференция». Это — встреча разработчиков с общими интересами, которые хотят послушать о трюках, которые позволяют обходить правила, установленные в.Net Framework, которым интересна тема использования меняющих и создающих языки, тулов. А также, что можно получить если знаешь как компилировать и декомпилировать приложение. Об этом не говорят. Потому что разговор на эту тему слишком долгий чтобы уместить в формат одного часа стандартного выступления на конференциях. Я пробовал выступать на .NEXT, и помимо положительных отзывов были «галопом по Европам». Согласен, за час не уложиться. Добро пожаловать в полный формат!

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

Теперь у нас целых два дня. Причем вы можете купить билет как на один, так и на оба дня. Первый день — как в прошлый раз: много хардкора, не практичного, но очень интересного… Позволяющего еще лучше понять как все работает и как этим можно воспользоваться… Тем со временем еще немного накидаю. Много мяса на любителя. И второй — практика. Второй длиннее первого. На час =). Во второй день будет очень много Roslyn, JetBrains Nitra (он же N2, он же Nemerle2)? RyuJIT, .Net Framework open sourced. Вот честно, я бы сам сходил

Почитать и зарегистрироваться

Мясо на любителя. Встреча .Net сообщества на CLRium #2. Москва, Питер, online - 2

cool Примеры статей и полный список тем выступлений — под катом
Читать полностью »

Аукционы используются для торгов практически любых товаров — рыбы и цветов, лицензий на 3G-cвязь, государственных ценных бумаг, акций частных компаний, рекламных объявлений на Яндексе. Базовые правила некоторых аукционов остаются неизменными на протяжении столетий. При этом аукционы — динамично развивающаяся область современной экономической теории. Это в первую очередь вызвано их практической важностью, а также наличием данных и возможностью формально проанализировать аукционы как игры, чьи правила совпадают с практикой. За исследование аукционов и в целом экономических механизмов было присуждено несколько Нобелевских премий.

В рамках Малой Школы анализа данных лекцию, посвященную аукционам, прочитал Сергей Измалков — профессор экономики Российской экономической школы, председатель ученого совета РЭШ. Именно аукционы стали темой его докторской диссертации. В лекции Сергей Борисович рассказывает о том, чем похожи торговля жёнами в Вавилоне и размещение рекламных объявлений в интернете. Под катом вы найдете текстовую версию лекции, но мы бы рекомендовали вам все же посмотреть видеозапись — лектор рассказывает обо всем достаточно доступно и очень увлекательно.
Читать полностью »


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