All streams
Search
Write a publication
Pull to refresh
14
0

Химик и программист.

Send message
Почему не изучаю? Недавно CUDA стало нужно в «сжатые сроки»… :)
Ok. Бывает 2 случая: 1) изучать для расширения кругозора, когда никто не требует и не торопит; 2) изучать, когда срочно требуется для основной работы.
эволюционировавших раз-два и обчелся
Pascal -> Delphi? ;)
Зачем делают языки — хороший вопрос. Могу предположить несколько не очевидных вариантов.В Вики есть статья «Эзотерический язык программирования» — «в качестве шутки». В большинстве универов мира препод должен заниматься научной работой. Создать язык для отчетов подойдет :) BTW были утверждения, что Си был создан в качестве шутки :)
Вики утверждает, что сейчас более восьми тысяч языков программирования и их число растет. Т.о. вероятность новому языку стать популярным уменьшается. Если не произойдет никаких революций, то языки скоро перестанут изобретать. М.б. это и к лучшему ;)
Чем сложнее язык — тем больше багов окажется в его реализации, тем сложнее организовать достаточно полное тестирование. Но дело не только в разработчиках/кодерах языка и в его тестерах, но и в переносимости на другие платформы, в том числе, появившиеся уже после реализации языка. Кроме того, возрастает сложность стандартизации. Сложность изучения будет тормозить распространение языка. Это студентам хорошо, когда, помимо других предметов, на изучение какого-нибудь языка отводится целый семестр с лекциями и семинарами. Если студент не тупой лентяй, то может не торопясь вникать и разбираться. А работающему в коммерческой компании программисту обычно отводят очень сжатые сроки на изучение. И изучать он постарается не весь язык, а только то, что нужно для конкретной работы. Для больших проектов, чем сложнее и гибче язык, тем сложнее руководителю проекта установить правила написания и документирования кода. Чаще будут возникать ситуации, когда один кодер жалуется на другого, что тот пишет слишком трудно читаемый и трудно модифицируемый код. BTW C/C++ за это критиковали. В.Ш.Кауфман в одной из статей утверждает, что как бы ни старались разработчики языка и его стандартизаторы, любой язык будут содержать неоднозначности («темные места»). Количество этих неоднозначностей — один из основных параметров оценки качества языка. Исходя из общих соображений: чем сложнее язык и чем он гибче, тем больше будет неоднозначностей — ниже качество.

