• Иерархия моделей в Laravel?

    @Finsh
    Для того, чтоб описать данные взаимоотношения в Laravel мы можем создать одну миграцию таблицы product, описать у неё все возможные свойства, что упоминаются в типах (класс, тип, артикул, ширина, высота, материал, огнеупорное ли, покрыты ли лаком), после чего создавать модели необходимых изделий, сохраняя требуемое нам наследование, но тут вопрос - как, например, указать для модели, при работе с общей таблицей (где хранятся вообще все продукты) возвращать только те, у которых указан, например, класс = (int) 2?


    Вы Собираетесь хранить довольно много лишних, пустых ячеек и создавать вагон ненужных моделей. Не делайте так. Продукты делятся не на 2 класса, а на 2 типа. А тип(Окна пластиковые, Окна деревянные) - это одно из свойств продукта(материал).

    1. Одна таблица для продуктов, где храните артикул и обязательные поля для всех продуктов.
    2. Одна таблица для свойств продуктов, где храните все свойства для продуктов.
    3. Связь многие ко многим расскажет к какому продукту какое свойство относится. Это позволит гибко добавлять свойства и прикреплять их к продуктам без вмешательства программиста.
    4. Одна таблица - одна модель. Можно заморочится и с ДМ и с репозиториями и т.д. но если по простому, то одна таблица - одна модель. Свзяывайте их реляциями.
    Ответ написан
    Комментировать
  • Как вы решаете проблемы с генерацией проектов в Android Studio?

    kivsiak
    @kivsiak
    software engineer
    >Если кто-то один обновился и закомитил изменения у всех других разработчиков из IDE проект больше не собирается (неверная версия gradle).

    а тут вам gradlew в помощь.
    Ответ написан
    Комментировать
  • Существуют ли SSH-proxy для логирования?

    Попробуйте ELF библиотеку snoopy (snoopy logger). Есть готовые пакеты под большинство rpm/deb-систем.
    Логирует все исполняемые консольные команды, все запускаемые скрипты и тд. Обойти можно только отключив прелоад библиотеки (собственно надо иметь права суперпользователя).
    Вывод в логах крайне подробный и информативный. Пример:
    Aug 10 06:30:01 ctrx snoopy[15967]: [uid:0 sid:15967 tty: cwd:/root filename:/usr/bin/scp]: scp www-data@***********:/home/www-data/downld02.txt /var/www/ctrx.com/collect/downld02.txt
    Aug 10 06:30:01 ctrx snoopy[15968]: [uid:0 sid:15968 tty: cwd:/root filename:/srv/www/forum.ctrx.com/bin/collect-stats]: /srv/www/forum.ctrx.com/bin/collect-stats
    Aug 10 06:30:01 ctrx snoopy[15966]: [uid:0 sid:15966 tty: cwd:/root filename:/srv/www/www.ctrx.com/bin/process-collect-data]: /srv/www/www.ctrx.com/bin/process-collect-data
    Aug 10 06:30:01 ctrx snoopy[15969]: [uid:0 sid:15969 tty: cwd:/root filename:/usr/bin/sync-video]: /usr/bin/sync-video
    Aug 10 06:30:01 ctrx snoopy[15971]: [uid:0 sid:15969 tty: cwd:/root filename:/usr/bin/basename]: basename /usr/bin/sync-video
    Aug 10 06:30:01 ctrx snoopy[15973]: [uid:0 sid:15969 tty: cwd:/root filename:/usr/bin/flock]: flock -n 9
    Aug 10 06:30:01 ctrx snoopy[15974]: [uid:0 sid:15969 tty: cwd:/root filename:/usr/bin/rsync]: rsync -a -L --log-file=/var/log/sync.log www-data@**********:/srv/video /var/www/ctrx.com/alias.ctrx.com/docs/projects/ctrx.com/
    Aug 10 06:30:02 ctrx CRON[15963]: pam_unix(cron:session): session closed for user root
    Aug 10 06:30:02 ctrx snoopy[15977]: [uid:106 sid:44096 tty: cwd:/ filename:/bin/cat]: cat /proc/diskstats


    Как видно логируется точная дата, хост, uid, sid, терминал, pwd, команда

    Далее можете уже на хосте настроить syslog-ng/rsyslog что бы отделять логи snoopy (по умолчанию летит все в auth.log) и если есть необходимость пересылать по tcp/udp на коллектор логов для дальнейшего анализа и хранения

    Лично я пытаюсь его совместить со стандартным auth, authpriv и разделять по host/user что бы видеть кто когда логинился и что выполнял, а так же отсеять мусор от служебных пользователей типа zabbix (от zabbix-agentd), который выполняет кучу команд и в принципе не нужен в логах

    P.S. Кстати благодаря этой библиотеке многое узнал о процессах протекающих в разных системах (Debian 6,7, Arch, RH5, Ubuntu Server 12.04/14.04) без моего ведома, о их "скрытой жизни". Особенно поразила Ubuntu Server в плохом смысле.
    Еще был найден баг в Debian 6 в скриптах bash_completion. В Wheezy уже починили.
    Ответ написан
    Комментировать
  • Какой есть лаунчер для водителя android?

    @Steely
    У меня нет опыта разработки (да и желания тоже) и денег.


    Теперь вопрос, зачем, собственно, вы нужны тому кто это может реализовать?
    Ответ написан
    Комментировать
  • RESTful API какой язык выбрать?

    Freika
    @Freika
    Senior Ruby on Rails developer
    Посмотрите в сторону Ruby и в частности Rails. Существует специальный гем(библиотека), который позволяет использовать фреймворк исключительно в роли API. Rails по-умолчанию RESTful, так что с этим проблем не будет.
    Ответ написан
    Комментировать
  • Регулярное выражение

    mpriver
    @mpriver
    Например, так: ([^\[]+)\[([^\]]+)\](.+)

    Подробнее:
    1. ([^\[]+) — любой символ кроме "["
    2. \[ — собственно "["
    3. ([^\]]+) — любой символ кроме "]"
    4. \] — закрывающая скобка
    5. (.+) — все остальное


    Круглые скобки нужны для группировки, т.е. на выходе вы получите 3 группы, в каждой будет «слово».
    Ответ написан
    2 комментария