• Почему при сортиртировке именованная функция быстрее чем анонимная?

    empr
    @empr
    Дело в том, что вы в каждой из 100 000 итераций объявляете эту функцию. Если вы присвоите анонимную функцию переменной за пределами цикла (да, при этом функция по-прежнему будет считаться анонимной), то скорость сравняется.

    $cmp = function ($a, $b) {
        if ($a == $b) {
            return 0;
        }
        return ($a < $b) ? -1 : 1;
    };
    
    for ($i = 0; $i < $count; $i++) {
        usort($arr, $cmp);
    }

    Time: 0.074096918106079
    Time: 0.074237108230591
    Ответ написан
    8 комментариев
  • Почему при сортиртировке именованная функция быстрее чем анонимная?

    neuotq
    @neuotq
    Прокрастинация
    Потому что при каждой итерации цикла анонимная функция создается заново, те это каждый раз новый независимый объект Closure.
    Ответ написан
    5 комментариев
  • Как agile выглядит на практике?

    @Agranatmark
    Agile, очень похож на коммунизм. Имхо, обе идеи крайне утопичны, не учитывают эволюционную психологию, этологию и кучу других аспектов. Управление разработкой ПО включает в себя дикое количество переменных, которые не реально учесть. А заказчики зачастую не понимают во что ввязываются. Будем наблюдатьс куда же это все приведет.
    Ответ написан
    Комментировать
  • Как быстро создавать типовые сайты на Laravel?

    @Kostik_1993
    Web Developer
    Можно же это все в виде composer пакетов сделать и прописать в composer.json все что нужно
    Ответ написан
    5 комментариев
  • Какие курсы обучения программированию на мобильные платформы (iOS/Android) с нуля выбрать?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Перевод стэнфордских курсов тут.
    Из очень неплохих зарубежных (не переведенных) курсов на платной основе есть nanodegree ios от udacity.

    А вообще, очень наивно идти в программирование (особенно в мобильное) с отсутствием какого либо английского.
    Ответ написан
    2 комментария
  • Куда стремиться PHP программисту?

    AntonShevchuk
    @AntonShevchuk
    Web-разработчик
    Тут больше философский вопрос, я его поднимал на конференции ThinkPHP и даже оформил в пост на своём блоге - Куда идёт сеньор, почитай, думаю тебе будет интересно (сорьки за самопиар, но копипастить не комильфо)
    Ответ написан
    Комментировать
  • Куда стремиться PHP программисту?

    @developer007
    точно 5 лет отработали?

    будто прошли курс "программист за 21 день"

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

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

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

    @FoxInSox
    то есть работать они будут в свободное время

    Вы в параллельной вселенной, вернитесь на землю. Тогда вам сразу все станет понятно и ясно: где и как искать людей.
    Ответ написан
    Комментировать
  • Как классифицировать текст с помощью нейронной сети?

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

    А какими примерами обучать нейросеть? Ведь не голым текстом... Типа, говоришь нейросети: "глянь, тут человека упомянули". Так что-ли? Для компьютера текст - это лишь последовательность байтов, поэтому он не может понять что для нас-людей представляет интерес. Компьютеру нужно всё разжевать и объяснить на языке цифер.
    Ведь как носители языка понимают, что в тексте речь о людях? Есть набор запомненных слов (словарь), которые человек прочтя или услышав, сравнивает со своим словарным запасом и тогда решает, к какой категории относится слово в данном контексте.

    Чтобы, проанализировав текст, понять, что "ищут ли какого то человека, мастера", необходимо вычленить некоторые ключевые слова, взятые из словаря: "ищу", "помогите", "подскажите", "посоветуйте", "требуется" и т.д., в сочетании с упоминанием людей (синонимы) и профессий (словарь профессий).
    Нейронная сеть на этом этапе не нужна. Она поможет в классификации при работе с цифрами, фактами (булева логика). Так что перед анализом текста нужно извлечь факты и связи из текста и затем скармливать ими классификатор. Помимо нейронных сетей есть другие виды классификаторов, более простых и лёгких в использовании, такие как байесовский классификатор. Нейросети могут быть как с обучением, так и без.

    В качестве вводной части имеет смысл начать с лекции Яндекс - Малый ШАД - Лингвистика в поиске.pdf
    По практической части: Что такое Томита-парсер, как Яндекс с его помощью ...

    Возможно, задача решается проще и без нейросетей.
    Ответ написан
    Комментировать
  • Немного вопросов по DoctrineORM и Symfony?

    artem90
    @artem90
    TeamLead, Developer
    3. Можно использовать reference
    Тут есть пример stackoverflow.com/a/26257234
    Ответ написан
    1 комментарий
  • Немного вопросов по DoctrineORM и Symfony?

    riky
    @riky
    Laravel
    1) доктрина для всех ваших сущностей создает прокси объекты, и в дальнейшем вы будете из базы получать их. в прокси объектах для геттеров и сеттеров она делает методы обертки.
    + с call очень не удобно работать, тк нет автодополнения в среде разработки, только изза этого я бы кэлл не стал использовать.

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

    3) смиритесь. оверхэд есть конечно, сам возмущался в начале, но ООП требует жертв.

    4) да, просто добавляете в конструктор, никаких проблем нет, из плюсов то что это поле сразу же доступно, а также мега бонус для написания тестов, когда нужно создавать объекты с указанными датами.
    Ответ написан
    3 комментария
  • Какой учебник по SQL почитать?

    Melkij
    @Melkij
    PostgreSQL DBA
    Must read по mysql: High Performance MySQL Optimization, Backups, and Replication, Baron Schwartz

    Для теоретических знаний - относительно недавно в реляционных базах принципиально ничего не менялось, как и десятилетие назад. И два десятилетия и может даже три. Фундаментальная теория РСУБД и транзакционных систем - да, из прошлого тысячелетия. За новизной в теории гнаться бессмысленно.
    Другое дело, если вы хотите особенности какой-то определённой СУБД. У каждой ворох своих особенностей, бывают и нарушения стандартов и что-нибудь меняется с каждым релизом. Лучший друг - мануал от корки до корки, книги поздновато выходят. Можно много полезного вычитать.
    Ответ написан
    1 комментарий
  • Как заставить заказчика выплатить деньги?

    @SergeyZelensky-Rostov
    нанять, дядек здоровых, которые паяльником, утюгом, и молотком вытащат необходимую сумму, заезженный вопрос, размещайте работу у себя на сервере если если нет нюансов, что не в продакшене все делаете), если частями , то предоплата процентов 30-40% по каждой части выполненной работы.
    UPD:
    Как вариант написание отзывов, не только на фрилансе, а вообще, о том что человек/компания - мошенник, если дорожат репутацией думаю заплатят, был опыт таким образом денежку отдали нам, но не факт что ваш заказчик, так сделает
    Ответ написан
    Комментировать
  • Порекомендуйте сервис конспектирования?

    alsopub
    @alsopub
    Как вариант предложу OneNote - есть и приложение и веб.
    Записные книжки, вкладки, группы вкладок, форматирование, картинки, ссылки и тд.
    Есть сохранение в PDF.
    Ответ написан
    1 комментарий
  • Почему когда я перезагружаю страницу шрифт загружается заново, а не берется из кеша?

    verstka
    @verstka
    verstka.pro
    Видимо, потому что заголовок Expires устанавливается серверами Гугла равным дате запроса (то есть время хранения кэша истекает сразу же после загрузки шрифта).

    Firebug%2B-%2B2016-04-11%2B10-54-19.png?
    Ответ написан
    4 комментария
  • Как разместиться правильно на github?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1. вместо /v1.0/ используйте теги гита
    2. test | tests | ... - обычно это каталог для авто тестов
    3. build | release | ... - это каталоги для собранных (релизных) файлов, тот же jquery.min.js например
    4. external | vendor | ... - каталоги с внешними зависимостями текущего проекта
    5. src | lib | ... - сам код проекта
    6. bin - каталог с исполняемыми файлами для проекта
    7. var | tmp | ... - каталог для временных файлов
    8. Makefile - настройка для консольной утилиты make
    9. bower.json - зависимости bower
    10. package.json - зависимости npm
    ...

    Видите ли, сейчас одно-файловые скрипты особо никто не пишет (не берем в расчет тривиальные на полторы строки).
    Ответ написан
    Комментировать
  • Как часто используются дескрипторы, декораторы и bind, call, apply?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Обо всем по порядку

    Дескрипторы - так понимаю речь идет о дескрипторах свойств объекта. Вещь крайне полезная, позволяющая задать поведение свойству, сделав его не перечисляемым или, например, только для чтения, а так же можно задать функции getter/setter, которые будут вызываться при чтении/записи свойства. Используется довольно часто.

    Декораторы функций. Позволяют избежать дублирования кода. Допустим, подключаете Вы некую библиотеку, в которой есть некоторая функция, Вам необходимая. Пусть она делает некое действие А, но Вам регулярно нужна последовательность действий А и Б. Тогда Вы пишите над этой функцией обертку, выполняющий эту последовательность, и уже вместо библиотечной функции + действие Б используете везде свою обертку. А вот если у Вас таких оберток с действием Б довольно много, то уже нужен декоратор, который позволит создавать такие обертки для любой функции. Используется как правило в крупных проектах, так как снижает вероятность ошибок.

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

    call и apply позволяют вызвать функцию с нужным контекстом, разница в том что apply принимает 2 аргумента - контекст и массиво-подобный объект содержащий аргументы, а call принимает произвольное число аргументов: 1й - контекст, последующие передаются как аргументы функции. Используется постоянно.

    Карринг. Хоть и используется не так часто, но бывает весьма полезным инструментом. По сути цепочки промисов построены на принципах карринга, только не функций, а объектов.

    Ну и напоследок, конструкция var self = this; позволяющая сохранить контекст в замыкании уже потихоньку уходит в прошлое, благодаря стрелочным функциям из es2015
    Ответ написан
    1 комментарий
  • На что в первую очередь обращает клиент внимание на upwork?

    opium
    @opium
    Просто люблю качественно работать
    На его фидбек
    Ответ написан
    Комментировать