• Как посчитать угол по 2-м координатам?

    alpha = arccos (deltaX / deltaY)
    PS а "высшая математика" в тэгах к вопросу - это маркетинг? :)

    UPD: ойблин, пардон... все учителя математики моей юности, простите меня :/

    конечно же alpha = atan ( deltaY / deltaX )
    ну а при deltaX=0, alpha = sign(deltaY) * pi/2;
    Ответ написан
    4 комментария
  • Как разбить строку на элементы в C#?

    newross
    @newross
    Product owner
    Если внимательно почитать MSDN Split, то окажется, что в метод передается массив символов. Символы выделяеются одинарными ковычками. Что мешает передать в метод массив символов?
    var num = str.Split(new [] {' ', ','});
    Ответ написан
    2 комментария
  • Как правильно внеднять зависимости в контроллер symfony3?

    @shaqster
    Symfony3 Guru
    Достаточно посмотреть реализацию класса Controller и все станет очевидно. Ссылка на экземпляр контейнера попадает в контроллер через метод setContainer, которым пользуется DI. Поэтому вы вполне оправданно получаете ошибку.

    Отвечая на ваш вопрос: не внедряйте зависимости в контроллер. Дергайте их в action по мере необходимости, а лучше - выкидывайте всю бизнес логику в менеджеры, репозитории, провайдеры, билдеры, etc и используйте action только для рендеринга ответа.
    Ответ написан
    Комментировать
  • Как правильно работать с объектами выборки doctrine в Symfony?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    дополню ответ Юрий

    Во первых, это на столько здоровый объект реляции images, что отдебажить его можно только с помощью функции dump.


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

    По поводу коллекций, в Doctrine есть такая штука как Collection. Вы должны понимать что в доктрине вы оперируете не табличками в базе, а объектами. Строите именно объектную модель вашей системы. В этом ключе можете почитать что такое "агрегат сущностей". В вашем случае у вас агрегат будет состоять из двух сущностей. Product и его Image. Например если вы захотите сделать добавление картинок, вы можете сделать так:

    /**
     * usage: $product->addImage($image);
     */
    public function addImage(Image $image)
    {
        $this->images->add($image);
    }


    А коллекция сама выполнит persist новой сущности. Таким образом количество репозиториев уменьшается до количества корней агрегатов сущностей. В вашем примере "корнем", то есть вершиной графа взаимоотношений объектов в контексте продуктов, является сам продукт. А потому репозиторий мы будем делать только для продуктов. Все остальное внутри оного разруливается либо при помощи коллекций.

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

    К примеру "новички" в доктрине любят персисть сущность даже для обновления. Они путают `persist` и `save`. Так вот, если вы загрузили сущность из базы через доктрину, то сущность уже попадает в unit of work. И делать persist уже не нужно, этот метод только для того чтобы доктрина узнала о чем-то новом. А так она и так знает про эту сущность. В итоге вы можете просто что-то поменять и вызвать flush. То есть репозиторий - это тупо хранилище. Хранилище умеет хранить. Изменять то, что оно хранит оно не может.

    Так же рекомендую на тему репозиториев почитать это:

    www.whitewashing.de/2013/03/04/doctrine_repositori...

    Ну и в целом.

    https://www.youtube.com/watch?v=rzGeNYC3oz0 - доклад о том как готовить доктрину от авторов оной.

    От себя лишь добавлю простые правила:

    - Не используйте напрямую доктриновские репозитории. Пишите свои, а в них уже юзайте доктриновские. Не стоит размазывать доктрину по всему проекту, потом это будет нереально поддерживать.
    - Не наследуйтесь от EntityRepository. Это внутренний механизм доктрины общего назначения. Используйте их в своих репозиториях со своим интерфейсом, повышая специфичность и ужесточая контроль за тем кто что юзает.
    - Старайтесь использовать entity manager только в своих репозиториях и каких то небольших сервисах. Не размазывайте все по всюду.

    что очень сильно срет память.


    Доктрина гарантирует вам что в памяти будет всегда только один инстанс сущности. То есть если у вас есть 10 объектов одного типа и имеющих один объект, это все будут ссылки на одну сущность. В вашем случае у вас просто циклическая ссылка между продуктами и изображениями. dump циклические ссылки не особо умеет.

    Это логичное ограничение, дабы не возникало ситуаций что вы обновили что-то в одном экземпляре сущности и что-то в другом, и в базу попадут только часть изменений. За подробностями - читайте документацию к доктрине в отношении UnitOrWork и Identity Map.
    Ответ написан
  • Как правильно работать с объектами выборки doctrine в Symfony?

    riky
    @riky
    Laravel
    1) ссылки с картинки на продукт не срут память, ибо объект продукта один и все картинки ссылаются на один объект. лишней памяти не тратится.

    2) по поводу сложности. да оно кажется избыточным, но нужно чтобы было удобно потом работать с ними, добавлять новые связи, ленивая загрузка и тд.
    просто сущности вы не получите, но если нужен только вывод то можно вместо getRepository / find сделать например createQuery / fetchArray. но это будет массив без вложенных сущностей, то есть картинок у продукта автоматически не будет.

    3) вместо $em->getRepository('AppBundle:Product')->findById(1);
    лучше $em->getRepository('AppBundle:Product')->find(1);
    или даже $em->find('AppBundle:Product', 1);
    Ответ написан
    3 комментария
  • Как в Xdebug пошагово отладить цикл?

    65536
    @65536
    $testVar = 404;
    while ($testVar < 410) {
        $testVar++;
    }


    похоже шторм намекает вам об использовании PSR)
    Ответ написан
    1 комментарий
  • Правильно ли делать циклы рекурсиями?

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


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

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Оригинал здесь
    1. Должны узнать о существовании: группы в соц. сетях, картинки в Instagram, ролики на youtube, PR на форумах, Success story в блогах, рассылка почты блоггерам данной тематики с просьбой размещения ссылки на Ваш ресурс (разумеется, платно).
    2. Должны понять за 1-2 секунды просмотра сайта: "Сайт современный и красивый"
    3. Должны понять за 5 секунд просмотра сайта: "О чём сайт?"
    4. Должны понять за 15 секунд просмотра сайта: "Какая польза от него для посетителя" и главное: "Отличия от других", "Фишка", "Изюминка", "Ноу-хау" и т.д.
    5. Должны понять за 25-30 секунд просмотра сайта: "Как работает и что необходимо, чтобы пользоваться?"
    6. Не уложились в 30-и секундную презентацию или не выдержали любой из критериев (или необходимых минимальных требований) для поддержания интереса посетителя - ПОТЕРЯЛИ ПОСЕТИТЕЛЯ НАВСЕГДА!
    7. Если посетитель задержался более, чем на минуту и, в этот момент, он двигал "мышкой" (или скролил страницу) - это явно говорит о его заинтересованности: как только он уведёт мышь со страницы (для закрытия вкладки) сразу выведите DIV-модалку (слой, а не окно!) с крупным текстом, чтобы он добавил Ваш сайт в избранное: "Понравилось у нас? Жми Ctrl+D и возвращайся!" (или подобное) и кнопку: "Задать вопрос", ведущую на форму с 4-мя элементами (ввод "E-mail" - скройте): основное поле ввода текста сообщения, чекбокс: "Прошу ответить мне" (если отмечен, то поле "E-mail" видно под ним), скрытое поле "E-Mail" и кнопка "Отправить".
    8. Лишнее - не надо спрашивать насильно (это очень сильно отпугивает): ФИО, Телефон, почту и т.д.

    (кто дополнит - Welcome! и заранее, Спасибо!)
    Ответ написан
  • Какая математика нужна програмисту?

    bingo347
    @bingo347
    Crazy on performance...
    Что может пригодится практически в любом направлении: алгебра, мат. анализ, дискретная математика, численые методы
    В работе с графикой понадобится знание геометрии
    Но самый главный навык - алгоритмическое решение, т.е. способность выразить задачу в виде алгоритма
    Ответ написан
    1 комментарий
  • Как подготовиться к закону Яровой?

    @nirvimel
    1. Купите недорогой VPS (от $15/год, можно даже дешевле) и поднимите на нем личный VPN. В Сети есть куча подробных руководств как это делается. Только не надо говорить, что у вас нет на это денег, интернетом вы же не бесплатно пользуетесь. Просто примите это как небольшую дополнительную плату за интернет за ваш спокойный сон.
    2. Работая через VPN (обязательно), заведите себе новый почтовый ящик на зарубежном сервере у компании, у которой нет никакого бизнеса и любых коммерческих интересов в РФ. Пусть это будет не мажорный гигант индустрии, а скромная компания, малоизвестная в РФ. Главное - это наличие SSL в веб-интерфейсе и в IMAP, в остальном почта есть почта, она просто работает, и этого достаточно.
    3. Работая через VPN, заведите себе новый аккаунт в vk facebook и/или google (если вы неспособны полностью отказаться от использования социалок). При регистрации указывайте место проживания подальше от РФ. Учитывайте, что все гиганты индустрии, имеющие большой бизнес в РФ, полностью сотрудничает с ГБ, но аккаунты нерезидентов, зарегистрированные и посещаемые с зарубежных IP, они не станут сливать по умолчанию (но по первому запросу сольют мгновенно). Так что забудьте про любые приваты в социалках, ведите все общение так, как будто все это читает весь ваш квартал и все те, кому бы вам меньше всего хотелось это показывать. Для приватного общения пользуйтесь только безопасной почтой (пункт 2) и защищенными чатами, на telegram jabber на зарубежных серверах. Все это касается только тех, кто не может окончательно завязать с пагубной зависимостью от соц.сетей. Очевидно, наиболее безопасным (и полезным для здоровья) вариантом является полный отказ от социалок.
    4. Не вбрасывайте в старые ящики и соц.аккаунты адреса и ссылки на новые чистые, не указывайте новые адреса в любых исходящих и старайтесь, чтобы они не попали во входящие. Помните, что в любой социалке и любом веб-интерфейсе почты (сотрудничающей) кнопка "удалить" скрывает удаляемое только от вас самих и не более того.
    5. (Самый неприятный пункт) Забудьте про vk, mail.ru и российские gmail и facebook. - КАК? - Так! Я понимаю, что это не легко, что они давно стали частью вашей жизни. Но это придется сделать! Поговорите сами с собой, спросите себя что для вас важнее: ваша личная безопасность, спокойствие и крепкий сон или старые привычки, которыми вы опутаны, и которые не хотят отпускать вас? Учтите, что продолжая пользоваться местными социалками (и сотрудничающими иностранными), вы продолжаете каждый день генерировать на себя тонны компромата, который может обернуться против вас в самый неожиданный момент самым неприятным образом. Проявляя активность в своих старых аккаунтах, вы не даете им "протухнуть" и не даете даже формального повода добрым компаниям снести их через пол года, после истечения отведенного законом срока хранения (как известно, vk не ограничивается минимальным сроком хранения, а хранит все метаданные и текст практически вечно за исключением видео/аудио).
    Ответ написан
    26 комментариев
  • Помощь с началом обучения Yii 2?

    vakorovin
    @vakorovin
    Разработчик
    К словам Максима добавлю вот еще что, берите тестовые задания в компаниях, которые набирают yii-разработчиков. Это конечно же не учебник, но задания могут отражать потребности компании. Для себя самого очень полезно понимать, чего ты еще не можешь, а где преуспел.
    Ответ написан
    Комментировать
  • Что мой провайдер знает обо мне?

    @nirvimel
    Когда я захожу на определенный сайт, провайдер видит URL?

    Да.

    А если я захожу на https?

    Известен IP сервера и имя домена. Больше ничего.

    Откуда провайдер узнает, что я скачиваю определенный фильм/программу через torrent?

    Торрент-клиент общается с трекером по HTTP. Все видно насквозь: конкретные торренты + вся статистика (когда начато скачивание, когда закончено, когда пошла раздача, сколько роздано). Возможно подключение к трекеру и по HTTPS, но rutracker.org такой возможности не дает (мне тоже интересно почему).

    Все пакеты которые я получаю и раздаю значит провайдер скачивает себе, чтобы узнать что это за фильм/программа?

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

    Или он отслеживает факт скачивания .torrent файла, а затем делает вывод по идущим пакетам, что это скачивается?

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

    Когда я пользуюсь VPN, что видит провайдер?

    Видит шифрованный траффик на конкретный IP. По IP можно узнать, что этот диапазон продается под VPSы. Сам факт шифрованного трафика вешает абонента в списки тех, "кому есть что скрывать", а значит подозреваемых при любом розыске.

    Что я зашел на определенный IP и с него идут зашифрованные потоки?

    Дальнейшее направление трафика от VPN-сервера отследить невозможно (по крайней мере, на оборудовании провайдера в автоматическом режиме). Но при целенаправленной слежке за абонентом в принципе возможно по временным меткам сопоставить трафик абонента с трафиком любого сервера.

    OpenVPN будет работать через VPN IP и в браузере и при обновлении Windows, драйверов, ...?

    В зависимости от настройки. Но в общем случае, да, так.

    Читал, что в Windows есть такая особенность, что если провайдер как-то урезает пакет, то VPN отключается и сайту показывается мой реальный IP?

    Это не связанно с провайдером. Это особенность Windows. Когда VPN отваливается, весь трафик вылетает наружу в открытом виде. Опять же зависит от настроек. Но это еще одна цена "удобства" при использовании Windows.

    При этом провайдер видит на каком я сайте, что скачиваю?

    VPN отвалился - хацкер спалился.

    Таких фишек много?

    Смотря о чем речь. В сфере сетевой безопасности и анонимности различных нюансов вообще много.

    Как от них защитится?

    Учить мат.часть. Разбираться в сетевых протоколах и в устройстве ОС.

    Если пользуюсь каким-то расширением типа ZenMate, dotvpn, провайдер аналогично как и с VPN видит что что-то отправляется и приходит на определенный VPN IP?

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

    При использовании Tor, кто-то пользуется моим IP, пока я пользуюсь чужим?

    Нет. Если у вас не сконфигурирован Exit Node.

    Что при этом видит провайдер, что я получаю потоки данных с определенных IP и каждый раз разный IP?

    У них есть система точного обнаружения использования Tor. Это факт остается в логах с теми же последствиями, что и для VPN.

    Провайдер видит URL?

    Через Tor и VPN - нет.

    Каким образом можно полностью управлять сетью на ПК, видеть что, куда и когда отправляется или приходит на ПК (Windows, Linux)?

    Видеть все: https://www.google.com/search?q=Wireshark
    Блокировать все лишнее: https://www.google.com/search?q=Comodo+Firewall
    Ответ написан
    22 комментария
  • Как создать простой шаблон в Visual Studio без Namespace?

    @dmitryKovalskiy
    программист средней руки
    Что вы понимаете под "Класс без namespace"? Технически это невозможно. Да и зачем вам это я понять не могу.
    Ответ написан
    Комментировать
  • Лучшие практики по frontend?

    @teslor
    Я бы не рекомендовал Флэнагана начинающим, это скорее уже чтобы углубить знания.
    Из русскоязычных в качестве базы можете использовать только 1 ресурс - learn.javascript.ru.
    По CSS почитайте про способы организации CSS-кода (MCSS, БЭМ, OOCSS и т.д.), изучите PostCSS, статей по ним много и вы их легко найдете.
    Ответ написан
    11 комментариев
  • Где большие чаты рускоговорящих web-разработчиков?

    toxicmt
    @toxicmt
    CTO at hexlet.io
    В чате хекслета slack-ru.hexlet.io около двух тысяч разработчиков
    Ответ написан
    Комментировать
  • Годные базовые курсы по HTML и верстки для новичка?

    @BLVST
    Frontend. Открыт к предложениям.
    htmlacademy.ru вполне себе годные
    Ответ написан
    Комментировать
  • Писать ли уроки по программированию?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я буду обучать людей не языку программирования как самоцелью, а самой идее программирования и из чего оно строится на примере языка.


    Все нормальные книги по алгоритмизации для этих целей вводят понятие "всевдоязык". И да, это практикуют уже не один десяток лет. Но кто сейчас читает эти книги?

    но не входящие в обычный цикл темы

    Что значит "не входящие"? В ВУЗах это все как бы дают еще на первых курсах. Опять же на усвоение этого материала нужно порядком времени.

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

    Потому то когда вы читаете учебник или книгу полезно делать эти самые конспекты, строить майд мэпы и т.д. Помимо мыслей там обычно раскрываются предпосылки и т.д. Изучение по "выжимкам" станет заучиванием без понимания сути вещей.

    Особенно это касается первых 100 страниц, которые можно вообще ужать в десять.

    Книги бывают разные. Иногда выкинув эти первые 100 страниц дальше читать в принципе бесполезно так как вы не понимаете предпосылок.

    он дает отсылку, где и когда это будет изучено

    Так делают все адекватные авторы

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

    Картинки это хорошо конечно, но опять же чем ваш подход отличается от остальных? У нормальных авторов и так есть понятные схемки, картинки, метафоры и прочие вещи упрощающие понимание.

    Поскольку данные уроки действительно долго и сложно делать, купили бы вы их?

    Все что вы описали я изучил в ВУЗе и из книг. Более того любой другой так же может это сделать.
    Ответ написан
    3 комментария