Задать вопрос
  • Кто видел работу на стыке IT и биологии?

    usdglander
    @usdglander
    Yipee-ki-yay
    Стык IT и биологии - в голову приходит только симуляция эволюционных процессов с помощью генетических алгоритмов. Даже как то слышал слово "кибербиолог". :)
    Ответ написан
    1 комментарий
  • Как упростить запрос с группировкой, максимальным значением и JOIN в MySQL?

    @Nekonyash
    Попробуйте следующее:
    SELECT
      pd.product_id,
      d.name,
      d.discount_percent,
      d.discount_amount
    FROM s_products_discount pd
    JOIN s_discounts d ON pd.discount_id = d.id
    WHERE 1
    AND pd.product_id IN ('41987', '41988', '41989', '41990', '41991', '41992', '41993', '41994') # проверять список ид ДО более сложной проверки
    AND d.priority = (
      SELECT MAX(sd.priority)
      FROM s_products_discount spd
      JOIN s_discounts sd on spd.discount_id = sd.id
      WHERE spd.product_id = pd.product_id
      AND sd.visible = 1
      AND sd.date_from <= '2018-05-05'
      AND sd.date_to >= '2018-05-05'
    )


    У меня только возник вопрос... А зачем везде LEFT JOIN? Разве в текущей задаче нужен именно он, а не просто join? Такое чувство, что left пишется просто по привычке.
    В чем состояла оптимизация - вы строите временную таблицу, где к каждому продукту ищется максимальный доступный приоритет. Если представить, что у нас пол миллиона продуктов, вы хотим выбрать только десяток - все равно будет построена таблица по всем продуктам. Я же переместила подзапрос в where, где будет сравниваться приоритет для конкретного продукта. Судя по моим маленьким тестам, даже на малом количестве данных запрос не проигрывает, на большом количестве данных разница должна быть заметнее.
    Ответ написан
    1 комментарий
  • Как в PHP наложить текст с CSS стилем на картинку?

    neuotq
    @neuotq
    Прокрастинация
    Нет, это делается не таким образом.
    Работа с изображениями в php через специальный библиотеки GD/ImageMagick.
    Но чтобы не возиться самому с велосипедо строением, лучше уже использовать готовые обертки.
    Я советую image.intervention.io, у них отличная документация, широкие возможности по манипуляциям с изображениям, фильтры, кропы, эффекты и тд и тп. В том числе и работа с текстом, поддержка шрифтов.
    Если уж хочется именно css/html шаблоны, то есть библиотека https://github.com/niklasvh/html2canvas , но тут уже вам стоит разделить логику и отображение. Мы у себя успешно использовали эту библиотеку для реализации генерации баннеров автоматически под нужный размер, используя адаптивную верстку. Сама библиотека не идеал, на практике бывают всплывают косяки и проблемы, но думаю для вашей задачи более чем подойдет.
    Ответ написан
    1 комментарий
  • Как организовать частичную блокировку контента статьи?

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

    Всё просто. Делается 3 отдельных репозитория:
    1) Ядро
    2) Бумажные книги
    3) Аудио книги

    Бумажные книги и Аудио книги просто используют ядро, которое вы обновляете и там самым изменения происходят на двух сайтах
    Ответ написан
    Комментировать
  • Какую взять CMS для управления проектами?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Откройте для себя мир продуктов Atlassian и не изобретайте велосипеды.
    Ответ написан
    Комментировать
  • Как понять, что сотрудник аутсорсит код на стороне?

    @Dr_Gonzo
    http://mahamba.com
    Собственно зачем тратить время на это расследование? Вы его можете потратить с большей пользой для бизнеса и себя. Главный вопрос - вас устраивает результат работы этого разработчика за те деньги, которые вы платите? Если да, то лучше заняться другой проблемой, если нет, просто смените разработчика.
    Ответ написан
    Комментировать
  • Есть ли какие-то глобальные отличия symfony от django?

    voronkovich
    @voronkovich
    1. Symfony - компонентный фрейморк, Django - нет.

    Это значит, что вы можете использовать только необходимые компоненты Symfony в вашем приложении.

    2. У Symfony нет ORM, у Django - есть.

    Обычно для Symfony используют Doctrine, похожую на SQLAlchemy т. е. DapaMapper. ORM поставляемая в Django - это ActiveRecord.

    3. В Symfony все завязано вокруг DI-контейнера. В Django этого нет.

    4. Symfony - это микрофреймворк, Django - нет.

    5. Django Reinhardt - джазовый гитарист, SymFony - это просто Sensio Framework.

    Как видите, эти фреймворки похожи друг на друга как Python и PHP.
    Ответ написан
    2 комментария
  • Вычитание даты на jQuery?

    coderisimo
    @coderisimo Куратор тега JavaScript
    Очень рекомендую https://momentjs.com/ . Удобная штука и весит мало!
    Ответ написан
    Комментировать
  • Почему не совпадает верстка с реальными устройствами?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Вы неправильно настроили панель разработчика. У мобильных телефонов количество физических пикселей больше, чем количество «css-пикселей» в браузере. Разница выражается параметром Device Pixel Ratio (DPR) — это коэффициент умножения, сколько физических пикселей в одном «css-пикселе».

    take.ms/v1Ms8

    В режиме Responsive у Хрома по-умолчанию DPR=1.0 (у макбука по-умолчанию 2.0, т.к. retina-экран). Вы выставили ширину вьюпорта 540px, но у вашего телефона, скорее всего, DPR = 1.5 и разрешение в браузере соответствует 360px (540 / 1.5 = 360).

    Вам надо включить отображение DPR и доработать верстку на малых экранах от 540 до 320px.
    Ответ написан
    7 комментариев
  • Почему компании пишут свои внутренние языки?

    @forspamonly2
    знаю одну контору со своим языком и видел куски их кода, но сам с этим не работал - бог миловал.

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

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

    в теории, если такая возможность изначально закладывалась, наверное это может облегчать портирование на разные платформы (было десктопное, стало вебовским, а потом и мобильным, при этом старый прикладной код весь остался рабочим), но бесплатно это тоже не бывает, так что все варианты будут далеко не идеальными.

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

    GavriKos
    @GavriKos
    Котируется так же, как и обычный диплом.

    Реально - не сталкивался с ситуацией даже когда обычный диплом нужен, если речь о пост-советском пространстве.
    Ответ написан
    1 комментарий
  • Можно ли использовать github как хостинг для лендингов с PHP скриптами?

    Нет, GitHub Pages предназначены для хостинга только статичных файлов, исполняемые файлы на сервере не поддерживаются.
    Однако определять язык браузера и делать редирект можно и с помощью javascript.
    <script>
    var userLang = navigator.language || navigator.userLanguage; 
    alert ("The language is: " + userLang);
    if (userLang === "ru-RU"){
    window.location.href="https://google.com/";
    }
    </script>
    Ответ написан
    Комментировать
  • Какие сайты могут помочь в обучении HTML?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    html слишком прост, чтобы специально искать сайты с упражнениями.

    Смотрите просто справочник
    https://www.w3schools.com/tags/tag_doctype.asp
    Ответ написан
    Комментировать
  • Как на php выбрать одинаковое значение из двух многомерных массивов?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $profiles = array_combine(
                  array_map(function($profile) { return $profile->id; }, $data['profiles']), 
                  $data['profiles']);
    foreach ($data['items'] as $item) {
      echo $profile[$item->from_id]->first_name, ' ', 
           $profile[$item->from_id]->last_name, ' - ', 
           $items->text, "\n";
    }
    Ответ написан
    3 комментария
  • Какие законы, касающиеся интернета (блокировки, персональные данные, приватность и т.п.) из других стран (не снг) вы знаете?

    Moskus
    @Moskus
    Про Австралию - либо ошибка, либо ложь. Не весь трафик, а метаданные (факт соединения) и не десять лет, а два года. Закон действует с 2015-го года.

    В ЕС такое требование было принято аж в 2006-м, но в 2014 было признано судом противоречащим фундаментальными правам человека.
    Ответ написан
    2 комментария
  • Какую функциональность обычно используют в PHPStorm?

    @ollisso
    1. xdebug. ежедневно, когда правлю баги. Как вы можете без неё жить ? :)
    echo/var-dump/print_r ? Они же хуже, в разы,
    xdebug ускоряет дебаггинг раз в 10

    2. комиты напрямую через IDE, - git, svn
    Почти не пользуюсь сторонними приложениями для этого.
    Git так вообще очень удобно мержить, решать конфликты и тп.

    3. терминал внутри IDE - очень удобно для запуска того же gulp, composer install, и тп

    4. Авторефакторинг при переименовании классов, неймспайсов и тп.

    5. Перемещение файлов.

    Подумайте подругому:
    Какие вы программы используете в работе ? И можно ли всё это объеденить в одной программе.

    Например, я использую:
    1. бразуер
    2. SQL редактор (периодически)
    3. Phpstorm

    Если бы в шторме был удобный SQL редактор, то наверное я бы и его использовал :)
    Ответ написан
    3 комментария
  • Как опубликовать игру/приложение в Ubuntu Store написанное на Golang?

    @vanyamba-electronics
    As a free/open source app, you essentially have two options:
    Ответ написан
    Комментировать
  • Как вы боретесь со слабой типизацией и зачем ее придумали?

    И самое главное: кто придумал слабую типизацию?

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

    Динамическую типизацию придумали для того, чтобы было легче писать обобщённые алгоритмы и мета-алгоритмы, в дин. языке для обобщения кода не нужны ухищрения типа дженериков (TypeScript, C# и много чего ещё) или шаблонов/макросов (C++). В ОО-языках часто доступны и другие удобства, например смена интерфейса объекта в зависимости от его состояния (т.к. решение о возможности вызова метода/свойства объект может принимать сам).

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

    Как вы пишете код на жс?

    Мы не пишем код на JS, мы пишем код на TypeScript. Да, такие сейчас странные времена, когда язык со статической типизацией компилится в язык с динамической, т.к. исполнять на клиенте (в браузере) больше нечего пока.

    Он же не должен быть напичкан parseInt() и !== undefined.

    Не должен. Если писать на голом JS, можно а) использовать JSDoc для аннотаций о типах, и работать с типами на уровне документации и договорённостей; б) писать алгоритмы в максимально обобщенной манере, и требовать по возможности не конкретных типов данных, а значений, над которыми допустимы нужные вам операции; в) покрывать код тестами, что и спасает в динамических языках.

    Чем больше проект, тем важнее статическая типизация, это нормально. JS - это язык который популярен по техническим причинам и по стечению обстоятельств, а не потому что он этого заслуживает (имхо). Очень неглупые дяди и тёти не стали бы тратить годы своего времени и кучу денег на разработку TypeScript и Flow, если бы это было ненужно.
    Ответ написан
    1 комментарий