• Какая разница между CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR в curl?

    glebovgin
    @glebovgin
    Full Stack Web Developer
    CURLOPT_COOKIEJAR - файл, куда пишутся куки после закрытия коннекта, например после curl_close()
    CURLOPT_COOKIEFILE - файл, откуда читаются куки.

    Так что используйте оба параметра, не ошибетесь.
    Но вообще документация - сильная штука.
    Ответ написан
    Комментировать
  • Для чего нужны Генераторы (yield) в php?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    php.net/manual/ru/language.generators.syntax.php
    yield - возврат из функции с сохранением текущего итерационного состояния этой функции.
    При запросе следующего значения в цикле итерационном цикле - снова вызов этой функции с использованием сохранённого состояния, т.е. продолжение обработки данных с места возврата внутри этой функции.

    Можно провести некую аналогию с "курсором" и местом обработки данных в позиции курсора.
    Ответ написан
    3 комментария
  • Как правильно учиться PHP / mySQL?

    Voffko
    @Voffko
    из книг перечисленных книг я бы выделил Котерова. оч хорошая книга, если вы начинающий. там довольно хорошо и просто описано то, что проиходит в сети и как это работает. вобщем дается хорошая база для дальнейшего развития.
    в список книг добавил бы «разработка web-приложений на php и mysql» Лауры Томсон и Люка Веллинга. эти люди принимали участие в разработке mysql. так что знают много :) и на протяжении всей книги создается веб магазин. так что все построено на примерах :)
    удачи вам в соискании.)
    Ответ написан
    1 комментарий
  • Почему у меня пусто в formData?

    Stalker_RED
    @Stalker_RED
    1. у полей формы нет атрибутов name
    2. на вход FormData надо подавать ссылку на форму а не объект jQuery.
    То есть data = new FormData($('#form-order')[0]) или
    data = new FormData(document.querySelector('#form-order'))


    3. Если уж пользуетесь jQuery, то можно вообще без FormData:
    $.ajax({
          url: '/mailer/send_letter.php',
          type: 'post',
          data: $('#form-order').serialize(),
          ...
    })
    Ответ написан
  • Бесплатный хостинг для проекта на nodejs + mongodb?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Сloud9

    + Бесплатно - один персональный проект, неограниченно - открытых

    + Домен свой можно прикрутить, а по-умолчанию на халяву - есть домен 3го уровня

    + своя IDE - можно рулить с планшета, не имея под рукой ничего кроме браузера, особая фишка - позволяет одновременную параллельную работу в несколько рыл

    + дружит с GitHub-ом, BitBucket-ом и Google Cloud Platform.

    + Виртуалки - Ubuntu c SSH (были, по крайней мере раньше) в который можно и не лезть - все рулится через веб-морду или код.

    UPD

    Всё, баста карапузики, кончилися танцы -- нет больше старого доброго c9. Теперь это Амазон со всеми прилагающимися. Однако, IDE осталась, кое-какие проверенные плюшки тоже остались. Появились Амазоновские заморочки и ограничение на бесплатное использование в 12 месяцев, помимо более жестких ограничений на ресурсы.

    Хорошей халявы (м-да, умею же сказать) тоже не осталось. Из надежных бюджетных решений могу порекомендовать облачный VPS для разработчиков от VScale (подразделение Selectel). Хороший и шустрый сервер с SSD, собственным ДНС и платой в месяц как 2 чашки кофе в придорожной забегаловке. 5 лет пользуюсь -- полёт нормальный.

    UPD 2021

    - netlify.com - 3 года кайфа
    -vercel.app- простота и мощнота
    - repl.it - есть ништяки про Питонов, Го и ещё куча всего. Крутота
    все умеют тащить в автомате с ГтиХаба, а Нетлифай ещё и с ГитЛаба и Битбакета: просто пушишь в master и, бам-бара-бам але хоп - вуаля! -- все в продакшене, всё на халяву, можно прикрутить свой домен у всех.
    и
    - конечно же -- VScale!!! -- полный контроль и -- 8 лет, полёт нормальный

    Welcome.
    Ответ написан
    2 комментария
  • Верстка (pt, px, em) что использовать?

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    Здесь написано, какие единицы измерения для чего используются
    Ответ написан
    Комментировать
  • Верстка (pt, px, em) что использовать?

    @Los_Pochtovyi
    Если на responsive нацелилились, рекомендую для шрифтов rem. Очень удобно.

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

    Пиксели в эпоху мобильных и планшетов лучше вообще забыть. Ну, за исключением тех случаев, где без них никак.
    Ответ написан
    Комментировать
  • Почему Emmet в PHPStorm не открывает тег?

    GomelHawk
    @GomelHawk
    PHP / Symfony developer
    File -> Settings -> Editor -> Live Templates -> "+" (add new live template) with params:
    Abbreviation: php
    Template text: <?php $END$ ?>
    Context: HTML
    Ответ написан
    Комментировать
  • Зачем нужен google tag manager?

    azarchick
    @azarchick
    Гугл Тег Менеджер, на мой взгляд, просто незаменимая вещь для тех, у кого на сайте много всяких кодов (конверсия, даблклик и мн. другие). В таком случае Тег менеджер заметно облегчает жизнь. Более того, если добавление каждого из таких кодов проходит через разработчиков, это ооооочень замедляет процесс. А вот через Тег Менеджет такой обычный код может добавить даже школьник.
    Но есть и посложнее задачи: я, например, настроила автоматическое отслеживание кликов по внешним и внутренним ссылкам с записью анкоров, а также получение статистики по скачиванию файлов с сайта. Это делается с помощью автоматических событий, где, в отличие от обычных событий в Аналитике, не нужно ставить на страницу специальный код прямо для каждого события.
    Я написала инструкцию о том, как настроить такие автоматические события в Тег Менеджере здесь (не сочтите за спам, я на этом не зарабатываю, просто пытаюсь помочь тем, кто интересуется такими настройками), а вот статья о том, как установить Тег менеджер и теги веб-аналитики.
    Ответ написан
    Комментировать
  • Подключение php файла вместо js как скрипт?

    <script language="php"> </script>- это устаревший способ написания тегов php. Вместо<?php ?> писать так можно было. В седьмой версии окончательно удалят https://wiki.php.net/rfc/remove_alternative_php_tags Работает или нет, зависит судя по всему от настроек интерпретатора (включены ли альтернативные теги или нет), лучше не использовать.
    Ответ написан
    1 комментарий
  • Почему появляется ошибка Uncaught Error: Class 'Twig_Loader_Filesystem' not found?

    В общем Twig что-то изменил в своей логике... Начал копипастить код из старого проекта в новый и тоже столкнулся с такой ошибкой.

    Оказалось вот как теперь нужно подключать:

    $loader = new \Twig\Loader\FilesystemLoader('...');
    $twig = new \Twig\Environment($loader);
    Ответ написан
    1 комментарий
  • В чем разница между "in house", "remote", "freelance"?

    RicoX
    @RicoX
    Ушел на http://ru.stackoverflow.com/
    In-house - работа в офисе
    remote - удаленная постоянная работа в рамках одного или нескольких заказчиков.
    freelance - шабашка, ну когда заказчиков много разных на разовые проекты или задачи.
    Если вам платят за ваше существование вне зависимости отобъема проделанной в месяц работы - это удаленка или remote, если за конкретные задачи и проекты - это фриланс.
    Ответ написан
    1 комментарий
  • В чем разница между "in house", "remote", "freelance"?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    In-house это не "работа у себя дома" а у работодателя, то есть в офисе. remote - удаленно но в рамках одного работадателя. freelance - на конкретный проект.
    Ответ написан
    1 комментарий
  • В чем отличие Angular и Angularjs?

    StivinKing
    @StivinKing
    Ссылка на habrahabr (ключевые различия)
    Изучать, естественно, Angular. Многие думают, что angular 2, 4 и уже вышла 5 версия - это разные фреймворки. Нет, есть только 2 разных - Angular и Angularjs. 2, 4, 5 - это просто мажорные версии Angular, в которых, по большей части, реализован ряд улучшений для производительности и введение нового интересного функционала. На личном опыте скажу, что скорость 2 мажорной версии от 5 отличается существенно
    Книгу видел, но сам лично не читал, поэтому рекомендовать не могу. Для базы в интернете много хороших уроков, в том числе видеоматериалов. Рекомендую конечно англоязычные уроки, но и среди русских тоже есть достойные, на мой взгляд. Из того, что сам в своё время давал своей команде - это уроки от CodeDojo (бесплатные) и ITVDN (платные)
    Ответ написан
    Комментировать
  • Есть ли нормальный терминал для Sublime Text 3?

    @Darklurker
    Верстальщик
    Terminus называется плагин
    Ответ написан
    Комментировать
  • Как сменить способ ввода с физической клавиатуры на Андроид 8?

    @Drovosek01
    Такая же проблема на Redmi Note 4X, MIUI 10. Подключаю клавиатуру через otg, раскладка на физической клавиатуре не меняется
    Ответ написан
    Комментировать
  • Зачем Backend если есть ReactJS?

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

    ReactJS - это библиотека для отрисовки интерфейса для пользователя. Использовать ее можно как на фронтенде (напрямую отрисовывая div/span/a/etc. в браузер), а можно на бекенде для "отрисовки" html в строку и передачу этой строки на фронтенд для последующей отрисовки в браузере.

    Чем отличается React от бекенда? Примерно тем же, чем сладкое от мягкого.
    Ответ написан
    Комментировать
  • Чем опасен force push?

    Lobotomist
    @Lobotomist
    Software Developer
    BD_ l3ftoverZ! ответил в принципе верно - можно затереть чужие изменения, но это не единственная опасность.

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

    История из жизни.

    Вот реальная ситуация, которая произошла у меня на работе. К сожалению, за давностью лет конкретные детали я помню смутно, но в целом все было примерно так. В какой-то момент появилась ошибка. Причем код, в котором она была был очень "говнокод", человек его написавший уже уволился и понять в каком месте этот говнокод написан неправильно, не понимая "логики" автора было очень сложно. С помощью git-bisect я нашел проблемный коммит и стал дальше раскручивать клубок. В итоге выяснилось, что было нарушено по крайней мере три важных правила работы с гитом (описанные во внутренней вики и обязательные к исполнению) и если бы хотя бы одно из них нарушено не было - все было бы ок.
    1. Я сделал пуш в мастер и оперативно осознав, что что-то там не так быстренько поправил и залил форсед пушем исправления. Это было важно сделать именно так. Я решил, что во-первых, маловероятно, что кто-то успел сделать пулл, а во-вторых, даже если он и сделал - когда у него возникнут конфликты он либо сам все поймет, либо обратится ко мне. Первое нарушение. Мне следовало уведомить всех разработчиков об этом и объяснить как нужно правильно действовать.
    2. Естественно, один разработчик успел сделать пулл и отребэйзил на старый мастер ветку этого уволившегося и стал доделывать таск. Когда спустя продолжительное время он стал ребэйзить эту ветку на мастер у него полезли конфликты. Он не понял из-за чего эти конфликты возникли. Но храбро все их решил. Етественно, не правльно, уже хотя-бы потому, что он вообще не должен был их решать. Нарушение второго правила - "решай конфликты только тогда, когда ты понимаешь почему они возникли". Обратись он ко мне - все было бы в порядке.
    3. Когда он стал пушить свои изменения он нарушил третье правило: "Всегда проверяй список коммитов, которые ты пушишь". Он не заметил, что кроме "своих" коммитов, он так же пушит чужие, старые версии коммитов мастера, которые он отребэйзил на новые. Он должен был это заметить и забить тревогу - что такое, откуда эти коммиты, я их не делал. Опять же, обратись он ко мне - я бы на месте бы разобрался в чем дело, и исправил ситуацию.

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


    В целом, получается так - если ты понимаешь, что обе проблемы - 1) перезатирание чужих изменений и 2) наличие у кого-то старых версий коммитов не актуальны - смело делай форсед пуш. Например:
    • Это ветка по задаче, в которой работаешь только ты и согласно workflow никто не должен без твоего ведома брать из нее какие-то коммиты.
    • Ты точно знаешь кто имеет доступ к ветке и уверен, что эти люди с ситуацией справятся корректно. Ты их предупредил и они знают что в таких ситуациях делать.
    Ответ написан
    Комментировать
  • Как загрузить процессор на 100% в linux?

    fredyk
    @fredyk
    ### CPU ###

    md5sum /dev/urandom - Single thread CPU test
    stress --cpu 4 --timeout 300s - Multi threadCPU test
    cat /dev/zero | bzip2 -c > /dev/null - CPU Stress Test

    ### HDD ###

    cat /dev/sda3 | pipebench -q > /dev/null - RAW Read Speed Test
    dd bs=16k count=102400 oflag=direct if=/dev/zero of=test_data - Write Test
    dd bs=16K count=102400 iflag=direct if=test_data of=/dev/null - Read Test
    Ответ написан
    Комментировать