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

image
Однажды на лекции друг рассказал мне, что существует язык программирования пони, (основанный на сериале, конечно). Он сказал, что видел его на reddit, но даже после продолжительного поиска я смог найти только пустой репозиторий на Google Code без деталей реализации. Я был очень этим разочарован, но только на несколько минут, пока не понял, что могу написать реализацию этого языка сам. Возможно, она не будет хороша или вообще используема в том смысле, что не каждый сможет написать к ней интерпретатор, но мне хотелось проверить свои умения. А ещё мне нравятся затянувшиеся шутки.
Читать полностью »

Зачем?

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

Есть такая штука — машина Тьюринга. Представляет собой простейший компьютер, однако писать под него хуже, чем на brainfuck'е. Решил я тут на днях побаловаться, но делать интерпретатор — не спортивно, да интерпретаторов этих — вагон. Потом меня посетила еще более странная идея — а чего бы не сделать это на Асме? (я его знаю паршиво, как раз решил потренироваться, так что сильно не пинайтесь).

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

Недавно мне пришлось работать с кодом, в котором задача передачи параметров произвольных типов решена с использованием стандартных STL контейнеров, параметризованных типом boost::any.
Например:

    void foo (std::vector<boost::any>& args) {
        // do smth.
    }

Предыдущий разработчик был не очень аккуратен и внутри функции работа с содержимым boost::any основывалась на предположении об исходном типе данных, то есть если преобразование boost::any_cast не проходило, то параметр пропускался. В определенных случаях такой способ обработки приемлем и примеры этой методики работы можно посмотреть тут.
Однако, мне хотелось несколько обобщить исходные предположения о типе данных.
Читать полностью »

Меня очень заинтересовала статья Самая короткая запись асинхронных вызовов в tornado или патчим байткод в декораторе, не столько с практической точки зрения, сколько с точки зрения реализации.
Всё-таки модификация байткода в рантайме это слишком опасная и ненадежная операция. И уж наверняка не поддерживаемая альтернативными интерпретаторами Python.

Попробуем исправить этот недостаток способом, который для этого предназначен куда больше и который применяется для схожих целей во многих других языках (я точно встречал в Lisp или Erlang). Этот способ — модификация Абстрактного синтаксического дерева (AST) программы.
Читать полностью »

Ранним утром понедельника, я заприметил интересный вопрос опубликованный на Mathematica Stack Exchange с совершенно невинным названием: «Графики в стиле xkcd (xkcd-style graphs)». Зная популярность онлайн-комиксов xkcd Ренделла Мунро, я ожидал нечто большего чем обычные 10 голосов и несколько закладок. Если бы я знал! Спонтанный вирусный эффект сложно предсказать и уж если ты обнаружил один такой, за его развитием и ростом популярности интересно наблюдать. Всего за два дня вопрос набрал 120000 просмотров, почти 300 голосов и 200 закладок (прим. пер.: цифры обновлены); создал резонанс в других обществах StackExchange (прим. пер.: например, «Создание xkcd-графиков в TeX», «R», «Matlab»); образовал маленькое торнадо в Twitter и обсуждался на Hacker News и reddit.
Читать полностью »

Веб-разработчик Джей Салват (Jay Salvat) закодировал Мону Лизу на CSS.

Мона Лиза на чистом CSS

Конечно, не вручную, всё делает PHP-скрипт.
Читать полностью »

Один из пользователей Apple позавчера заметил странное: при использовании программы iTunes файрвол Little Snitch спросил разрешения на установление соединения с доменом bogusapple.com по порту 443.

Странную тему начали обсуждать на форуме, а один из пользователей Apple набрался смелости и зарегистрировал этот домен на себя.
Читать полностью »

Один из пользователей Apple позавчера заметил странное: при использовании программы iTunes файрвол Little Snitch спросил разрешения на установление соединения с несуществующим доменом bogusapple.com, порт 443.

Тему начали обсуждать на форуме, а один из пользователей Apple набрался смелости и зарегистрировал этот домен на себя.
Читать полностью »

Есть такой не очень корректный термин: PC based industrial automation. Я думаю, что он не совсем точен, так как никто, конечно, не подсоединяет станок к обычному персональному компьютеру. А то вдруг зависнет, и станок отрежет что-нибудь ненужное. Но рациональное зерно в этом термине есть — уже много лет среди управляющих устройств промышленной автоматизации встречаются устройства, напоминающие ПК.

Simatic S7Напоминающие, конечно, не внешне.

Как и в вашем ноутбуке, в контроллере может стоять процессор Core i5, обыкновенная DRAM (только обычно с ECC), SSD диск, обычный Ethernet. Процесс загрузки тоже не отличается — BIOS загружает операционку. Как правило, операционка — RTOS. Однако иногда бывает даже Windows. Причем не всегда это Windows Embedded Compact (бывшая CE). Используется даже Windows Embedded 7, а это полноценная семерка. (Линуксы тоже встречаются)

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


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