Что касается умножения матриц — они нужны не только в числодробилках. Например, в теории графов куча нечисленных задач с очень широким кругом приложений: от химии до интернет-технологий. Многие из этих задач решаются в том числе и матричным подходом.
Может и не надо запихивать в язык максимум известного? Нпр., стрелку Пирса — достаточно других Булевых операций, чтобы реализовать эту ;)
Может революций и не будет. Тогда софт еще больше отстанет от железа :(

Ceylon не знаю. Вики утверждает, что он со строгой статической типизацией. Это не попытка наступить второй раз на грабли Виртовского Паскаля, где была невозможна универсальная функция умножения двух матриц? ;)
Спасибо. Нужно будет присмотреться внимательнее к этому языку. Хотя про исправление косяков у меня очень пессимистичные впечатления. Если в целом взглянуть на последние десятилетия — то прогресс в языках тормознул: случилась в прошлом веке так называемая ОО-революция (ей предшествовали структурная и модульная революции) и больше никаких революций. Хоть и японцы 5-ое поколение обещали, другие высказывали мнения, что макросы электронных таблиц — качественно новый уровень языков программирования. Тот же Eiffel контракты предложил. Были еще всякие манифесты новых парадигм, только пока никаких революционных сдвигов, сравнимых с ООП, они не произвели.
BTW А чем D хорош? Механизмом вывода типов? contract-based programming from Eiffel?
Я на Perl не пишу, но когда участвовал в обсуждении рукописи книги John Levine, Linkers and Loaders, спросил автора: почему он выбрал перл для примеров? Он ответил, что эти же примеры на другом языке увеличили бы в 2-3 раза объем книги и она стала бы трудно читаемой.
См. TIOBE : Lisp 28 место, далее Ада, но не самые плохие места: Пролог, нпр., на который возлагали столько надежд — 33 место, даже детский язык Лого его обогнал. А Go — вообще 48-ое. Интересно, что в начало второй страницы на 21 место Fortran переехал, который так поддерживали многие для научных вычислений (в квантовой механике, нпр.) и Интел поддерживал ;) Однако и у С/С++ тенденции к спаду.
Забавно, что не только «С- жив», но и мамонт по кличке Кобол (последняя строчка 1ой страницы TIOBE). Видимо, не все спецы так любят новации, как пытаются убедить инноваторы :) По сравнению языков есть интересный сборник корифеев: Языки программирования: Ада, Си, Паскаль. Сравнение и оценка. М.: Радио и связь, 1989. Столько лет прошло, а до сих пор актуально :)
А если серьезно? В USA, UK, Канаде и т.д. сейчас идет охота на ведьм? ;)
Как законопослушный гражданин может застраховаться от судебной ошибки? Ни одна система, ни один антивирусник не дают 100%-ную гарантию от троянов. Вполне может сесть троян, который пошлет какое-нибудь нехорошее сообщение, пока я пишу этот текст. Или же быть уже посажен в бесплатно распространяемую программу или ОС. Например, найдется какая-нибудь очень удобная сборка Линукса, загружу live DVD, а что там троян, можно и не обнаружить. Как в других странах решается эта проблема?
См. function CaptureScreenRect в файле UnitRecognize.pas. По гуглу можно найти много похожих примеров кода для снимка экрана. Процедуры распознавания в том же файле. (Исходный код выложен здесь).
Не помогает. И в ХР не работает.
Очень интересно. Подскажите, пожалуйста, где ошибка?:
function kbd (key : integer): integer;
...
 // Press key
  pInputs.ki.wVk := key;
  pInputs.ki.dwFlags := 0;
  SendInput (1, pInputs,sizeof(TInput));

  // Release key
  pInputs.ki.dwFlags := KEYEVENTF_KEYUP;
  SendInput (1, pInputs,sizeof(TInput));

У меня, правда, ознакомительная Win8.1x32. Надеюсь, здесь это несущественно.
Потому как после выкладывания движка бота начнётся гонка скриптов, многие из которых не будут выложены на публику.
Пока гонки не видно. Пока гораздо легче пройти ПБ обычным образом руками, чем написать скрипт:) В игре несколько десятков ПБ карт (можно подключать свои, но заданий на их прохождения в стандартной игре не будет). Эти несколько десятков карт рекордсмены прошли многократно. Просто надоедает проходить одни и те же карты, а отказ от прохождения очень невыгоден и хороший рекорд без ПБ сделать гораздо труднее.

Еще такое соображение: если кто-то сделал бота, но не стал выкладывать в широкий доступ, то это ничего не меняет, т.к. кто-то другой может сделать аналогичного бота ;)

Если бот окажется успешным, то будет как с секретами прохождений основной игры и отдельных ПБ. Рекордсмены охотно делятся секретами. Иногда даже руководства пишут (см., нпр.) На все ПБ есть видеопрохождения.

А про распознавалку, что уже получается распознать?
Числа ресурсов. Скрин игры всегда распознается правильно.
Успехи весьма велики, но код выкладывать в открытый доступ не собираюсь, так как это очень негативно скажется на игре.
У нас противоположная ситуация :) Дампридер ИМХО повысил интерес к игре. И мой генератор корпусов не вызвал негатива, и бот для ПБ не вызовет. А доступность кода ставит всех игроков в равные условия. Вот если бы исполняемый код был доступен только нескольким игрокам — было бы несправедливо :)

Information

Rating
Does not participate
Registered
Activity