Ответы пользователя по тегу Программирование
  • Как вы организуете свою работу?

    riky
    @riky
    Laravel
    ide от jetbrains, снимают много вопросов.
    2 монитора, без этого никак, по крайней мере веб (подумываю о третьем)
    личная база в one note (не идеально но пока лучшее что нашел, evernote не нравится)
    Ответ написан
  • Как с помощью ООП смоделировать сложный игровой мир?

    riky
    @riky
    Laravel
    наверное можно было бы сделать это аналогично тому как в Unity у GameObject назначаются компоненты. то есть универсальные объекты для всего всего и к ним добавляются любые компоненты которые модифицируют их поведение.
    Ответ написан
    3 комментария
  • Брелок отправляются уведомление в приложение?

    riky
    @riky
    Laravel
    как вариант: берем ардуино nano или pro, gprs shield (не знаю правда есть ли такие на нано, если нет то на обычной ардуино будет громоздко конечно).

    если приложение без авторизации то скетч будет простой. нужно будет сниферить какой запрос отправляет приложение.

    UPD видео с примером https://www.youtube.com/watch?v=9UEcT5GxdBk

    UPD2 вот более миниатюрный gprs модуль M590-GSM-GPRS-module-development-board-learning-bo...
    Ответ написан
  • Как на PHP выполнить долгий скрипт?

    riky
    @riky
    Laravel
    у вас проблема не со временем, а в том что память заканчивается, или memory limit поднимайте или оптимизируйте алгоритм.
    очень подозрительный код, если это консоль, то зачем там ob_* функции и flush ?
    данные не нужно накапливать в памяти сохраняйте обработанные данные сразу в базу или файлы
    Ответ написан
    7 комментариев
  • Что такое Байт Бит и как это работает не много о звуке?

    riky
    @riky
    Laravel
    по поводу картинок это действует только для примитивных форматов типа bmp. там реально чтобы получить N пикселей достаточно прочитать 3*N байт. все остальные форматы графики (за редким исключением) сжимают изображение, очень часто даже с потерями (особенно jpeg).

    маленький опыт чтобы проверить это. возьмите 2 картинки одинакового размера и сохраните их в разных форматах. в bmp размер будет одинаковый, во всех остальных - будет отличаться, порой очень сильно.
    если бы каждый пиксель занимался ровно 3 байта или любое другое но фиксированное число байт - то размер картинок с одинаковым рзарешением должен быть одинаковым, тк он строго пропорционален количеству пикселей, но это в основном только у bmp.

    со звуком аналог bmp это vaw. он также хранит информацию пропорционально времени. тут лучше открыть вики хотя бы и посомтреть как vaw хранит звук, что такое частота дискретизации. но записи одинаковые по времени будут иметь одинаковый размер.

    bmp и vaw простые форматы удобные для простой потоковой записи и чтения. но используются крайне редко из-за большого размера, поэтому используются гораздо более сложные форматы, для того чтобы размер файла был меньше. но их довольно сложно читать, без специальных готовых функций для их чтения и преобразования в понятный набор 3 байт например.
    Ответ написан
  • Музыка и программирование

    riky
    @riky
    Laravel
    music for programming musicforprogramming.net
    Ответ написан
    Комментировать
  • Правильно ли делать циклы рекурсиями?

    riky
    @riky
    Laravel
    пример ересь какая то.
    потому что все это заменяется на
    function test(){
       return 6;
    }


    а вообще кто вам запрещает, учитывайте только что лишний вызов функции - лишний оверхэд по ресурсам.
    но если у вас там всего несколько итераций, то это конечно никто не заметит.
    Ответ написан
    5 комментариев
  • Как правильно реализовать инверсию зависимостей в PHP?

    riky
    @riky
    Laravel
    помоему вы не туда ушли.
    идеал - не то что два класса никак не связаны. классы всегда будут связаны.
    то что вы сущности post создаете в сервисе это норма. все равно при расширении вы будете просто добавлять туда новые свойства и геттеры/сеттеры. вы же не будете расширять post наследованием?

    либо создайте отдельный сервис фабрику для постов и создавайте в ней. PostFactory::createPost()
    а в Wall классе считайте что работаете с обьектом наследующим PostInterface.
    только в таком случае вы по нормальному используете только те геттеры/сеттеры которые указаны в PostInterface.

    в общем вопрос только зачем вам хочется абстрагироваться от Post ?
    Ответ написан
  • Как лучше брать оплату за работу (фикс за объем / фикс за время / почасовая)?

    riky
    @riky
    Laravel
    в ваших условиях когда заказчики не знают что хотят я бы рекомендовал выгодную обоим схему.

    будет проходить много обсуждений с вами функционала - за это брать по часам - сложно предугадать соклько часов вы будете тупо болтать.
    по функциям договариваться о функционале по небольшим фичам, далее вы называте цену фичи - фиксом (планируемое время * ваш рейт).
    если согласны работаете, если нет - отказаться или подумать как упростить.

    доработки за отд плату.

    таким образом заказчик изначально понимает что заплатит, а вы можете работать быстрее если хочется.
    но если медленее - конечно расходы вы покрываете сами своим временем.
    Ответ написан
    Комментировать
  • Стоит ли покупать arduino начинающему программисту?

    riky
    @riky
    Laravel
    для старта можешь глянуть уроки джереми на этой же амперке

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

    для начала бери не думай arduino uno, потом можешь еще мегу256 взять, или наоборот микро и нано (супер дешевые и миниатюрные). на уно плюс в том что легко можно ставить любые шилды, а на других могут быть нюансы. для изучения все равно количество ног хватит и ее, почти все мануалы также описаны для нее.
    Ответ написан
    Комментировать
  • Как автоматизировать деятельность отдела закупок?

    riky
    @riky
    Laravel
    Все реально.
    Главное чтобы после автоматизации, автоматизатор не нужен не оказался.
    Ответ написан
    1 комментарий
  • Как сделать чтобы программа возвращалась в начало?

    riky
    @riky
    Laravel
    пишите код в main внутри бесконечного цикла

    while(1) {
      // весь код здесь
    }
    Ответ написан
    Комментировать
  • Можно ли такое осуществить?

    riky
    @riky
    Laravel
    для ардуины есть библиотека для работы с пультами
    https://github.com/z3t0/Arduino-IRremote
    в ней уже зашиты пульты многих производителей, если не ошибаюсь можно свои добавлять.

    как то баловался с пультами, получается не сложно.
    надо будет сначала изучить структуру сигналов от пульта. там нифига не как фонарик) там определные тайминги у сигналов, посути цифровой код

    это все она уже делает
    Ответ написан
    Комментировать
  • Написание кроссплатформенного приложения (linux/windows) + сервер статистики. Что выбрать?

    riky
    @riky
    Laravel
    Отвечал на второй ваш вопрос, тут также - требования размытые, но по ним видно что язык также любой подойдет.

    По двум вопросам могу предположить, что вы преподователь не ИТ специальности и судя по всему опыта в программировании у вас мало или нет, но есть желание сделать программу для тестирования студентов.

    Могу предложить познакомится с nodejs. на нем можно и десктоп проги писать (NWjs, electron atom) - кросплатформенные и серверную часть (которая к тому же экономна по ресурсам и не грузит). в дальнейшем можно и мобильные приложения (react native)
    плюсы - один язык везде (десктоп/сервер/фронтенд/мобильные) хотя везде будут свои нюансы конечно. и еще плюс - огромное сообщество.

    также многие здесь наверное порекомендуют Python также можно и десктоп писать и сервер, но порог входа будет выше.
    Ответ написан
    Комментировать
  • Что выбрать для написания сервера API?

    riky
    @riky
    Laravel
    У вас требования никакие, подойдет любой серверный язык (в комментах вам каждый напишет свой любимый язык программирования).
    Не совсем понятно что вы имеете под словом "нагрузку держал".
    хотя бы пишите до скольки одновременных сессий?

    PS если десктопы передают только статистику то нагрузки скорее всего там никакой. сразу замечу что такой вариант умные студенты легко взломают, если проанализируют трафик программами типа wireshark и тд. не забудьте хотя бы сигнатуру добавить, так уже посложнее будет, придется декомпилировать чтобы алгоритм понять. Правильнее всего конечно отправлять на сервер только ответы, а уже на сервере решать правильно или нет. Но если у вас тесты не оч серьезные, и их накрутка особо не интересна, то конечно и так можно.
    Ответ написан
    Комментировать
  • Как резултат цикла выводить снизу вверх?

    riky
    @riky
    Laravel
    array_reverse
    Ответ написан
    Комментировать
  • Как правильно искать совпадения с рекулярками вида "*туттекст*тутещетекст*", где * любая последовательность символов?

    riky
    @riky
    Laravel
    а почему во втором случае должно быть совпадение?

    если ТЕКСТ1хотите не обязательным сделать так и пишите

    регулярка:
    .*(ТЕКСТ1)?.*ТЕКСТ2.*
    Ответ написан
    Комментировать
  • Как реализовать язык который будет компилироваться в другой язык программирования?

    riky
    @riky
    Laravel
    не давно как раз подобным занимался. нужно было сделать компилятор из чего то похожего на excel в php.

    основные шаги для этого
    1) токенизация, модуль лексер проходит посимвольно код и разбивает исходный код, на вашем новом языке на токены, числа, ключевые слова, скобки и тд, то есть каждый токен - некая последовательность символов пример ("var", "name", "=", "vasya", ";", "print", "(", "name", ")", ";").
    2) далее парсер проходит по токенам и определяет их тип, при этом как правило строится AST (abstract syntax tree). это набор объектов в которых исходный код представлен в виде объектов и операций над ними.
    в этом виде код уже можно выполнять, не генерируя код на целевом языке.
    3) компиляция. на основе AST генерируется код на другом языке.

    основные ключевые слова можно посмотреть здесь https://en.wikipedia.org/wiki/Lexical_analysis

    если знакомы с php, то вот примеры таких компиляторов на php
    на нем они получаются довольно просто, тк язык высокоуровневый

    https://github.com/symfony/expression-language (парсит выражения и может вычислять их на основе AST то есть без генерации php кода, хотя может и его генерить)
    https://github.com/twigphp/Twig (парсит шаблоны и генерит php код)
    код очень похож, тк создатель у них один.

    я свой парсер тоже делал на их основе, но пришлось серьезно дописывать, чтобы expression-language превратить в полноценный язык программирования, с поддержкой циклов, переменных и других конструкций.

    примеры кода модулей из symfony expression language
    1) токенизация
    https://github.com/symfony/expression-language/blo...

    2) парсер
    https://github.com/symfony/expression-language/blo...
    создаются вот такие сущности https://github.com/symfony/expression-language/tre...
    то есть нода - функция, константа, массив, название переменной и тд.

    3) компилятор
    https://github.com/symfony/expression-language/blo...
    но большая часть генерации кода происходит в самих нодах. пример - https://github.com/symfony/expression-language/blo...
    Ответ написан
    Комментировать
  • Самый удобный интерфейс админки?

    riky
    @riky
    Laravel
    дерево категорий + текстовый поиск по названию по выбранной категории и ее подкатегориям (+по всем).

    лучше поиска для поиска конкретной статьи вряд ли чтото придумаешь, вопрос тут только в правильных фильтрах которые необходимы для поиска.
    Ответ написан
    1 комментарий
  • Как правильнее для node js подключать модули?

    riky
    @riky
    Laravel
    в пхп это больше вынужденная мера, чтобы лишнее не грузить на каждый запрос, но это и добавляет оферхэд на поиск классов каждый раз. в ноде процессы долгоживущие.
    чтобы грузить автоматом все - через модуль fs сделайте поиск всех модулей в папке node_modules и делайте require - только помоему это плохая идея. переменные будут неявные - как минимум потеряете подсветку от IDE, если какой то модуль пропадет - ошибку получите не при запуске а когда будет обращение к нему.

    если у вас много скриптов в которых вы прописываете много require то может сделать тдельный файл со списокм require и инклюдить везде его?
    Ответ написан
    2 комментария