• Какой шрифт и размер используется в заголовке уведомления на iOS?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    5e60a4a804e98212254276.png
    Ответ написан
    Комментировать
  • Псевдо-персистентное соединение в PHP, возможно ли?

    Melkij
    @Melkij
    PostgreSQL DBA
    Используйте pgbouncer.
    Лучше всего в режиме transaction пула. Тогда backend postgresql будет выдаваться соединениям от приложения только на время выполнения транзакции. Что позволяет и очень эффективно утилизировать лишь небольшое число процессов postgresql и сохранить возможность транзакционной работы. В режиме транзакций не работают prepared statements, но PDO их и так эмулирует, так что проблемой это не является.

    pgbouncer легко держит тысячи открытых соединений с приложением, легко их открывает и закрывает, развлечения начинаются при попытке прокачать через баунсер с гигабит трафика (и обходится банально запуском второго баунсера тут же на другом порту). Обычно размещается на машине непосредственно с базой на 6432 порту.
    И вообще-то является фактическим стандартом для инсталляций postgresql.
    Ответ написан
    1 комментарий
  • Какой самый быстрый способ сравнения двух таблиц MySQL?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    На вскидку, самый "адекватный" способ, называется "репликация", на счёт репликации отдельных таблиц в MySQL не уверен, но в целом можно что-то придумать.

    Если репликация по каким-то причинам не устраивает, я думаю, оптимальнее всего будет не сравнивать две базы/таблицы постоянно, а например, создать триггер, который при обновлении/добавлении новой записи (возможно, это будет 2 триггера или более) будет писать в 3-ю таблицу, что "добавился" такой-то элемент или "обновился такой-то элемент", потом в "час Х" Вы собираете данные из этой таблицы, делаете выборку нужных записей (по ID'шнику например) и отправляете на дочерний сервер.

    P.S. Это один из простых вариантов.
    Ответ написан
    2 комментария
  • Чем профилировать PHP 7.1 в production?

    DevMan
    @DevMan
    платно:
    blackfire
    newrelic
    tideways

    бесплатно:
    xdebug
    форк xhprof
    Ответ написан
    Комментировать
  • Как задать фон IDE Android Studio любым своим фото?

    @aol-nnov
    глаза свои пожалей! чесслово, вспомнишь еще этот ответ!
    (особенно, если ты реально в этом разрабатывать собрался)
    Ответ написан
    1 комментарий
  • Можно ли начать изучения сразу с angular/react, а не чистого js?

    @klinnov
    Нет
    Ответ написан
    Комментировать
  • Как найти программиста, чтобы он не украл идею?

    @malbaron
    0. Ты тут не первый такой умный. Поищи в поиске. Очень частый вопрос.

    Вы преувеличивайте проблему:

    1. Идея ничего не стоит. Пока не реализована.
    2. У хорошего программиста - полно работы с хорошей оплатой. Время сейчас такое. И что важно - с гарантированной оплатой, в отличие от воровства идей.
    3. Даже если программист хочет что-то там украсть - раскрутить идею это куча усилий. За это время программист потеряет кучу бабла (см. пункт 2). Причем бабло из п. 2 - верняк. А раскрутится ли идея - еще непонятно. А вот усилий на нее нужно будет потратить много-много. За это время потерять кучу верного бабла на работу по основной специальности.

    Юридические:

    4. Попробуй патентовать. Для этого патенты и придуманы.
    5. NDA вы, поди, из статей про стартапы в США услышали. У них другое законодательство. Не знаю в нашей юриспруденции понятия - "неразглашение". Есть "коммерческая тайна". Есть куча описаний как правильно оформить "коммерческую тайну". Договора о неразглашении недостаточно.

    Сюрприз:

    6. А еще есть авторское право. Авторские права останутся у программиста. И он сможет воспользоваться своим продуктом (что важно - уже готовым, в который вкладываться не нужно).
    7. Решается правильным оформлением того, что программист создавал продукт именно для вас и только для вас под зарплату.

    P.S.:
    Более серьезные программисты - менее подвержены этой проблеме.
    У них и репутация и зарплата - незачем воровать.

    Начинающие, тем более, что сейчас рекламируется "быстро срубить денег в ИТ" - скорее подвержены искушению украсть.
    Ответ написан
    8 комментариев
  • Подходт ли elixir для highload web-сервиса?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Я ерлангер. Для начала опишите ваш кейс. Просто странички генерировать может кто угодно, где-то это быстрее, где-то это медленнее. Вы вообще можете переписать все на C/C++, летать будет - гарантирую.

    По части Erlang/Elixir. По сути это одно и тоже, только в разной обертке. Все это выполняется на Erlang VM.
    Cчитаю Elixir в настоящее время больше заточен для веб наличием разного рода либ, типа Феникса или ORM Octo (так кажется?).
    В Erlang это более низкоуровневые либы, но и свободы творчества больше.
    Есть всякие N2O, Nitrogen и т.п.

    Что хорошо в этих языках, так это:
    1. Вы можете не использовать сторониие сервисы чтобы хранить состояние. Все может хранится в памяти.
    2. Вы легко можете распаралелить работу на несколько ядер (если это позволяет задача). Никакой PHP не даст тут такой гибкости.
    3. Вы можете быть уверены в надежности. Можете контроллировать когда приложение будет падать, а когда нет.
    4. Ну всякие бенчмарки: www.ostinelli.net/a-comparison-between-misultin-mo...
    5. Да еще. Erlang/Elixir-приложуху можно прозрачно кластеризовать на несколько машин, конечно она должна это поддерживать.
    Ответ написан
    3 комментария
  • Можно ли при конфликте (INSERT) не обновлять SEQUENCE?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Такое поведение стандартно для большинства СУБД. Перед началом выполнения INSERT'а запрашивается следующее значение для SERIAL, и СУБД увеличивает счётчик на единицу. Но, поскольку за время выполнения запроса ещё несколько запросов могли потребовать тот же счётчик, то неиспользованные значения обратно не принимаются и образуются пропуски.
    Сделать свой счётчик можно, но ценой производительности (www.varlena.com/GeneralBits/130.php). Как правило, смысла в этом нет.
    Ответ написан
    Комментировать
  • Экспресс обучение frontend разработке. Как подступиться?

    mattedev
    @mattedev
    web developer
    для frontend разработки хватит nodejs, angular или react(по вкусу), mongodb (тоже кому как удобней), ну и bootstrap, html5, css3, и как ни странно javascript :) full stack
    Ответ написан
    Комментировать
  • Маршрутизация, имеет ли такой подход право быть?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1. Use HttpFoundation Luke!
    2. Ваш роутер, был бы не плох лет эдак 10 назад, но не сейчас, посмотрите роутинг symfony, или silex
    3. ОБЯЗАТЕЛЬНО читаем: PSR-1, PSR-2, PSR-4

    <?php
    namespace lib;
    class Router {
    // Может rules все таки?))
          private $rulls; // Зачем тут отступ?
    // phpDocumentor - ваш друг, прописывайте ОБЯЗАТЕЛЬНО типы данных.
        private $uri;
        private $controller;
        private $params = [];
    
        function __construct(){
            $this->setUri(); // У вас нет такого метода, есть setURI
            $this->setController();
            $this->setParams();
            $this->setRulls();
        }
    // Что будет, если $_SERVER['REQUEST_URI'] = '/?', или '/////'?
        private function setURI(){
    // Подобное форматирование может и ок для шаблонов, и то где-то, где вообще незаметно, но не тут читаем про PSR-2
            if($_SERVER['REQUEST_URI'] != '/'):
                $this->uri = explode('/',trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
            endif;
        }
    // Я правильно понимаю, вы хотите сказать, что контроллер - это некий элемент массива (похоже string|null)? Обычно контроллер - это объект...
        private function setController(){
            $this->controller = array_shift($this->uri);
        }
    // В этом методе вы по тупому копируете элементы, зачем?
        private function setParams(){
    // Подобное форматирование может и ок для шаблонов, и то где-то, где вообще незаметно, но не тут читаем про PSR-2
            foreach ($this->uri as $value):
                $this->params[] = $value;
            endforeach;
        }
    
        private function setRulls(){
    // NO! загрузка данных - это НЕ задача роутера, от слова СОВСЕМ
            file_exists(SITE_ROOT.DS.'routing'.DS.'rulls.php') ? $this->rulls = include(SITE_ROOT.DS.'routing'.DS.'rulls.php') : die('Файл с конфигурацией роутинга где-то затерялся, извини.');
        }
    // В методе ничего нечего спасать, просто удалите его.
        public function run(){
    // НЕ ИСПОЛЬЗУЙТЕ ГЛОБАЛЬНЫЕ ПЕРМЕННЫЕ
            $_REQUEST = array_merge($_REQUEST, $this->params);
            $controller = '\\controllers\\'.$this->rulls[$this->controller]['controller'];
            $action = $this->rulls[$this->controller]['action'];
            $controller = new $controller; // Что будет, если такого класса нет?
            $controller->$action(); // Что будет, если такого метода нет?
        }
    }
    Ответ написан
    Комментировать
  • Почему использование $parse не рекомендуется в angularjs?

    @bromzh
    Drugs-driven development
    Может потому что это и есть почти тоже, что и eval? Следовательно нужно тщательно проверять входные параметры. А ты сразу вызываешь её от значений атрибутов, даже не проверив их ни на что. Ну и отслеживать ошибки в таких штуках крайне сложно.

    habrahabr.ru/post/244001/#comments
    Ответ написан
    1 комментарий
  • Зачем указывать type?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Потому что необязательные, но бывают разные варианты и люди просто хотят выражать свои намерения явно вместо неявного использования значений по-умолчанию.
    К примеру, могут быть такие варианты:
    <link href="..." rel="alternate" title="..." type="application/atom+xml">
    <link href="..." rel="import" type="text/html">
    <script type="application/json">...</script>
    <script type="application/ld+json">...</script>

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

    @deliro
    from selenium import webdriver
    
    driver = webdriver.Firefox()
    driver.get('http://yo.ur/pretty-and-cool/url')
    element = driver.find_element_by_css_selector('button.with-class#or-id')
    element.click()
    Ответ написан
    4 комментария
  • Как с помощью питона нажать на кнопку на сайте?

    @qwescin
    selenium webdriver
    habrahabr.ru/post/248559
    Ответ написан
    Комментировать
  • P2P html5 web player?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Невозможно.
    Ответ написан
    4 комментария
  • Поиск из двух колонок из одного значения?

    @dmitryKovalskiy
    программист средней руки
    За конкатенацию SQL и Get-параметров ударьте себя по пальцам.
    Вам надо написать запрос использующий 2 переменных.Что-то вроде
    SELECT something from table1 
    WHERE (@param1 IS NULL OR @param1 = col1) OR(@param2 IS NULL OR @param2 = col2)

    А сами GET-параметры проверить на валидность и проставить в качестве значений указанным переменным
    Ответ написан
    Комментировать
  • Какой маршрутизатор лучше всего использовать для AngularJS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    angular/router - еще сыроват но будет крутым
    uiRouter - сейчас это лучшее что есть, но местами убого и не логично. К счастью уже активно пилится 2-ая версия, переписанная на TypeScript и все такое. На данный момент, стоит использовать его и потом, либо перевести проект на 2-ую версию либо на angular/router.
    Ответ написан
    1 комментарий
  • Как reduсers обрабатывает данные в React Redux?

    @vsuhachev
    Редуцер должен возвращать объекты/хэши, а не так как у вас массивы.

    Весь этот синтаксис { ...state, loading: true} означает: Возьми пустой объект, скопируй туда все содержимое state, а потом переопредели следующие ключи (loading и т.д.)

    export default function company(state = defaultState, action) {
      switch (action.type) {
    
        case LOAD_REQUESTED:
          return {
            ...state,
            loading: true
          };
    
        case LOAD_OK:
          return {
            ...state,
            loading: false,
            counter: action.counter,
            app: action.app,
            errors: null
          };
    
        default:
          return state;
      }
    }
    Ответ написан
    2 комментария