• PHP foreach: почему валится с ошибкой?

    Stalker_RED
    @Stalker_RED
    Вот интересно, на что вы рассчитываете, когда задаете вопрос об ошибке, но саму ошибку не показываете. Там обычно пишется текст, который, можно и нужно(!) прочесть.

    И у конструкции foreach нет возвращаемого значения. Запись типа $my_var = foreach ... ошибочна уже сама по себе.
    Ответ написан
    Комментировать
  • Нет навыков в программировании, можно ли сразу начать изучать swift?

    Swift - это отличный первый язык программирования. "База" не нужна, если вы хотите писать простенькие графические приложения. Но прежде, чем делать что-то полезное, убедитесь, что вы знаете сам Swift. Скачайте XCode. Его часть Swift Playgrounds - анимированные учебники-задания от Apple. Советую Learn to Code 1, 2, 3. Если где-то застопорились, всегда можно нагуглить гайды/подсказки/советы. Единственное, без чего нельзя начать - английский язык.
    Ответ написан
    Комментировать
  • Как сделать уникальный текст для 5000 товаров?

    4utka_pyan
    @4utka_pyan
    Никак не сделать, незачем писать уникальный текст об одинаковых товарах и поисковики это знают. Скрипт можно написать но толку? Вы хотите что бы у вас на сайте был текст "Это красивый и уникальный винтик выполненный из высококачественной стали размером 25 миллиметров"? Это сейчас скорее отпугнёт людей.
    Ответ написан
    1 комментарий
  • Как увеличить скорость поиска в sphinx?

    @Fortop
    Tech/Team lead
    • Увеличиваем память до 256, а лучше еще больше.
    • Разносим индексы на разные машины ( у Sphinx есть возможность подключать агентов)
    • Даже в рамках одной машины настраиваем количество агентов поиска равное количеству потоков которые может выполнять сервер (например 4хядерный процессор с HyperThreading = 8 потоков
    • Уточняем срок обновления индекса. Кешируем результаты поиска на отдельном сервере в мемкеш/файлы.


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

    sim3x
    @sim3x
    Нарисовать
    Повесить на стенку
    Гордиться

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

    Exploding
    @Exploding
    wtf?
    Для этого используйте конструкцию MATCH AGAINST. В мануалах там много про это есть.
    Самые главные преимущества перед LIKE:
    - поиск происходит не просто по тексту как с лайком, а по индексированным данным, что намного быстрее!
    - опять таки поскольку данные индексированы, поиск умеет определять коэффициент релевантности(!), не плохо как для голого мускула, правда?)) И результат соответственно можно отсортировать по релевантности, что очень удобно по сравнению с лайком...
    Нюансы кратко:
    - для полей по которым будет осуществляться поиск должны быть определены полнотекстовые индексы
    - такой поиск не может искать вхождения в середине слова (не фразы, а именно слова!!!). Да в принципе это очень редко встречается на практике.
    Но зато поиск будет работать гораздо быстрее чем с LIKE!
    Чтобы искать например фразу "дохлые мыши не едят зерно" по словам, надо сделать такое:
    - фразу загоняем в массив по пробелу: $request = explode(" ", $req_array);
    - из массива удаляем заранее определенные части речи типа союзов, местоимений и т.д.
    хотя и не обязательно т.к. MATCH AGAINST игнорит слова 3 и менее символов, но подсознание подлое)), а и еще ж знаки препинания убрать, мало ли...
    И потом это все дело опять в строку $to_query = implode(" ", $request);
    И в запрос:
    select * from `table` WHERE MATCH (`myfield1`, `myfield2`) AGAINST ('$to_query' IN BOOLEAN MODE)

    И еще можно сортировку по релевантности состряпать изменив немного запрос:
    select *, MATCH (`myfield1`, `myfield2`) AGAINST ('$to_query' IN BOOLEAN MODE) as `score` from `table` WHERE MATCH (`myfield1`, `myfield2`) AGAINST ('$to_query' IN BOOLEAN MODE) order by `score` desc

    В итоге мы сможем найти фразу наподобие: "зерновые культуры и мыши - друзья, но если мыши дохлые" по трем словам.
    Заметьте, что ставить "%srch_str%" или "*srch_str*" не нужно!!! СУБД понимает все.
    Вот как бы такой он поиск. Но еще я прикручивал phpmorphy для того чтобы вытягивать словоформы для каждого слова, тогда можно будет найти фразу типа: "зерна постоянно смеются над дохлыми мышами"
    Вроде бы все:)
    А, нет, не все. Еще можно помимо LIKE использовать RLIKE.
    Для этого наш последний массив слов пихаем в строку, но только вот так:
    $to_query = implode("|", $request);
    И в запрос: select * from `table` WHERE `myfield1` RLIKE '$request' or `myfield2` RLIKE '$request'
    Как бы те же яйца, что и с LIKE но немного удобнее формировать сам запрос.
    Ответ написан
    Комментировать
  • Материальная ответственность/штраф за просрочку дедлайна?

    BBmike
    @BBmike
    1. Правильно все понял
    2. Можешь не отдавать деньги
    3. Прокуратура / трудинспекция

    И скажи этому дебилу, что проект просрочен не потому, что ты медленно кодил, а он хреново управлял.
    Ответ написан
    6 комментариев
  • Что делать, если не запускается апач?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    apt-get purge apache2 && apt-get install nginx -y
    Ответ написан
    1 комментарий
  • Какой программой воспользоваться что-бы найти момент изменения кадра в видео файле на 48 часов?

    Moskus
    @Moskus
    Запустить VLC из командной строки, скормив ему нужный файл и добавив опции --video-filter=motiondetect для включения фильтра детектора движения, по вкусу - --rate= для скорости воспроизведения, ну и -vv >logfile.txt - для вывода сообщений в текстовый лог, который потом предстоит изучить.
    Ответ написан
    5 комментариев
  • Обучение в GeekBrains, перспективы?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Я не имею в виду 2-4 недельные программы, я про 6-12 месяцев, где они обещают научить всему и сделать портфолио

    (имхо) За 6 месяцев любой целеустремленный человек и без них научится многому и сам сделает себе портфолио, не говоря уже о 12. Говорю по себе - год назад я что-то писал на Си и немного администрировал линуксы, сильно заинтересовался фронтендом, начал гуглить, отвечать на вопросы на тостере, много практиковался, сейчас уже делаю очень прикольные вещи, фрилансю. А не целеустремленный и с курсами не сможет ничему научиться, поскольку слушать мало, нужно практиковаться. Если вы будете прикладывать усилия к своему самообучению, то курсы - это в лучшем случае знакомства (что тоже полезно, конечно, но учиться только ради знакомств несколько странно).
    Ответ написан
    Комментировать
  • Обучение в GeekBrains, перспективы?

    sim3x
    @sim3x
    С дипломом, но без репозитория, вы никому не нужны даже больше

    Если у вы думаете, что заплатив кому-то получите работу мечты (приличную работу), то вы ошибаетесь
    Ответ написан
    Комментировать
  • Куда пойти после вуза?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Работать. Одного предложения хватит, но я всё таки продолжу. А зачем магистратура? От армии косить? Я бы всё таки посоветовал устроиться на фуллтайм и работать в команде, а ВУЗ может мешать этому, отнимая время. И почему вы вообще хотите, чтобы кто-то решал за вас? Нравится C++, C# и цифровая обработка сигналов? Ну так ищите вакансии в этом направлении и работайте. Не нравится веб? Не ищите вакансии и не работайте в вебе. Всё просто.
    Ответ написан
    Комментировать
  • Как решить проблему с концентрацией?

    opium
    @opium
    Просто люблю качественно работать
    откажитесь от интернета
    купите кнопочный телефон за 300 рублей
    Ответ написан
    17 комментариев
  • Del~~~~~~~~~~~~~~?

    x67
    @x67
    Вообще, реально ли в Москве, например, найти работу с моими компетенциями?

    Если ты не можешь ответить на этот вопрос, то нам откуда знать?
    Холодная провинциальная смерть в объятьях Битрикса?

    Да.

    1. Найди вакансии, отправь резюме, пройди онлайн-собеседование.
    2. Оцени результаты, сделай поправку на скилл.
    3. Возьми отпуск и езжай в Москву и проходи уже очные собеседования. Из этого отпуска ты можешь не вернуться. А можешь и вернуться. В любом случае, что-то произойдет.
    Ответ написан
    1 комментарий
  • Задача линейного программирования. Как добавить ограничение в модель?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Решением системы C·X = B является вектор X = C-1·B.
    В вашем случае B = 0, значит при ΔC ≠ 0 получаем X = 0 (правило Крамера), а при ΔC = 0 система имеет бесконечное множество решений и надо сначала преобразовать её методом Гаусса, выделив зависимые переменные.
    Покажу на примере:
    2·x + 3·y - z = 0
    4·x + 6·y -2·z = 0
    3·x - y + 2·z = 0

    Определитель равен нулю. Приводим методом Гаусса.
    x + 3/2·y - 1/2·z = 0
    0 = 0
    - 11/2·y + 7/2·z = 0

    Упрощаем
    y = 7/11·z
    x = -5/11·z

    Преобразуем ваши условия
    x + y + z = -5/11·z + 7/11·z + z  = 13/11·z <= 1
    x + y + z = 13/11·z -> max

    Очевидно, что максимум будет при z = 11/13. При этом x = -5/13, y = 7/13.
    Ответ написан
    Комментировать
  • Какой фреймворк выбрать для обучения?

    @Fortop
    Tech/Team lead
    Берите микрофреймворки Slim, Zend Expressive

    У вашего "быстро выучить" есть большой подвох, что вы и останетесь на том что выучили.

    Потому что такие фреймворки как laravel, yii провоцируют писать не очень хороший код.
    Ответ написан
    1 комментарий
  • Тупиковое и медленное развитие, лекарство?

    @vshvydky
    Волшебной таблетки нет, не ищи для себя оправданий.
    Ответ написан
    Комментировать
  • Тупиковое и медленное развитие, лекарство?

    Konstantin18ko
    @Konstantin18ko
    Стоматолог
    Хочешь быстро выкачивать в продакшен? Вруби режим Vanille. Пиши, параллельно свой проект. Зацепись за один язык как основной и дальше учи всё в нем вдоль и поперёк. Затем, как всё выучишь, хватай самый сложный фраемворк и от сложного к простому начинаешь разбирать. Это мой подход.
    Для наглядной статистики: я врач, у меня 8 часовой рабочий день. С сентября 2016 начал изучать PHP и JavaScript. С 1 января по 9 января 2017 пишу програму которая помогала мне писать истории больных. Сейчас программа пользуется популярностью и ей пользуется вся ординаторская. Сейчас проект переписывается на Symfony 3.
    Что мне понадобилось: время после работы, интернет.
    Ответ написан
    22 комментария
  • Как устроиться работать в open source?

    p00h
    @p00h
    Фехтовальщик-стропальщик
    Начните пулл-реквестить в open-source проекты желаемой компании, делать реальную работу.
    Ответ написан
    Комментировать
  • Настройка https на nginx?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Достаточно следующего:
    server {
        listen              443 ssl http2;
        server_name         домен_здесь;
        ssl_certificate     /путь/к/сертификату;
        ssl_certificate_key /путь/к/ключу;
    
        тут ваш location {}
    }


    Если переадресовывать с HTTP на HTTPS то выше добавляете:
    server {
        listen      80;
        server_name домен_здесь;
        return      301 https://$server_name$request_uri;
    }


    Также рекомендую посмотреть https://mozilla.github.io/server-side-tls/ssl-conf... - он в зависимости от версии Nginx и OpenSSL, а так же ваших предпочтений позволяет подобрать актуальные шифры чтобы поддерживать максимально возможный уровень безопасности.

    Я себе в /etc/nginx/conf.d/tls.conf положил достаточно строгие настройки без старых протоколов и слабых шифров, которые максимально безопасны, но работают лишь в актуальных версиях браузеров (IE9-10, древние Firefox, Chrome и Safari могут не работать совсем):
    ssl_session_timeout       1d;
    ssl_session_cache         shared:SSL:50m;
    ssl_session_tickets       off;
    
    ssl_dhparam               /etc/ssl/dhparam.pem;
    
    ssl_protocols             TLSv1.2;
    ssl_ciphers               ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers on;
    
    add_header                Strict-Transport-Security "max-age=31536000;";
    
    ssl_stapling              on;
    ssl_stapling_verify       on;

    Это достаточно минималистичный конфиг без мишуры и без правок родных конфигурационных файлов Nginx (упрощает обновление). dhparam.pem вам придется сгенерировать, рекомендую 4096bit, как - найти очень легко.

    Указанных опций более чем достаточно, просто поищите что каждая из опций значит и подкорректируйте по вкусу.
    Ответ написан
    Комментировать