• Как выставить индексы для OR-запроса?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    OR, как и UNION DISTINCT, плохо работает при большом перекрытии данных.
    Скажем, у вас в таблице миллион строк. По первому условию выбралось полмиллиона, по второму ещё полмиллиона. Если взять OR, то сколько уникальных строк должно быть в результате? Вот на выборке только уникальных строк и идут тормоза.
    Быстро работает UNION ALL, но он не удаляет дубли строк.
    Ответ написан
  • Как связать sqlite3 и pyTelegramBotAPI?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Читаете документацию по pyTelegramBotAPI, далее сделайте несколько простых ботов, чтобы понять, как работают боты.
    Потом читаете следующие материалы:
    SQLite
    Руководство по SQLite в Python
    Потом опять делаете несколько программ, которые работают с sqlite, пока не разберетесь с работой данной БД.
    И только потом совмещаете эти 2 библиотеки.
    Неплохо бы для начала подучить сам Python.
    А от того, что мы вам накидаем примеров, легче не станет. Ведь от того, что вы будете просто копировать код, вы не поймете как он работает.
    Ответ написан
  • Будет ли прирост скорости, если БД разнести на несколько ssd?

    @vanyamasnuha
    Так рейд-массив для этого есть. Зачем придумывать какую-то хитрую схему с подбазами?
    Ответ написан
    1 комментарий
  • Как переопределить форму регистрации в Flask-Security?

    dizballanze
    @dizballanze
    Software developer at Yandex
    При создании инстанса Security просто передаете нужную форму через аргумент register_form:

    security = Security(app, user_datastore, register_form=MyCustomRegisterForm)

    Но вероятно вам всетаки потребуется использовать миксины, которые предоставляет Flask-Security.
    Ответ написан
  • Как писать много кода, оставляя его простым, как в начале?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Документируй
    2) Абстрагируйся всегда максимально
    3) Пиши классы по принципу "черного ящика"
    4) Один класс решает одну конкретную задачу, не стоит городить комбайны.
    Ответ написан
    5 комментариев
  • Как писать много кода, оставляя его простым, как в начале?

    @karminski
    Senior React.JS Developer
    Я стараю придерживаться простого совета: один метод - одно действие. Т.е. каждый метод класса должен выполнять строго одну функцию. Число строк одного метода - не более 20.
    Ответ написан
    7 комментариев
  • Есть ли возможность добавить полноэкранный диалог в соответствии с гайдами по Material Design?

    DrZ0idberg
    @DrZ0idberg
    Android-разработчик. Стаж - возраст Android.
    Способ реализации зависит от потребностей (читай "дизайна") в конкретном случае.
    В целом полноэкранный диалог - это по сути обычная активити с соответствующим оформлением.
    У меня в одном из приложений есть экран, который должен быть обычным диалогом на больших устройствах (планшетах) и полноэкранным на маленьких (смартфонах). Для такого кейса создаём активити и задаём ей тему, унаследованную от Theme.AppCompat.DialogWhenLarge. Всё, осталось только изменить нужным образом оформление активити, задавая атрибуты темы.
    Ответ написан
    1 комментарий
  • Почему не работает выборка из бд по дате в laravel5?

    @KyIIpyM Автор вопроса
    Гейм-дизайнер
    Проблема была в временных зонах, у провайдера стоит Киевская, а в городе Московская. Прописал Carbon::now('Europe/Moscow')
    И все заработало
    Ответ написан
    Комментировать
  • Как установить lxml и pycurl в Virtualenv?

    sim3x
    @sim3x
    sudo apt-get install build-essential  python-dev python3-dev
    Ответ написан
    2 комментария
  • В чем суть роутера на php?

    onqu
    @onqu
    weasy
    1. Здесь пугают всякими контроллерами, ларавелями. Давайте жить проще. Для начала дадим определение модному слову роутер. Это маршрутизатор. Что делает маршрутизатор? Правильно. Обрабатывает маршруты, являясь связующим звеном. Маршрутом для web сайта принято считать метод запроса [GET, POST, PUT и другие] и компоненты URI.

    например: https://ru.wikipedia.org/wiki/URI?foo=bar#title
    [схема: https] :// [источник: ru.wikipedia.org] [путь: /wiki/URI] [запрос: ?foo=bar] [фрагмент: #title]


    Но для определения маршрута может браться любая другая информация передаваемая серверу, определение выше это лишь наиболее употребляемые параметры.

    Сама работа, как правило проста: от клиента приходит запрос, маршрутизатор перебирает все заданные ему пути до первого совпадения. При совпадении вызывается определенная вами функция, которая возвращает ответ клиенту.

    2. Он необходим, если в приложении одна точка входа, когда любой запрос приходит на один файл.

    3. Простой пример
    // файл index.php
    
    // Маршруты
    // [маршрут => функция которая будет вызвана]
    $routes = [
        // срабатывает при вызове корня или /index.php
        '/' => 'hello',
        // срабатывает при вызове /about или /index.php/about
        '/about' => 'about',
        // динамические страницы
        '/page' => 'page'
    ];
    
    // возвращает путь запроса
    // вырезает index.php из пути
    function getRequestPath() {
        $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    
        return '/' . ltrim(str_replace('index.php', '', $path), '/');
    }
    
    // наш роутер, в который передаются маршруты и запрашиваемый путь
    // возвращает функцию если маршшрут совпал с путем
    // иначе возвращает функцию notFound
    function getMethod(array $routes, $path) {
        // перебор всех маршрутов
        foreach ($routes as $route => $method) {
            // если маршрут сопадает с путем, возвращаем функцию
            if ($path === $route) {
                return $method;
            }
        }
    
        return 'notFound';
    }
    
    // функция для корня
    function hello() {
        return 'Hello, world!';
    }
    
    // функция для страницы "/about"
    function about() {
        return 'About us.';
    }
    
    // чуть более сложный пример
    // функция отобразит страницу только если
    // в запросе приходит id и этот id равен
    // 33 или 54
    // [/page?id=33]
    function page() {
    
        $pages = [
            33 => 'Сага о хомячках',
            54 => 'Мыши в тумане'
        ];
    
        if (isset($_GET['id']) && isset($pages[$_GET['id']])) {
            return $pages[$_GET['id']];
        }
    
        return notFound();
    }
    
    // метод, который отдает заголовок и содержание для маршрутов,
    // которые не существуют
    function notFound() {
        header("HTTP/1.0 404 Not Found");
    
        return 'Нет такой страницы';
    }
    
    
    // Роутер
    // получаем путь запроса
    $path = getRequestPath();
    // получаем функцию обработчик
    $method = getMethod($routes, $path);
    // отдаем данные клиенту
    echo $method();


    На практике используют более сложные маршрутизаторы, у которых гораздо большие возможности.

    4. Обойтись без него можно. Если каждая страница в вашем приложении будет являться отдельным файлом, который отвечает за отдачу информации.
    index.php
    about.php
    contact.php
    ...


    Это олдскульная структура, в новых проектах почти не применяется.
    Ответ написан
    13 комментариев
  • Как сделать стиль окна Python как в telegram desktop?

    Zifix
    @Zifix
    Barbatum
    Ну проще всего стилизовать окна в Qt через таблицы стилей. Но вообще для создания кастомных интерфейсов я бы рекомендовал использовать QML.
    Ответ написан
    Комментировать
  • Как открыть свой хостинг?

    UAPEER
    @UAPEER
    UAPEER Hosting Solutions Англия
    Ничего не открывайте, такими хостингами уже переполнен маркет, лучше напишите резюме и наймитесь в хостинг компанию.
    Ответ написан
    1 комментарий
  • Yii2 как правильно выполнять выборку данных из БД и отображать её?

    @Bojczuk
    all/one после where забыли:
    $answers = Answers::find()->where(['ticket_id'=> '47'])->one();
    Ответ написан
    1 комментарий
  • Зачем нужен cors?

    Stalker_RED
    @Stalker_RED
    1. JS и так может отправить данные куда угодно, GET запросом, например.
    2. CORS нужен для того, чтобы разрешить КЛИЕНТУ (браузеру) принять некоторые виды ресурсов.

    Традиционно браузер может подключить картинки, iframe, скрипты и флеш с других доменов, но не может использовать ajax или web fonts, если на сервере этот домен не внесен в список Access-Control-Allow-Origin.

    UPD: Дополню, а то судя по комментариям, некоторые люди имеют искаженное представление о CORS.

    Для начала стоит понять, что cors - это способ обхода same origin policy

    Когда-то давно, еще во времена win95, с целью усложнения xss и фишинга, Netscape ввел ограничения для скриптов, исполняемых в браузере. Чуть позже подтянулись и другие браузеры.

    Если на пальцах, то работает оно так: Василий открыл интернет магазин "окна, балкон, дешево, без смс" и вставил iframe-виджет от пейпала, например. И same origin защищает этот iframe, Васины скрипты не могут повлиять на его содержимое.
    То-же самое в другую сторону - сайт поставил себе левый информер в iframe, и скрипты этого информера не могут повлиять на основной сайт.

    Иногда бывает ситуация, когда нужно подключать какие-то ресурсы со своих-же поддоменов или с доменов партнеров. И если вам нужен доступ к этим ресурсам, вы используете cors чтобы отменить same origin.

    В любом случае, cors - всего-лишь дополнительные заголовки отдаваемые сервером. Они никак не помешают "третьим лицам" получить доступ к этим ресурсам. В крайнем случае их можно wget-ом выкачать.
    Ответ написан
    1 комментарий
  • Как ускорить работу программисту?

    27cm
    @27cm
    TODO: Написать статус
    Хотите открою секрет, как ускорить абсолютно любой процесс?

    1. Определите самую затратную по времени часть процесса (факторы, замедляющие процесс).
    2. Придумайте, как ускорить/автоматизировать/перепоручить/удалить эту часть (избавиться от факторов).
    3. Вернитесь к шагу 1.

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

    В вашем случае попробуйте из тех 40 задач вспомнить те, которые заняли наибольшее время. А ещё лучше - начните замерять время выполнения задач, которые будете делать. Проанализируйте, почему на одни задачи вы тратили больше времени, чем на другие. В итоге должны выявить конкретно вашу проблему, замедляющую работу, вот её и решайте.
    Ответ написан
    2 комментария
  • Почему nginx отдаёт 414 Request-URI Too Large?

    zigen
    @zigen
    Вы задаете размер буфера в Килобайтах, а длину строки в запросе измеряете в количестве символов.
    Ответ написан
    2 комментария
  • Как сделать back-end прибыльным?

    А зачем вообще размениваться?
    Я фронтендер, работаю на upwork, доход 1500$, опыт 2 года, год из которых я тупо обучался сам. Чтобы не быть говнокодером изучаю чужой код, читаю книги, статьи - это куда полезнее, чем базары в курилке с другими программистами в офисе, как правило это разговоры ниочём, плавали, знаем))
    Ответ написан
    20 комментариев
  • Как реализуется поиск синонимов по базе данных PostgreSQL на PHP?

    @eoffsock
    Кодер (Rails)
    Для сложных случаев: www.postgresql.org/docs/9.1/static/dict-xsyn.html
    Для простых случаев: LIKE
    Ответ написан
    Комментировать
  • Учебник по математике, при почти нулевых знаниях?

    @6b63
    Гельфанд, Шень -- Алгебра.

    Начинают счетом яблок, заканчивают p-адическими числами.
    Ответ написан
    Комментировать
  • Учебник по математике, при почти нулевых знаниях?

    @Toast
    Обязательно используйте khanacademy.org , идете в курс pre-algebra, начинаете класса с 5ого, пофиг на знание английского, что непонятно найдете по русски, в принципе матан не сложен и по английски. +100500 к скиллам. Я даже не ленюсь денюшки им переводить как донат, за такое дело и не жалко. Обидно, что раньше такого не было, но матан никогда не поздно учить...
    МЦНМО крут, книги в открытом доступе (посоветую Что такое математика - Курант, Робинс, а дальше копайте, у них много добра), на досуге еще можно глянуть лекции Спивака для детей, задачки вроде детские да мозг с хрустом порой переваривает.
    И да, шахматы... Просто играйте в инете с компом с людьми, мозг станет меняться, ну если реально над ходами думать, это не шутеры хуютеры и прочее, тут мозг работает...
    Ответ написан
    2 комментария