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

ZoG на стероидахКогда я писал о разработке игры "Thud!", я уже сетовал на некоторую избыточность полученного описания. Простота языка ZRF имеет свою оборотную сторону — для того чтобы написать на нем что-то более менее сложное, часто, приходится дублировать значительные фрагменты кода. Подобная избыточность, как известно, приводит не только к увеличению объема ручной работы, но и значительно усиливает риск появления в коде разнообразных ошибок (поскольку процесс отладки ZoG приложений весьма не тривиален, это является существенным моментом).

Как можно бороться с подобной избыточностью?

Разумеется, с помощью макросов! Проблема в том, что макросы ZRF недостаточно выразительны для этого. Адриан Кинг, в процессе разработки игр Scirocco и Typhoon, пришел к аналогичному выводу и разработал свой собственный, расширенный язык макросов, работающий как внешний препроцессор. Сегодня, я расскажу о возможностях этого языка и постараюсь, на примере Thud!, показать его использование в процессе разработки ZRF-приложений.

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

Привет, недавно мне совершенно случайно попалась в руки такая железка:
image

Ну железка и железка, подумал я… На плате присутствует микроконтроллер РВЕ035, расширитель IO m5l8243p, ИР12 между РФ5 и контроллером и там еще где-то ЛН1 в стороне болтается. Мне сразу понравилась хорошая раритетная ПЗУ на 2Кб РФ5 в панельке в золоте. Думаю, сниму ее, а остальное смело в утиль, бо вся плата залита лаком по самое небалуйся..А потом все-таки стало интересно, а что это такое вообще?
Читать полностью »

image

Доброго времени суток. Думаю многие люди, хоть каким-то боком относящиеся к программированию хоть раз в жизни слышали об эзотерических языках программирования. Тот же Brainfuck.

 ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
 .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
 ------.--------.>+.>.

От одного только вида бросает в дрожь, но кто же мог подумать, что найдется человек, который сможет создать язык программирования из цитат известного голливудского актера.
Финский программист Лори Хартикка (Lauri Hartikka) опубликовал на Github описание и компилятор языка программирования ArnoldC. В качестве команд в ArnoldC используются цитаты героев Арнольда Шварценеггера.
Читать полностью »

Как известно, использование виртуальных машин, работа которых строится на программной интерпретации кода, позволяет создавать универсальные приложения, выполняемые на различных аппаратных платформах без рекомпиляции. Технология EFI Byte Code является типичным примером успешного применения данного подхода. Но при всех его преимуществах есть очевидный недостаток – программно реализованный процессор существенно медленнее аппаратного. В предлагаемой статье рассматривается метод, позволяющий нивелировать падение производительности EBC-программ на примере операций заполнения блока памяти константой и копирования содержимого блока памяти. Причем, об использовании «вставок» нативного кода центрального процессора речь не идет, поскольку это дискредитирует саму идею кроссплатформенности.Читать полностью »

Глядя в историю выполнения мной тестовых заданий, видятся закономерности, о которых хотелось бы предупредить коллег, потому что такие случаи встречаются регулярно и, скорее всего, независимо от специализации разработок. Например, к таким выводам я пришёл, имея на счету более десятка выполненных в разные годы заданий объёмом 2-5 рабочих дней каждое. А выводы — настолько парадоксальные, что, думаю, вызовут споры и удивление у тех, кто этого не прошёл. Сформулирую основной вывод для начала, а затем покажу обоснования на примерах из практики.

Вывод: (софизм) тестовое задание объёмом более дня с основной целью (поступления на работу) выполнять невыгодно.
Читать полностью »

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

image

Поскольку значительная часть моих знакомых — это люди, не имеющие достаточных знаний в сфере IT, то приходится изощрятся, чтобы заставить их пользоватся непривычными им сервисами либо утилитами, которые я считаю безопасными.
Предлагаю относительно простой способ установки безопасного канала для текстового общения через всеми известную сеть ВКонтакте. Для этого не нужно никакого дополнительного софта либо обширных знаний в сфере информационной безопасности. Всё, что вам нужно иметь — это web-браузер и аддон GreaseMonkey.
Читать полностью »

Вчера компания Apple выпустила обновление безопасности iOS 7.0.6 для iPhone 4 и более поздних моделей, iPod touch 5-го поколения и iPad 2+. Одновременно выпущен аналогичный патч 6.1.6 для iPhone 3GS и iPod touch 4-го поколения.

Обновление закрывает уязвимость CVE-2014-1266, которая позволяет злоумышленнику из «привилегированной позиции в сети» перехватывать и модифицировать пакеты в сессиях, защищённых SSL/TLS. Речь идёт о MiTM-атаке с подменой трафика.

В лаконичном пояснении Apple говорит, что при установке защищённого соединения по SSL/TLS система не способна определить аутентичность соединения. Проблему решили путём «добавления недостающих этапов валидации».
Читать полностью »

image
Читаю я вчерашний пост простоквашино на Хабре или письмо Дяди Федора. Мысль интересная, но.

Комментарии пугают.

Поясню почему.

Комментарии там условно можно разделить на два вида

  • «как много помещается ангелов на конце иглы» «о сортировке дат»,
  • «как забивать гвозди электронным микроскопом» «мы напишем что-то такое большое в энтерпрайзненьком стиле».

Душа поэта не выдержала, нашел полчаса, и нарисовал userscript.

Скрипт прост до ужаса — перебирает все комментарии в поисках специального маркера. Если маркер найден — показывает все комментарии с маркером во всплывающем окошке.

Всем желающим поучаствовать в улучшении — добро пожаловать, так сказать откатаем технологию. Если ваш комментарий надо добавить в пост — пишите внутри комментария вот так [also]. А я как инициатор этого безобразия — по мере сил буду ваши пожелания в пост переносить. И соответственно — улучшать скрипт тоже.

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

Эта статья продолжает мои предыдущие:
Простейший кросcплатформенный сервер с поддержкой ssl
Кроссплатформенный https сервер с неблокирующими сокетами
Кроссплатформенный https сервер с неблокирующими сокетами. Часть 2
Кроссплатформенный https сервер с неблокирующими сокетами. Часть 3

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

Практически все дети (бывшие и нет) знают про деревню Простоквашино и помнят письмо Дяди Федора.

Нечто подобное, когда любой человек присоединяется к тексту письма, можно сделать на Хабре, где нет кота Матроскина и пса Шарика, но обитает много других замечательных персонажей с прекрасным чувством юмора, тактом и расстановкой.

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

В топиках на Хабре авторский пост четко отделен от комментариев. Иногда, уже после публикации, автор по своему желанию добавляет комментарии некоторых пользователей в свой пост.
Но все можно кардинально изменить…

Идея реализации коллективного поста

Автор поста придумывает название: “Тема письма и адрес послания”, при желании пишет краткую вступительную часть, ставит HabracutЧитать полностью »


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