• Выбор языка программирования для решения задачи?

    2ord
    @2ord
    Если лишь для моделирования с последующей визуализацией результатов, то Octave/MATLAB. Есть большая база готовых алгоритмов.
    Если нужна независимая программа с графическим/текстовым интерфейсом, то для Python тоже можно найти много пакетов для вычислений.
    Ну и, классика - Фортран. Хотя в наши дни он уже не столь популярен как два десятка лет назад.

    Ещё добавлю два популярных ныне языка общего применения: Java, C#.

    А в каком языке можно определить объект (в моем случае геометрическую фигуру) и далее добавлять к ней условия: связь с другими объектами, которые как сателлиты должны размещаться рядом (как Луна относительно земли, планеты относительно солнца), добавлять размеры, массу, цвет, определять объекту стороны для которых назначать текстуры? Это нужно все заново разрабатывать или есть готовый API чтобы работать с геометрией и математическими зависимостями между ними, а потом еще и качественно визуализировать это?
    В самом простом случае, когда не требуется наследование, то объектом может выступать структура (данных)/запись (в разных языках называется по-разному). Но обычно в ООП-языках для этой целей используют класс/объект (также именуется по-разному).

    Образно говоря, речь идет об инструменте, который в автоматизированном виде с учетом предварительно определенных зависимостей (количество объектов, их предпочительные связи) и некого случайного выбора будет генерить систему, где все объекты взаимосвязаны с другими и меняются при изменении исходных данных.
    Такой магический инструмент предстоит создать самому.
    Для построения логической части программы можно воспользоваться визуальным языком ДРАКОН, для которого существует несколько реализаций инструментов. Некоторые из них позволяют автоматически транслировать ДРАКОН-схему в исходный код.
    Но ДРАКОН не имеет ничего общего с нотацией UML. Возможно, как раз некоторые построители UML смогут сгенерировать код со связями на основе диаграммы связей UML.
    Ответ написан
    2 комментария
  • Как удалить файлы с длинным именем в Windows?

    2ord
    @2ord
    Хотя сначала подумал, что виноват Windows ZIP-распаковщик, это не так. В столбце "Дата изменения" указаны хаотичные будущие даты. А это значит, что файловая система сильно повреждена.
    Ответ написан
  • Как в ubuntu подключить git репозиторий по ssh?

    2ord
    @2ord
    Ответ написан
    Комментировать
  • Как правильно запустить сайт на руби и Unicorn?

    2ord
    @2ord
    Using /home/master/.rvm/gems/ruby-2.2.0
    /path/to/repository/shared/bundle/ruby/2.2.0/gems/kgio-2.9.2/lib/kgio.rb:21:in `require': /path/to/repository/shared/bundle/ruby/2.2.0/gems/kgio-2.9.2/lib/kgio_ext.so: wrong ELF class: ELFCLASS64 - /path/to/repository/shared/bundle/ruby/2.2.0/gems/kgio-2.9.2/lib/kgio_ext.so (LoadError)
            from /path/to/repository/shared/bundle/ruby/2.2.0/gems/kgio-2.9.2/lib/kgio.rb:21:in `<top (required)>'
            from /path/to/repository/shared/bundle/ruby/2.2.0/gems/unicorn-4.8.3/lib/unicorn.rb:6:in `require'
    ...
    говорит о том, что библиотека kgio_ext.so была взята со старой машины, на которой она была скомпилирована под другую архитектуру (64 битную).
    По-хорошему надо было установить, не копируя папку /path/to/repository, потому что там привязки к старой машине. Но, похоже, весь процесс миграции был сделан с левой ноги.

    Порядок подготовки к установке веб-приложения должен быть таков:

    1. Ruby настоятельно рекомендуется устанавливать через штатный менеджер установок системы (apt), иначе не будут происходить обновления с устранением уязвимостей.
      Установка через rvm или rbenv с правами sudo чревата проблемами с безопасностью системы, на которой запускается сайт, поскольку версии установленных интерпретаторов фиксированы и не обновляются системой автоматически. Их нужно обновлять вручную.
      ruby 2.2.0 имеет уязвимости CVE. Если стандартной убунтовской версии 2.0 недостаточно, то можно установить версию 2.2 при помощи PPA репозитория https://www.brightbox.com/docs/ruby/ubuntu/ (глава Installation)
      sudo apt-get install ruby2.2 ruby2.2-dev ruby-switch
      sudo ruby-switch --set ruby2.2

    2. Сначала установить сам bundler (bundle)sudo gem install bundler
      bundle - утилита для разрешения зависимостей приложения, указанных в Gemfile. Читать на bundler.io/#getting-started

    3. Разные gem-зависимости приложения могут требовать компиляции из C/C++ исходников (обёртки над сторонними библиотеками). Для них должны быть установлены соответствующие "xyz-dev" .deb пакеты через штатный apt. Заранее узнать какие пакеты потребуются нельзя. Нужно проверять с bundle check в корне приложения всё ли в порядке и запускать
      bundle install --path vendor --without development test

      до тех пор, пока все зависимости не будут удовлетворены (выводится на экран чего не хватает в системе).

    4. gem unicorn также должен быть установлен. Хотя для режима разработки он совсем необязателен (есть webrick).
      Как только для bundle check показано "successful", можно запускать
      bundle exec unicorn -p $PORT -c ./config/unicorn.rb

      Пример конфигурации unicorn.rb можно взять с unicorn.bogomips.org/examples/unicorn.conf.rb

      Как правило, unicorn не выступает в роли независимого веб-сервера, а в роли бэкенда у таких серверов как nginx.

      Далее следуй инструкциям:
      https://launchschool.com/blog/setting-up-your-prod...
      https://www.digitalocean.com/community/tutorials/h...
    Ответ написан
    Комментировать
  • Вызвать writeln и readln Pascal?

    2ord
    @2ord
    По идее, нужно использовать API системы, чтобы работать с вводом/выводом. В разных ОС это может быть реализовано по-разному. В ДОСе - через прерывания, а в современных - через вызов соответствующих функций.
    Для Линукса - библиотека libc с функциями puts, printf и прочие.

    Только я совершенно не вижу смысла писать это на ассемблере. Паскаль для того и хорош, что можно писать переносимый код при помощи обычных write/read.

    Вместо Free Pascal можно попробовать и GNU Pascal . У последнего бэкенд реализован на том же GCC, что уже само собой подразумевает хорошую оптимизацию кода.
    Ответ написан
    Комментировать
  • Для телеграмм бота подойдёт язык Ruby?

    2ord
    @2ord
    Похоже, оба языка примерно одинаковы по производительности.
    Язык ruby. Стоит ли учить язык программирования Ru...
    У Руби есть много компонентов (gems) для работы с различными протоколами и системами, особенно для веба.
    Ответ написан
    Комментировать
  • Как сделать распознавание символов при помощи нейронных сетей со своим набором картинок?

    2ord
    @2ord
    Нейросеть не умеет "видеть" как делает это человек. Ей нужно "подсказать" что есть хорошо, а что плохо.
    Поразмыслив: когда машина цела, то у неё форма кузова ровная, линии сплошные, единым фрагментом.
    Так что необходимо формализовать эти признаки в виде чисел, закодировать входные данные, а нейросеть уже будет классифицировать по этим признакам.
    Ответ написан
    Комментировать
  • Как измерить площадь объекта по фотографии?

    2ord
    @2ord
    1. На стену готовится стенд, на который крепится ярко-зелёное/розовое (не белый или чёрный! Чтобы легко было вычитать фон) прямоугольное полотно известной площади. Полотно должно быть всегда больше чем любая самая большая шкура.
    2. Цифровой фотоаппарат/камера устанавливается на заданном расстоянии от стенда, чтобы полностью покрывать полотно. Освещение должно быть одинаковым для всех снимков. Желательно равномерное освещение люминесцентными лампами или тем, что принесёт фотограф.
    3. Шкура закрепляется на полотне.
    4. Фотографируется со штатива целиком, всегда указывая на центр полотна.
    5. Все снимки "скармливаются" программе по обработке изображений (допустим, на OpenCV). Эту работу лучше доверить специалисту.

    Если хочется обрабатывать самому, то площадь шкуры получаем, вычитая площадь яркого фона и заранее известной площади полотна.
    Ответ написан
    Комментировать
  • Проблема "тормознутости" Ruby реальна в наше время?

    2ord
    @2ord
    Скажем, логику игрового сервера можно реализовать в виде микро-сервисов на более легковесных фреймворках нежели Rails: Sinatra, Hanami и т.д. Самый простой вариант - использование JSON в качестве формата для входных/выходных данных.
    Или же при помощи MessagePack (есть gem) можно обмениваться с различными микро-сервисами, которые могут быть реализованы на других языках.

    В случае использования MessagePack (или аналогов) и микросервисов всегда можно впоследствии перейти на решения на других языках, если потребуется из-за узких мест в производительности.
    Ответ написан
    Комментировать
  • Чтобы проработать Шеня и Вирта нужно учить Паскаль?

    2ord
    @2ord
    Вся прелесть Паскаля в том, что он прост. Зная английский на школьном уровне, ты сможешь свободно понимать синтаксис Паскаля.
    А синтаксис Оберона ещё проще, чем Паскаль и Модула.
    Нумерация массивов в Обероне такая же, как и в Си, идёт с нуля.
    VAR
      arr: ARRAY 10 OF REAL;
      (* структуры/записи *)
      date: RECORD
        day, month, year: INTEGER
      END;
      set: SET;
    BEGIN
      arr[0] := 1.2E-5;
      date.day := 12; date.month := 4; date.year := 2020;
      set := {1,2, 5..15}
    END
    Ответ написан
    Комментировать
  • Какой алгоритм лучше всего применять для решения задачи коммивояжера?

    2ord
    @2ord
    Подойдёт наверно любая нейросеть с элементами соперничества.
    Самоорганизующаяся сеть Кохонена: https://www.youtube.com/watch?v=8tnxgfE6glI
    Ответ написан
    Комментировать
  • Каким вы видите будущее Ruby?

    2ord
    @2ord
    Можно ощущать себя как в стаде и бежать куда все бегут. А можно найти свою золотую жилу.
    Ответ написан
  • Как и где хранить огромное количество изображений?

    2ord
    @2ord
    Ceph поддерживает протокол Amazon S3, что позволяет хранить файлы в своём облаке и отдавать их по HTTP так же, как и сервис AWS.
    Или разузнайте какие компании предлагают свои облачные хранилища на основе того же Ceph, чтобы снять с себя нагрузку сисадмина.
    Ответ написан
    Комментировать
  • Как организовать отложенное применение изменений в mysql?

    2ord
    @2ord
    Попробовать Очереди на php?
    Ответ написан
    Комментировать
  • Как построить график результирующей функции в matlab?

    2ord
    @2ord
    Вот пример построения параметрических функций:
    t= linspace (-30,-1.6);
    X= ((3*t) ./ (1+t.^3);
    Y= ((3*t.^2) ./ (1+t.^3));
    plot(X, Y)
    Ответ написан
    Комментировать
  • Как с помощью Wand-ImageMagick проверить, сплошное белое изображение или нет?

    2ord
    @2ord
    Белый цвет выражается в RGB hex как FFFFFF. Остаётся лишь в цикле проверить нет ли хоть одного не белого цвета.
    Ответ написан
    Комментировать
  • Как рендерить сложный отчет?

    2ord
    @2ord
    Я обычно в контроллере/модели сохраняю все данные в рубихэш, а затем вывожу во вьюхе.
    Использование класса может быть избыточным решением. Рельсы не обязаны предоставлять решения на любой случай жизни. Для этого есть гемы.

    Добавлено позже
    Для сложных отчётов можно воспользоваться хелперами для автоматизации построения блоков.

    Более того, итоговый отчёт можно в конце представить в виде чистых данных в XML (как сериализованный рубихэш), а затем произвести трансформацию в нужное представление при помощи XSLT:

    Creating Word reports with XSL transformations
    Ответ написан
    1 комментарий
  • Как реализовать "Универсальный файл конфигурации для приложений"?

    2ord
    @2ord
    Слишком заморочно будет следить за зоопарком всех видов конфигураций и синхронизировать. Перед обновлением синхронизатор должен будет каким-то образом решать конфликты в конфигурациях.
    Ответ написан
    Комментировать
  • Как пройтись по дереву, создавая код для каждого листа (символа)?

    2ord
    @2ord
    Нули и единицы "сохраняются" в байтах. Туда и сохраняй при помощи битовой маски. Заполнен целый октет одного байта - переходишь к заполнению следующего. А сами байты накапливаешь в буфер и скидываешь на диск по заполнению буфера.
    Сам не кодировал по Хаффману, но представляю себе это именно так.
    Ответ написан
    Комментировать
  • Существует ли программа или сервис для поиска похожих изображений по образцу?

    2ord
    @2ord
    Нужно искать по терминам CBIR (Content-Based Image Retrieval), VIR (visual information retrieval), Bag-of-words.
    Для более-менее достойного поиска желательно иметь облако тегов от классификаторов, согласно которому должен производиться поиск.
    Ответ написан
    1 комментарий