Ответы пользователя по тегу Программирование
  • Что использовать для хранения информации и вывода графиков c raspberry pi?

    @dponyatov
    хранить в текстовом файле cat /dev/yourdevice >> /mnt/sdcard/data
    выводить tail /mnt/sdcard/data | gnuplot
    Ответ написан
    Комментировать
  • Дальнейшее развитие для новичка при отсутствии вакансий в городе?

    @dponyatov
    Идете на работу на какую возьмут, на любую зарплату какую дадут.
    И параллельно: общайтесь с людьми, выясняйте их проблемы, смотрите как применить компьютер на своем рабочем месте (лучше всего при условии что это увеличит вашу личную продуктивность), и по этим "исследованиям" пишите мелкие программки, решающие эти проблемы.

    Очень посоветую посмотреть в сторону мобильной разработки (дешевые телефоны на Android), Python и фреймворк kivy -- сам буквально неделю назад на него подсел, за вечер написал узкоспециализированный калькулятор. Например посмотрите, не получиться ли реализовать систему мобильных терминалов на базе мобильников для вашего текущего работодателя (см.выше).

    При таком подходе у вас будут деньги на текущую жизнь, и при этом хорошие перспективы карьерного роста, особенно если ИТ для вашей конторы непрофильное направление. Вполне реально взлететь до начальника ИТ-отдела или главного (и единственного) разработчика с соответствующим окладом и плюшками, особенно если такого отдела в вашей конторе тупо не существует.
    Ответ написан
    Комментировать
  • Как разрешить спортивный семейный IT спор?

    @dponyatov
    для начала: пусть поиграется вот с этим (без шуток): scratch4russia.com/store
    (книги и игровая среда, аппаратное расширение на одурино еще сам не смотрел)
    смысл: фигулька для детей, нулевой порог вхождения, все визуально, и самое главное -- отсутствие психологического барьера: это же просто игрушка для детей, можно просто поиграться, и заодно почувствовать само программирование в чистом виде (алгоритмику), не завязываясь на кучу сложностей с языками, средами разработки, платформами, деплоем и прочей сложной для самого начинающей ф-ней

    Потом, когда играться надоест, и захочется заглянуть в практическую область -- Python, и ни в коем случае не С++: сетевые сервисы, обработка/анализ данных, утилиты и т.п. Для толстого клиента с GUI - биндинг wxWidgets для питона. Для зарабатывания денег -- дополнить СУБД (MySQL, чуть позже параллельно Oracle).

    ЗЫ: что касается игрушки -- была такая штука как colobot, была бы интересна мультиплатформенная версия (win, lin, + обязательно android) с сетевым мультиплеером. Если понадобится информация по реализации игровых скриптов -- неспешно перевожу книгу по реализации динамических языков Shriram Krishnamurthy Programming Languages: Application and Interpretation, готовый подстрочник в .pdf доступен на https://github.com/ponyatov/PLAI/releases, ссылки на оригинал в git-репе
    Ответ написан
  • Скетч для Ардуины умеющий сразу читать и записывать Визит/Метаком/Цифрал, есть?

    @dponyatov
    А в чем проблема тупо 3 готовых скетча слепить в один, и последовательно выполнить опрос ?
    Ответ написан
    Комментировать
  • Bison - как реализовать ООП?

    @dponyatov
    Советую начать вот с этой книги, разобраться как внутри работают динамические языки.
    А потом уже двигаться в сторону динамической или статической компиляции, или transformational programming.

    cs.brown.edu/courses/cs173/2012/book/book.pdf
    Shriram Krishnamurthi
    Programming Languages: Application and Interpretation
    Ответ написан
  • Какова правильная логика обновления клиента игры?

    @dponyatov
    Поднимите свой git-сервер для бинарных релизов и открытых скриптов, раз уж Microsoft за 20 лет не разродился apt update. В особо извращенных случаях можно даже отдавать часть исходников, и собирать stand-alone gcc на клиенте с оптимизацией -arch=host.
    Ответ написан
    2 комментария
  • Научиться парсингу - с чего начать?

    @dponyatov
    (2) теоретически парсинг _любых_ текстовых форматов в самом общем смысле можно делать связкой flex/bison/C++:
    1) прописывая регулярки для элементов языка входных данных (строки, числа, тэги,...), затем
    2) на bison описываете грамматику входного языка (вложенные тэги, правила расстановки атрибутов, вложенные скобочные выражения и т.п.),
    flex/bison генерит пару сишных/С++ файлов, выполняющих всю грязную работу по синтаксическому разбору формата, дергая для каждого определенного элемента _ваш_ кусок сишного кода. Что потом делать с этими данными (пихать с СУБД, генерировать AST для компилятора, просто вычленять нужные единичные данные,..) описываете сами на С++.

    У этого подхода соотношение низкоуровневость*гемор/универсальность стремиться к бесконечности, но по мере наработки библиотеки С++ кода для ваших узких задач для каждой N+1 задачи все сводится к генерации типовых высокоуровневых объектов (символов, списков, деревьев и т.п.), и пары десятков строк кода именно для этой задачи.
    Ответ написан
  • Что входит в понятие азы/основы/база/бекграунд/фундаментальные знания программиста?

    @dponyatov
    в порядке освоения:
    1. Python
    2. Кнут Д. Искусство программирования.
    3. Никлаус Вирт - Алгоритмы и структуры данных
    4. Git, GitHub (система контроля версий)
    5. C/C++
    6. GNU Toolchain (GCC, Makefile, autotools)
    7. Java и плагины для IDE Eclipse
    8. HTML/CSS/JavaScript
    9. СУБД и SQL: MySQL, Postges, Oracle
    10. Платформа LAMP: Linux, Apache, MySQL, P(ython)
    11. SICP: Структура и интерпретация компьютерных программ
    12. Книга Дракона: Ахо Сети Ульман: Компиляторы. Принципы, технологии и инструментарий


    Точнее не совсем в порядке освоения: надо послойно,
    сначала очень обзорно и по верхам, чтобы общее представлениеиметь, на уровне HelloWorld
    потом следующая итерация чуть поглубже
    Ответ написан
    1 комментарий
  • Какой язык программирования изучить новичку для написания GUI приложений?

    @dponyatov
    быстрый костыль Python+wxPython, параллельно копать в сторону веб-подхода: локальный http-сервер на Python + JS и GUI в браузере.

    Достоинства второго варианта
    1) масштабируемость на любое количество одновременных пользователей: логика отрабатывается на одном сетевом узле (про полноценный вариант с LAMPy-сервером пока не говорим), при этом обслуживая любое количество клиентов/рабочих мест.
    2) платформенно-независимость, причем автоматически получаем (минимальную) поддержку мобильных клиентов через любой браузер на телефоне, правда только в онлайн режиме.
    Ответ написан
    Комментировать
  • Компиляция кода C++. Какую опцию указать?

    @dponyatov
    Полный текст командной строки запуска компилятора есть?

    В простейшем случае это что-то похожее на
    g++ $(CXXFLAGS) -o program$(EXE) main.cpp module1.cp module2.cpp


    Но в вашем случае если проект собирается из нескольких файлов через IDE, это может оказаться какой-то более сложной проблемой, например ошибкой линкера в обработке имен функций/метдов, измененных манглером
    Ответ написан
    Комментировать