All streams
Search
Write a publication
Pull to refresh
4
0.1

Пользователь

Send message

И этот человек догадался, что этот код «рисует лабиринт в stdout»? Лично у меня, когда я увидел эту строчку, возникло желание не понять, что оно делает, а тупо нейтрализовать и просто удовлетворить формальным требованиям (это несложно сделать даже без макросов):


int main() {
    int R = 0;
    int e = 0;
    int C = 0;
    char *u = 0;
    int (*P)();

    for( ; P("\n"), R-- ; P("|"))
        for(e=C; e--; P("_" + ( *u++/8)%2))
            P("| " + (*u/4)%2);

    return 0;
}

Или всё-таки предполагается, что на соискатель должен догадаться об оригинальном назначении кода и написать программу, которая бы строила лабиринт?

По-моему, достаточно было просто сжать картинку в три-четыре раза по горизонтали с интерполяцией «nearest neighbour»: думаю, это скомпенсировало бы небольшой сдвиг и хеш оказался бы одинаковым. Или просто посчитать статистические свойства картинки: средние значения всех пикселей или отдельных каналов.


Нейронная сеть тут точно оверкилл :-).

Не могли бы вы поискать ссылку на эту историю?

Пунктуация, операторы и числа игнорируются.

Тем не менее, в топ языка Lua вкралось число 0x00 (неужели в языке, где нет встроенных побитовых операций, так часто используются шестнадцатеричные константы?).


image

Как человек, принимавший участие в подготовке этой статьи, хочу выразить некоторое недовольство переводами терминов, которые выбрал автор.


«Свойство-ориентированное тестирование», хотя и является формально верной калькой с английского «property-based testing», звучит и выглядит ужасно. Возможно, следовало бы оттолкнуться от альтернативного термина «generator-driven testing» и воспользоваться описательным переводом. Как по мне, самым подходящим названием было бы «эвристически-рандомизированное тестирование».

Тарификация телефонных разговоров — это как раз тот случай, где не следует использовать местное время: если не требуется делать дневных/ночных тарифов, то биллинг вообще может целиком и полностью работать в UTC, ничего не зная о существовании местного времени.

Я не суперспец в ПЛИС, но с каких пор копипаста называется повторным использованием кода? Разве не следует вынести общую функциональность в отдельный именованный модуль?

Если же клиент покупает в интернет-магазине iPhone 3G за 22 999 ₽, он не может оплатить 20 000 или 25 000 ₽, ему надо перечислить магазину именно 22 999 ₽, поэтому потребовалось разработать новый протокол.

Из каких соображений понадобилось в оригинальном протоколе реализовывать подобное искусственное ограничение: что мешало просто передавать сумму числом? Это как если бы по TCP/IP можно было передавать только пакеты длиной 50, 100, 500 и 1000 байт.

[HFT в основном тяготеет к] использованию всяких FPGA, где и системный С присутствует…

Думаю, не следует переводить System C таким образом: это, всё-таки, имя собственное.

Всё остальное развивается и прилагается (если требуется).

Без поддержки на уровне синтаксиса многим из этого «всё остальное» будет просто невозможно нормально пользоваться, ну или, как минимум, предельно неудобное. Например, сравните удобство работы:


  • со строками в чистом C и C++ (где есть поддержка классов на уровне синтаксиса);
  • с традиционными ФП-шными map и filter в Lua (альтернативно: Python) и Haskell (где есть удобный синтаксис для лямбда-функций и срезов операторов);
  • с уже упомянутым Parboiled в Java и Scala (где есть кастомные и перегруженные операторы).

Синтаксис очень важен, в отличие от вечных споров вида «фигурные скобки против begin—end».

Можно немного подробнее про OpenCL — почему он «не очень» на AMD-картах?

У самого пока что для экспериментов с OpenCL только старая nVidia-карточка. Жажду со временем разорить университет на несколько видеокарт и присматриваюсь больше к AMD — у них шина памяти шире, и стоят дешевле Тесл.
Действительно, зачем Windows поддерживать стандартизованные технологии, когда свои родные vendor lock-in'ы работают как часы? А разработчики не треснут, напишут отдельную версию для Windows.
Если без сарказма, то OpenGL — это не столько игры (которые сегодня часто изначально ориентируются на DX-рендер), сколько программы визуализации чего бы то ни было. Научных данных, например. И необходимость думать о том, что где-то там на некой очень популярной платформе может внезапно не оказаться OpenGL, лично меня, например, очень удручает.
Вы уже как-то определитесь, они единое логическое приложение или таки не связаны.
Думаю, это следует читать как «содержит набор сервисов, фреймворков и библиотек, написанных специально для приложения и нигде более в свободном виде не использующихся». Они вроде как и не связаны, но и по-отдельности никому не нужны.
«Анемичная» модель в виде массива в качестве сущности бизнес-логики, наверное, совсем не айс, но в качестве DTO — почему нет? DTO не особенно нужна инкапсуляция, а хранить массив таких объектов в глобальной переменной никто не заставляет.
Кстати, в Python есть такая вещь, как collections.namedtuple, которая очень подходит для сущностей сложнее кортежа, но недостаточно сложных для написания отдельного рукотворного класса. Уверен, что в насквозь динамическом PHP можно сделать аналог (или он уже существует).
Само собой, зло — потому и кавычки. Но концептуально «PHP Object Notation» (или «PHP Array Notation»?) ничем не хуже JSON, кроме отсутствия аналога функции json_decode.
А чем описанное в статье использование PHP-массивов принципиально отличается от JSON, который сейчас, вроде как, везде принято любить? По-моему, это абсолютно то же самое, этот код можно даже вынести в отдельный файл (с расширением .phpon?) или хранить в БД, «декодируя» вызовом функции eval. Поэтому, думаю, определённая легитимная область применения у этого подхода есть, частично совпадающая с областью применения JSON/YAML/XML.
12 ...
11

Information

Rating
3,662-nd
Location
Воронеж, Воронежская обл., Россия
Registered
Activity