• Каковы перспективы и зарплаты в сфере 3d в 2020 году?

    Lillipup
    @Lillipup
    Allons-y, Алонсо!
    1, 2 В вакансиях обычно указывают вилку зп и список требований

    3, где повезет, там и брать
    Ответ написан
    2 комментария
  • Как заигнорить часть framework.yaml?

    BoShurik
    @BoShurik Куратор тега Symfony
    Symfony developer
    По-хорошему, это решается через php.ini, как рекомендовано в документации
    Since every developer uses a different IDE, the recommended way to enable this feature is to configure it on a system level. This can be done by setting the xdebug.file_link_format option in your php.ini configuration file.

    Но если очень хочется, то можно сделать так:
    # services.yaml
    imports:
        - { resource: 'local.yaml', ignore_errors: true }


    # local.yaml
    framework:
        ide: 'phpstorm://open?file=%%f&line=%%l'

    # .gitignore
    /config/local.yaml

    local.yaml создаете сами локально и вносите туда все конфиги, которые не надо комитить

    Применимо для всех версий symfony*
    Ответ написан
    1 комментарий
  • Как в Laravel группировать а потом сортировать?

    Fragster
    @Fragster
    помогло? отметь решением!
    Либо при создании заявки дать обновлять аккаунт (что не всегда правильно), либо дать протечь абстракции и сделать все через join. Ну и доставать данные через аккаунт, а не через заявки.
    Вот пример: https://laracasts.com/discuss/channels/eloquent/or...
    Ответ написан
    5 комментариев
  • Какую книгу по алгоритмам посоветуете?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Очень рекомендую эту книгу.
    Большая, толстая. очень наглядные структуры с алгоритмами и разборами. На Java. Куча заданий
    5ed4d44738e32888903594.jpeg

    И вот эту серию. Простая и легкая, но хорошая:
    5ed4d4c55de8b750006156.png
    Ответ написан
    7 комментариев
  • Как уйти из медицины в программисты?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вы тут попали в больную гнойную мозоль тостера. Каждый день кто-то приходит и спрашивает "как стать программистом", в 99% случаев это бездельники которые ничего не умеют, и учиться не хотят, но увидели на ютубе видос о том что "программисты зарабатывают от 200к в месяц", а потом их завалила реклама курсов "стань питон-джедаем за 3 дня и уедь в США кататься на порше". Но на курсы денег нет поэтому они приходят сюда и спрашивают "как стать программистом за 3 дня самостоятельно, и можно ли будет получать хотя бы 150к на начальном этапе".

    Так что не удивляйтесь комментариям.

    По делу - начальный этап самый сложный. Во многом из-за засилья "хочунов", которые ничего не умеют но заспамили уже весь интернет и всех работодателей. Через это придется как-то пробиться, или упорством или хитростью. Надо как можно раньше получать реальный опыт, неважно какими способами - и искать работу джуном. Быть готовой что 20 раз откажут перед тем как взять. Дальше все зависит от упорства, города и удачи.

    Город какой у вас?
    Ответ написан
    4 комментария
  • Как настроить .bash_history в контейнере, если пользователь контейнера - не root?

    Я захотела добавить сохранение истории команд внутри php контейнера, нашла однотипные примеры, которые показывают, что нужно замапить файл .bash_history на хост машине с файлом /root/.bash_history внутри контейнера.
    Если вам нужна история не рута, а другого пользователя, то мапить нужно /home/%username%/.bash_history.
    Ответ написан
    1 комментарий
  • Как быть медлительному разработчику?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Подскажите, как вы ведете задачи, чтобы укладываться в сроки?
    никак.
    1. Нужно делать то, за что платят. И делать это - на совесть.
    2. Нет опыта/знаний - нужно получать самостоятельно в режиме самообучения, а не на реальных заказах.
    3. Думать не только о своём успехе, но и об успешности проекта со стороны Заказчика.

    UPD: Личные компоненты и сниппеты кода, текстовики с описанием действий, расписанных по шагам, сильно экономят время, если встанет перед вами похожая задача в очередном проекте.
    Это - личная копилка знаний, которые не поместились в голове.

    Если встаёт проблема с логикой при решении незнакомой задачи, разбейте её на части.
    Пример: добавить столбец к существующей таблице на странице, который должен формироваться через модификацию существующего запроса к БД.
    1. Найти код вывода таблицы.
    2. Найти запрос к БД в коде подготовки данных для этой таблицы.
    3. Составить новый запрос через интерфейс работы с запросами к БД.
    4. Поменять в коде старый на новый запрос, закоментировав старый.
    5. Проверить/отредактировать корректность вывода/рендеринга таблицы на странице.

    Profit!
    Ответ написан
    2 комментария
  • Docker volume как просто задать права на создаваемые файлы?

    @nitrobin
    На эту тему есть даже запрос в оффициальном github docker https://github.com/docker/docker/issues/7198#issue...

    Есть вариант с монтированием в режиме чтения /etc/passwd, /etc/group и пробросом своего uid
    Подсмотрено тут: wiki.ros.org/docker/Tutorials/GUI

    docker run --rm  -ti \
               -v $(pwd):/tmp/hx \
               -w /tmp/hx \
               -v /etc/group:/etc/group:ro \
               -v /etc/passwd:/etc/passwd:ro \
               --user=$USER \
               debian:jessie


    Не уверен что это в общем случае достаточно безопастный способ, но он определенно самый простой и безболезенный если на хосте linux.
    Ответ написан
    1 комментарий
  • Как указать docker'у пользователя linux от которого создавать файлы(миграции laravel)?

    @GregIv Автор вопроса
    @rustler2000: у docker-compose exec есть параметр -u в котором можно указать пользователя или его uid

    @GregIv: Попробовал, получил такую ошибки:
    unable to find user SOME_USER: no matching entries in passwd file

    @rustler2000: Или при создание контейнера надо делать пользователя с правильным uid/gid


    Итого, решение:
    1) Копируем строку с вашим пользователем из
    /etc/passwd
    2) Добавляем в нужный .docker файл такую инструкцию:
    RUN echo "СТРОКА ИЗ П1" >> /etc/passwd
    3) docker-compose -d --build
    4) Запускаем с параметром -uSOME_USER (или указываем конструкцию user: SOME_USER в docker-compose.yml, а лучше выносим имя пользователя в .env)
    Ответ написан
    Комментировать
  • Has - а как наоборот?

    @Kostik_1993
    Web Developer
    Господа помощники! Прежде чем ответить подумайте, а стоит ли. У автора 400 вопросов. Вы, а не он пишете его проект.

    PHPjedi на все твои вопросики в документации есть ответики, достаточно только не полениться и открыть.

    Метод has() ты же нашел где-то? Так почему бы там же чуть ниже не найти и противоположный?
    Ответ написан
  • Как профилировать php на 1с-Битрикс через XHProf?

    @Kontrael
    Профилировщик это уже скальпель, для поиска конкретного проблемного куска кода, натравливать его на весь хит - решение сомнительное, которое выльется в проблемы с которыми вы столкнулись.
    Локализуйте проблему и собирайте данные профилировщиком уже внутри компонента. Но по опыту, это действительно нужно процентах в 10 случаев.
    Начните со встроенного отладчика.
    5ec67305b1f79562550586.png
    Посмотрите число запросов с кешем и без, время выполнения. Там же увидите, какие компоненты много себе позволяют, и там уже, при необходимости, запускайте профилировщик. Хотя скорее всего, вы увидите проблему до его запуска.
    Ответ написан
    Комментировать
  • Можно ли использовать Doctrine для существующей базы?

    Big_Alex
    @Big_Alex
    молод и перспективен
    Если я ничего не напутал и Вас понял правильно, то можно..

    Алгоритм действий будет примерно такой:
    - создать сущности для таблиц из БД
    - установить и прописать их связи между собой
    - Проверить
    - Повторить )

    UPD:
    Я тут подумал..
    Если всё равно надо будет находить и устанавливать связи между собой, то как вариант можно "сгенерить БД из Доктрины" и залить данные из старой базы.
    Ответ написан
    2 комментария
  • Как правильно написать авторизацию/аутентификацию?

    Здесь еще нужно очень хорошо разделять понятия авторизация и аутенфикация.

    Аутенфикация - это определения пользователя, то есть, что это за пользователь. Обычно этот этап проходит сразу же после ввода логина пароля. Если логин верный, ты мы и сразу можем сказать: "Пользователь аутенфицырован". К примеру, если использовать HTTP Basic аутенфикацию, то в случае не верного логина/пароля будет ошибка 401.

    Авторизация - это проверка прав пользователя к определенному ресурсу. К примеру, может ли пользователь редактировать какой-то материал (статью, коммент), может ли он просматривать какой-то ресурс.

    Очень часто еще может "всплыть" понятие "Фаервол" - это механизм определения для поведения системы аутенфикации/авторизации. К примеру: В личном кабинете, необходимо чтобы пользователь был обязательно авторизован, но вот на сайте (доки, другие страницы), нет. В результате, мы можем создать два фаервола, определяющих это поведение для разных URL-ов.

    Два этих механизма могут работать как угодно, так как Вы захотите, главное, это скажим соблюдать некие правила:
    1. Ни в коем случае не аутенфицировать по UserID, иначе, любой сможет получить доступ. К примеру: Вы сохраняете в куки только UserID для аутенфикации, тогда, кто-то сможет подменить со своей стороны куку, и ввойти под другим пользователем.
    2. Не храните в куках логин/пароль. Так как есть множество вирусов, которые могут прочитать куки и отправить на другой сервере.
    3. Пароль в БД должен быть хеширован, и проверка должна быть именно по хешам, а не по реальным паролям. Иначе, если кто-то у Вас свиснит БД, то очень вероятно, что и сможет получить доступ к множествам другим аккам, так как множество людей используют один и тот же пароль.

    Лично для своих проектов, я всегда использую Symfony Security, так как в этом пакете уже все сделано место Вас. Главное это верно подключить и настроить, и вауля :)
    Ответ написан
    1 комментарий
  • Как правильно написать авторизацию/аутентификацию?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Есть два варианта хранения данных об авторизованном пользователе:
    1) В куки (так по умолчанию используется в асп.нет): необходимые данные (claims) шифруются machineKey и отдаются пользователю в http-only куках, таким образом при каждом запросе на сервер они присылаются, расшифровываются и далее можно проверить в необходимых местах.
    плюсы: полностью stateless, нет надобности обращаться к БД
    минусы: при необходимости "выбить" сессию со стороны сервера нужно поднимать более сложную логику и хранить флаги в промежуточном хранилище (проверять что если для такого-то пользователя требуется завершить, то такие действия, иначе другие);
    2) Ключ сессии: после успешной аутентификации авторизуем пользователя и claims храним на сервере в быстрой памяти или БД (key-value), где ключ - ключ сессии, значение - любые данные.
    плюсы: есть полный контроль состоянием авторизации (как и возможность завершить сессию со стороны сервера, так и сменить пользователю роль(или другие параметры) "на лету")
    минусы: организация доп. прослойки - кэша или хранение в БД (медленно), при перезапуске/падении сервиса сессии клиентам потребуется перелогиниться.

    1
    1.1 В куки писать или ключ сессии или шифрованные данные о пользователе, сессия - абстрактное понятие (это пара: ключ и данные), ключ должен быть защищенным, т.е. трудным к копированию (хотя бы зрительно трудно запомнить), уникальным (чтобы не возникло коллизий: двум разным пользователям выдался один и тот же ключ, т.е. это не должна быть хэш-функция от логина-пароля или IP или чего-то неуникального).
    1.2 В асп.нет существуют атрибуты авторизации (в которых можно расставлять проверки на требование таковой, роль, конкретный пользователь), в общем смысле логика такова: поступил запрос на сервер, далее нужно посмотреть к какому ресурсу идёт обращение (защищенному или свободному), если ресурс защищен, то проверить куки (ключ сессии или шифрованные данные), расшифровать/получить данные о сессии из кэша и предпринять решение: пускаем или не пускаем (отдаём 401/403 или отдаем 200/404/...).
    1.3 Завести на сервере (в кэше или БД) словарь , при алгоритме проверки сессии добавить условие проверки на наличие записи в словаре.
    1.4 С нескольких - словаря не нужно.

    2
    2.1 Даже если пользователь входит через ВК всё равно нужно отдавать свои ключи сессий/шифрованные данные, а вот внутри данных уже хранить access_token от вк-шной сессии, так очень маленькая вероятность, что токен ВК утечет, а если утек ключ сессии, то действия будут ограничены только функционалом сайта.
    2.2 После расшифровки куки или данных по ключу сессии делать доп запрос на сервер ВК с токеном, который сохранился при аутентификации (access_token), запрос простой, например получить имя пользователя, если ВК выдал что токен просрочен или ошибку, то сессию закрывать или куки с данными обнулять.
    Ответ написан
    3 комментария
  • Нужно ли гуглить если зашел в тупик в задаче?

    paran0id
    @paran0id
    Умный, но ленивый
    Слышал что очень многие относятся к такому негативно, и говорят что нужно напрягать свои мозги без привлечения "информации" со стороны.


    Под этим подразумевается, что полезнее читать документацию, чем how to от Васяна. Но гуглить не грешно, главное, понимать, как работает решение, которое вы нашли.
    Ответ написан
    Комментировать
  • Как вы справляетесь с тупняком в программировании?

    @oc_lamer
    Все очень просто. Займитесь чем-то кардинально другим и найдете решение вашей проблемы за считанные минуты.
    Ответ написан
    1 комментарий
  • Какую тему для диплома выбрать по веб?

    GavriKos
    @GavriKos
    Напишите генератор тем для дипломов. Исходя из специальности, с анализом работ конкретных вузов, статистикой и прочей мишурой.
    Ответ написан
    7 комментариев
  • Какой формат кода лучше использовать для работы с Git?

    SilenceOfWinter
    @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    git'y пофиг
    Ответ написан
    Комментировать
  • Как при помощи класса DOMDocument добавить атрибут со значением к тегу?

    Где вы его ожидаете увидеть?

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

    @loonny
    Laravel это же фреймворк, для его понимания достаточно документации на оф.сайте Документация Laravel. Но для начала вам нужно изучить PHP и изучить его тоже можно на оф.сайте Руководство по PHP .
    Не думаю что писать магазины с нуля это разумно, лучше использовать CMS, и кстате у них тоже есть документации на оф.сайтах.
    Все доступно бесплатно, нужно лишь проявить немного усилий что бы найти.
    Ответ написан
    Комментировать