Главная » Архив меток: Ненормальное программирование

Архив меток: Ненормальное программирование

Java Script != JavaScript. Пять джав в одном классе. Скриптуем так, чтобы запомнили навсегда

На этой неделе у JUG.ru Group, скорее всего, выйдет анонс. Пока не скажу чего. Участие в тайных проектах будит креатив, поэтому вот вам очередной ночной видосик про джаву. Чуть менее чем полностью он состоит из скринкаста. Невероятные новости: теперь он не полтора часа длиной, а около 20 минут, и там даже есть что смотреть. Вэлкам, и да пребудет с вами ...

Читать далее »

Занимательный JavaScript: Без фигурных скобок

И если про адекватные best-практики и шаблоны прочитано почти все, то удивительный мир того, как не надо писать код но можно, остается лишь слегка приоткрытым. Меня всегда удивлял JavaScript прежде всего тем, что он наверно как ни один другой широко распространенный язык поддерживает одновременно обе парадигмы: нормальные и ненормальное программирование. В этой статье мы разберем еще одну надуманную задачу, требующую ...

Читать далее »

Пишем загрузчик ПЛИС в LabVIEW. Часть 2

Часть 1 Загрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSEПишем загрузчик ПЛИС в LabVIEW. В этот раз мы познакомимся с новыми приемами работы в LabVIEW, разберем особенности обработки ошибок и завершим проект: реализуем протокол загрузки файла конфигурации в ПЛИС. В первой статье мы обкатали алгоритм загрузки на старом добром Си, во второй статье разобрались, как в LabVIEW можно ...

Читать далее »

Работа со строками на этапе компиляции в современном C++

Если вы программируете на C++, то наверняка задавались вопросом почему нельзя сравнить два строковых литерала или выполнить их конкатенацию: auto str = "hello" + "world"; // ошибка компиляции if ("hello" < "world") { // компилируется, но работает не так, как ожидалось // ... } Ломать стереотипы будем под катом, причем прямо на этапе компиляции. Впрочем, как говорится, "нельзя, но если ...

Читать далее »

Ломаем фундаментальные основы C#: выделение памяти под ссылочный тип на стеке

В данной статье будут приведены основы внутреннего устройста типов, а также пример, в котором память под ссылочный тип будет выделена полностью на стеке (это потому что я full-stack программист). Дисклеймер Данная статья не содержит материал, который стоит применять в реальных проектах. Это просто расширение границ, в которых воспринимается язык программирования. там разобран пример, который будет использоваться в этой статье (Впрочем, ...

Читать далее »

Как я 13 лет делал футбольный симулятор

Мы с друзьями-семиклассниками решили все задачи на Паскале и весело играли в первый Quake. История, которую я расскажу, началась 13 лет назад на уроке информатики. С тех пор я эпизодически делаю игры. Наша учительница увидела это, подошла ко мне и сказала всего одну фразу, которая перекосила мою картину мира: «Если ты хочешь играть в игры на уроке, пиши их сам». Одна из них — футбольный симулятор, о котором и пойдёт речь. Это захватывающая история про мой ...

Читать далее »

Как я попробовал сделать статический анализатор GLSL (и что пошло не так)

Однажды я готовился к Ludum Dare и сделал простую игру, где использовал пиксельные шейдеры (других в движок Phaser не завезли). Что такое шейдеры? Есть два вида шейдеров, в этой статье речь идет про пиксельные (они же “фрагментные”, fragment shaders), которые очень грубо можно представить в таком виде: Шейдеры — это программы на си-подобном языке GLSL, которые выполняются на видеокарте. color ...

Читать далее »

Что происходит за кулисами С#: основы работы со стеком

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

Читать далее »

Красота НЕ-безымянных функций в JavaScript

Они бесспорно очень полезны, но в этой небольшой статье мы рассмотрим примеры использования обделенных вниманием не менее замечательных выражений с именованными функциями — NFE. Анонимные стрелочные функции в JavaScript, согласно некоторым опросам — самая популярная фича ES-2015, что также подчеркнуто исчерпывающим числом туториалов в интернете. Короткая справка Named Function Expression — расширение функциональных выражений в JavaScript, позволяющее именовать функцию, созданную ...

Читать далее »

Laplace Blur

Можно ли блюрить Лапласом вместо Гаусса, во сколько раз это быстрее, и стоит ли того потеря 1/32 точности.(Laplace Blur — Предлагаемое оригинальное название алгоритма) Как любитель на досуге разрабатывать оригинальные алгоритмы эффектов, хотел бы предложить общественности алгоритм «почти гаусиан блюра», отличающийся применением исключительно быстрых процессорных инструкций (сдвигов и масок), а потому доступный к реализации вплоть до микроконтроллеров (чрезвычайно быстрый в ...

Читать далее »