• Как бороться с дедлоками?

    @BorisKorobkov Куратор тега MySQL
    Web developer
    1. MySQL умеет убивать deadlock, это не приводит к падению сервера.
    Укажите все deadlock-запросы. Их надо отрефакторить.

    2. Зачем постоянно update юзеров? Для счетчиков или даты последнего посещения лучше выбрать другое хранилище.

    3. Зачем постоянно select юзеров? Используйте кэширование

    4. Зачем постоянно select логов? Обычно логи только пишут. Да и БД для этого тоже вовсе не обязательно использовать.

    5. Зачем постоянно select чатов? Достаточно только для новых участников чата
    Ответ написан
    8 комментариев
  • Как лучше организовать такую систему?

    @kn0ckn0ck
    Продюсер
    Необязательно логика запроса влияет на его производительность. В большей степени на это может влиять специфика данных, физика размещения данных и т.п.

    Если уверены, что проблема именно в этом запросе, то анализировать нужно не запрос, а план его выполнения (explain ...). Без плана ничего дельного сказать нельзя. Можно только предложить абстрактные идеи для оптимизации:

    1. продуманные индексы
    2. денормализация
    3. материализованные представления
    4. партиционирование
    5. типы движков
    Ответ написан
    Комментировать
  • Как отсортировать многомерный ассоциативный массив по ключу с глубокой вложенностью?

    Stalker_RED
    @Stalker_RED
    $data = []; // здесь ваш массив
    usort($data, function ($a, $b) {
        return $a['likes']['count'] - $b['likes']['count'];
    });
    print_r($data);
    php.net/manual/ru/function.usort.php
    Ответ написан
    Комментировать
  • Как быть Python junior?

    Maksclub
    @Maksclub Куратор тега Карьера в IT
    maksfedorov.ru
    Как джуниор-разработчику найти работу

    Цитата от туда:

    Как выход — начал писать на вакансии сеньоров и мидлов со словами «Каким образом попасть к вам джуниором?» и объяснением почему должны взять — как правило обратная связь очень хорошая — зовут в 3 случаях из 4, а также можно заложить фундамент на будущее, если не подходите.
    Ответ написан
    4 комментария
  • Почему не записываются дынные в бд?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Что это такое?
    if ($result = 'true')
    Во-первых, вы сравниваете со строчным значением 'true', а не булевым true.
    Во-вторых, вы не сравниваете, а присваиваете. Присваиваете переменной $result строчное значение 'true', что всегда будет возвращать булевое true, независимо от того, что содержалось в переменной $result до этого (вы перезаписали ее значение). Таким образом, у вас всегда сработает if (а не else), независимо от результата выполнения mysql запроса. В комментариях oxidmod вам подсказал правильно:
    //if ($result = 'true'){
    if ($result){
        echo "Информация занесена в базу данных";
    }else{
        //echo "Информация не занесена в базу данных";
        echo "Информация не занесена в базу данных: " . mysql_error();
    }


    Это что касается сюрприза и несбывшихся ожиданий. Что касается того, почему mysql не создает запись... Во-первых, mysqli. Во-вторых, в WordPress есть $wpdb.
    Ответ написан
    4 комментария
  • Как связать 1с с апи бота?

    @Dementor
    программист, архитектор, аналитик
    Но как нам это все связать? Есть ли какое то апи у 1с? Есть ли какие то готовые решения?

    В 1С можно создать API любой сложности на базе HTTP-сервисов или SOAP (есть и другие способы, но с серверов Телеграмма/Вайбера они вам будут недоступны). Вот вам пример получения данных из базы 1С, который вы можете использовать в своем проекте (запрос боту "верни текущий статус моего заказа") - https://infostart.ru/public/302876/
    Ответ написан
    3 комментария
  • Как организовать процесса веб-разработки с технологической точки зрения?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    раньше прочтешь, меньше набьешь, хотя и Git - уже серьезный шаг

    по самому же вопросу - привыкайте к REST API, тогда фронт не парится беком, а бек не парится фронтом
    Ответ написан
    Комментировать
  • Как обновлять приложение?

    Jump
    @Jump
    Системный администратор со стажем.
    Ответ написан
    Комментировать
  • Как повесить два события на кнопку onclick?

    Stalker_RED
    @Stalker_RED
    <span class="active btn-v-korzinu">

    var myBtn = document.querySelector('.btn-v-korzinu')
    
    myBtn.addEventListener('click', function(){
      ga('send', 'pageview', '/knopka-v-korzinu')
    })
    
    myBtn.addEventListener('click', function(){
      _gaq.push(['_trackEvent', 'Knopka', 'Podtverdit']);
    })
    
    myBtn.addEventListener('click', function(){
      alert('hello world'); 
    }) // можно добавлять сколько угодно.


    или вообще так:
    myBtn.addEventListener('click', function(){
      ga('send', 'pageview', '/knopka-v-korzinu')
      _gaq.push(['_trackEvent', 'Knopka', 'Podtverdit']);
      alert('hello world'); 
    })
    Ответ написан
    Комментировать
  • Как правильно организовать изменений 50-100 строк в mysql?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    Делать 50-100 запросов циклом?


    Вот этого категорически делать не нужно. Изменения должны происходит в рамках одного запроса update, просто сформируйте массив из ID выбранных товаров и проставляйте его в условии where, используя оператор IN, например:

    UPDATE table_items
        SET option = true
        WHERE id in (11, 45, 81);
    Ответ написан
    Комментировать
  • Как на одной linux-машине запустить несколько сервисов, но так, чтобы каждый сервис имел уникальный ip?

    @mureevms
    Поставьте фронтэндом nginx и повесьте на один IP адрес хоть сотню сервисов на 80 порту с доступом по доменному имени.
    Ответ написан
    16 комментариев
  • Выбор дистрибутива Линукс для разработчика?

    IRC
    @IRC
    Django developer & Atlassian DevOps engineer
    Может меня тут сейчас закидают чем то нехорошим, но епрст. Win10 плохая, linux завести не получается...

    Когда отрубают свет

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

    Ставил Ubuntu, опыт печальный.

    Если с Убунтой опыт печальный, то вообще сложно что-то предложить, но попробуйте Mint. А если в линуксе опыта нет толком, то купите Макбук, на нем прекрасно программируется и выключение света не помеха.
    Ответ написан
    3 комментария
  • Какой простой графический редактор посоветуете для наложения на фото всяких стрелочек, надписей и пр.?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Не нужно для таких работ никаких графических редакторов - в них куча избыточных инструментов, затрудняющих освоение. Вполне достаточно применять продвинутый просмотровщик картинок. Лично я применяю FastStone Image Viewer, в главном меню которого есть пункт "Рисование". Если кликнуть его, открывается окошко простенького оформительского редактора - рамки, стрелки, надписи и прочие подобные элементы, ну и возможности их регулировки (смена цветов и пр.).
    Допускаю, что и другие популярные просмотровщики имеют что-то подобное. Но FastStone Image Viewer сам по себе - практически идеал просмотровщика изображений (впрочем, здесь это оффтоп).
    Ответ написан
    1 комментарий
  • Как правильно комментировать код?

    Antiless
    @Antiless
    /** */ - PHPDoc
    // - обычные коментарии

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

    ps
    при этом всем главное не забывать давать внятные имена переменным, методам, объектам и тд
    Ответ написан
    3 комментария
  • Монкикоддинг полезен или вреден?

    Adamos
    @Adamos
    Чему нас учит семья и школа?
    Что жизнь сама таких накажет строго.

    Не умея правильно выстроить архитектуру и работу, вы, конечно, неизбежно занимаетесь манки-кодингом. Это нормально.
    Но вы в кратчайшие сроки наберете столько технического долга, что разруливать его, не думая, просто не получится. Поневоле узрите свои ошибки и основания к тому, чтобы делать более мудрено то, что казалось логичным сделать по-быстрому.
    Это, конечно, оптимистичный сценарий, но лучше готовиться к нему, чем высасывать что-то из пальца и думать, "как правильно программировать", а не "как же теперь отрефакторить эту конкретную клоаку и никогда больше так не делать".
    Ответ написан
    Комментировать
  • Заказчик хочет больше работы за фиксированную сумму и не хочет доплачивать. Как урегулировать спор?

    x67
    @x67
    Ваш договор не имеет юридической силы в силу того, что в нем не прописаны ключевые условия. Например, если заключить договор, что Маша должна пачку молока Саше потому что он бука, то такой договор прокатит только в детском садике (потому что у них все серьезно). Правда еще следует поискать что нибудь подобное в законодательстве той страны, в юрисдикции которой может быть рассмотрен договор и действий которой вы опасаетесь ( если возвести все до крайней степени, то Россия, потому что ваша страна и Индия, потому что его страна, а вы хотите когда-нибудь там побывать и опасаетесь что из-за тяжб вам может быть отказано в получении визы).
    С психологической точки зрения наверное стоит спокойно объяснить заказчику, что он чудак, вы сделали то и то, потому что это было обговорено до начала проекта в скайпе, как вы и договорились в договоре, за это он должен вам денег и дальше вы можете сотрудничать на новых условиях или не сотрудничать вообще. В крайнем случае может стоит чуть пригрозить, сказав что у вас есть записи разговоров в скайпе и он полностью отвечает за свои поступки перед законом, а вы принципиальный человек. Если не получается найти точку взаимодействия, то просто прекращайте общение и удаляйтесь искать более адекватных клиентов и писать себе памятки о том, как не стоит заключать договора)
    Ответ написан
    Комментировать
  • Какой алгоритм подойдет для описания полета насекомого?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    Можно сделать цепочку преследования: к случайной точке тянется одна, к ней другая, и т.д., а последняя – муха.

    Очередную точку ставить на плоскости случайно, в любом месте внутри допустимой области. Эта точка – цель, к которой стремится следующая, невидимая точка: каждый следующий кадр её координаты изменяются на k * векторИзТекущегоПоложения-в-Цель:
    x = x + k * (xTarget - x);
    y = y + k * (yTarget - y);

    Так «преследователь» замедляется, по мере приближения к цели, никогда её не достигая.

    Эта невидимая точка – не одна. К ней, как к цели, стремится следующая. К той ещё одна. Наконец, сама муха по этому закону стремится к хвосту этой цепи - очередной точке.

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

    Сделал рабочий пример.

    Можно поменять алгоритм и сделать, скажем, линейную скорость постоянной. Или случайно варьировать параметры k и D – от этого поменяется скорость и траектория от плавной ближе к ломаной.
    Ответ написан
    Комментировать
  • Как удается получить заказ на бирже?

    @awdemme
    Отвечаю как заказчик, выставлял свои заказы, получал дебильные отклики:

    Большинство получаемых ответов - абсолютно шаблоны. Их авторы не потрудились даже прочитать задачу, понять, а смогут ли они ее выполнить и пр. и пр.

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

    Нужно откликаться так, чтобы было понятно, что ты прочитал задачу.
    Можно сразу предложить варианты решения (пара предложений, без деталей).

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

    Сам я прекрасно брал работы, даже когда начинал обращение с предложением поднять оплату в 1,5-2-3 раза относительно желаемого заказчиком.
    Разумеется, это все было не с потолка, а с моих реальных оценок сложности работ.

    Не пиши отклик, если не видишь внятного описания задачи.
    С большой вероятностью сами не знают что хотят и не разбираются в том, кто им нужен.
    Больше времени потеряешь.
    Ответ написан
    19 комментариев
  • Какой движок хранилища выбрать?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ написан
    Комментировать
  • Как сделать бесконечно выполняющийся скрипт php?

    @rPman
    php-cli
    Это отдельный, хоть и виртуальный пакет в операционных системах, имеет свой каталог с настройками расширений в /etc/, запускается приложение как и все скриптовые php имя файла плюс можно добавить первой строчкой по стандарту #!/usr/bin/php и поставить бит x на файл, тогда он будет запускаться как обычное приложение.

    cron - это не порядок, он подходит наоборот для периодических задач, которые отработали и завершили работу.

    По правилам, если вам нужен демон, который постоянно будет работать, то для этого необходимо создать для него файл службы, читать документацию по операционной системе или в /etc/init.d этот список все операционки тянут для совместимости до сих пор (там простой bash который запускает и останавливает вашу программу по команде start|stop).

    Будьте внимательны, если вы об этом не позаботитесь сами, ваш скрипт самостоятельно никто не перезапустит, если он вылетит по ошибке.
    Ответ написан
    Комментировать