Задать вопрос
  • Как правильно сверстать кнопки?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    .link {
      vertical-align: top;
    }
    Ответ написан
    Комментировать
  • Как правильно сверстать кнопки?

    netrox
    @netrox
    .container__inner{
       display:flex;
    }
    Ответ написан
    Комментировать
  • Как избежать одновременного UPDATE таблицы базы данных MySQL?

    LaRN
    @LaRN
    Senior Developer
    Транзакции всем хороши, но под нагрузкой приводят к замедлению работы приложения и иногда, если не правильно работать с запросами к deadlock-м.

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

    При нажатии на "купить товар" операция выполняется в два шага, первый шаг - помещаем заявку пользователя в эту таблицу. (несколько пользователей могут придти за одним ресурсом и приоритет будет у того кто пришел первым)
    Таблица нужна, чтобы не накладывать блокировок на таблицы БД (блокировки могут быть из-за открытой транзакции)

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

    Обработка заявок - это отдельный серверный процесс, он берет заявки по очереди поступления и обрабатывает (изменяет состояние ресурса в БД и состояние заявки) до тех пор пока у выбранного ресурса хватает количества, все пользователи которым не хватило ресурса получают сообщение о невозможности получить ресурс.
    Ответ написан
    3 комментария
  • Есть ли смысл начать пользовать классную но не популярную технологию?

    aleksand44
    @aleksand44
    Зависит от того, для чего вам программирование. Если Вы занимаетесь своим проектом, то вправе кодить на чем вам угодно и ответственность за это несете лишь Вы. То же самое если Вы тимлид.
    А вот в команде Вам скорее всего такие технологии использовать не дадут.

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

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Гуглите "абузоустойчивый хостинг" / "bulletproof hosting".
    Как вариант - выделенные сервера в странах где это легально, например те же Нидерланды.

    Не применительно к специфике Вашего вопроса: раздача видео может быть ОЧЕНЬ дорого с точки зрения трафика даже на небольшом количестве посетителей.
    Вообще я бы не рискнул делать собственный видеохостинг без хорошего понимания технологий и масштабов затрат, если это не учебный проект конечно.

    Хранить на своей машине - это что-то из области бреда даже с точки зрения технологии, не говоря про другие риски.
    Трансляция FullHD видео занимает ~8-12Мбит/сек, т.е уже 10 одновременных посетителей забьют стандартный домашний 100Мбит канал напрочь.
    Ответ написан
    2 комментария
  • Как сделать auto width для поля input?

    premas
    @premas
    Full-stack web-developer
    В одну строку и без зависимостей это делается так:
    <input type="text" onkeydown="this.style.width = ((this.value.length + 1) * 8) + 'px';">
    Ответ написан
    2 комментария
  • Какой лучше стул из этих двух удобнее и тд?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Оба - хлам. Чтобы ничего не болело, кресло надо искать эргономичное и делать это в специализированных магазинах.
    Ответ написан
    8 комментариев
  • Стоит ли брать MacBook Pro 13 128gb 2017 г. для backend и мобильной разработки?

    @klim76
    android/java/sql
    Воткните ещё памяти и будет вам счастье.
    А на разницу лучше съедите в отпуск :-)
    Ответ написан
    4 комментария
  • Стоит ли брать MacBook Pro 13 128gb 2017 г. для backend и мобильной разработки?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Судя по тому, на сколько часто на Тостере задают подобный вопрос, не стоит.
    Ответ написан
    Комментировать
  • Как установить focus на элемент?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    вариант 1.
    сделать иконку с абсолютным позиционированием, а стиль бордера перенести в инпут (псевдокод)
    input {
      padding: 10px 10px 10px 48px;
      border: 1px solid lightgray;
    }
    input:focus {
      border-color: red;
    }


    вариант 2.
    Сделать слой бордер после инпута и использовать селектор соседей (псевдокод)
    input:focus + div.border {
      border-color: red;
    }
    Ответ написан
    Комментировать
  • Как узнать не попали ли мои сайты в фильтр поисковой системы?

    @htmlcssseo
    Добавить сайт в панель вебмастера, если есть баны, то там будут соответвующие записи
    https://www.google.com/webmasters/
    https://webmaster.yandex.ru
    Ответ написан
    6 комментариев
  • Знания, которые не устаревают. С чего начать?

    Stalker_RED
    @Stalker_RED
    Прям совсем с нуля, или вы за эти 12 лет какие-то успешные шаги сделали?

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

    Самое важное: начните писать код прямо сейчас. Пусть это будет простенький hello world, или тупые и неэффективные решения задачки про 99 бутылок, пусть хоть самый ужасный говнокод, но это бесконечно лучше, чем вообще никакого.

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

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

    Пусть это будет как "фоновое" чтение, может даже получится читать эти книги для развлечения. Никаких мгновенных преимуществ в программировании они не дадут, но однажды вы можете заметить, что понимаете ПОЧЕМУ одни алгоритмы работают быстрее других.

    Для быстрого погружения в кодинг попробуйте пройти colobot, например. Он довольно легкий, ориентирован для детей. С интернете полно подсказок и готовых решений, но не стоит ими злоупортеблять и копировать код без понимания его работы.

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

    Вот вам еще один список: Карта развития веб-разработчика
    Здесь уже не только неустаревающие знания, но неплохо бы потратить на каждую из этих тем хоть по 10 минут, чтоб понимать о чем речь. Конечно, для нормальной работы на многие из этих тем придется потратит намного больше времени.
    Ответ написан
    2 комментария
  • Как сделать тяжелый импорт из excel 800к товаров?

    syschel
    @syschel
    freelance/python/django/backend
    1. У вас именно EXEL файл или всётаки CSV который вы открываете на десктопе с помощью экселя?
    2. Если всётаки EXEL файл. Там слишком много всего нагорожено, на вроде вёрсток и формул или голые таблицы?
    3. Если всётаки голые таблицы. Вы можете делать именно CSV файл?

    Если данные будут в CVS формате, то можно всё загрузить средствами MYSQL и не использовать для обработки PHP или его библиотеки. Тогда результат будет в разы выше, чем если перебирать с помощью ПХП и потом кормить в MSQL

    Когда я в своё время сталкивался с проблемой загрузки файла товаров в базу, там было несколько миллионов единиц, то оптимальным стало именно такое решение > LOAD DATA

    Кусок моего старого MySQL кода, для наглядности
    // Загружаем кашерный файл
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,article,available,currencyId,delivery,description,id,name,oldprice,param,picture,price,url,vendor,advcampaign_id,advcampaign_name);
    
    // Загружаем только нужные поля (!!!)
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,@ISBN,@adult,@age,article,@attrs,@author,available,@barcode,@binding,@brand,@categoryId,@country_of_origin,currencyId,delivery,description,@downloadable,@format,@gender,id,@local_delivery_cost,@manufacturer_warranty,@market_category,@model,@modified_time,name,oldprice,@orderingTime,@page_extent,param,@performed_by,@pickup,picture,price,@publisher,@sales_notes,@series,@store,@syns,@topseller,@type,@typePrefix,url,vendor,@vendorCode,@weight,@year,advcampaign_id,advcampaign_name,@deeplink);
    
    // Все поля
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,ISBN,adult,age,article,attrs,author,available,barcode,binding,brand,categoryId,country_of_origin,currencyId,delivery,description,downloadable,format,gender,id,local_delivery_cost,manufacturer_warranty,market_category,model,modified_time,name,oldprice,orderingTime,page_extent,param,performed_by,pickup,picture,price,publisher,sales_notes,series,store,syns,topseller,type,typePrefix,url,vendor,vendorCode,weight,year,advcampaign_id,advcampaign_name,deeplink);

    Ответ написан
    Комментировать
  • Как получить элемент, по которому кликнули (js)?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Проявите любопыство! Напишите простой обработчик клика, который выведет в консоль получаемые параметры:
    document.addEventListener('click', function(){ console.log(this, arguments); });

    Посмотрите, что туда попадает при клике по разным кнопкам.

    Кроме того, если обработчик вешать не на document, а непосредственно на каждую из кнопок, внутри обработчика this будет тем самым кликнутым элементом.
    Ответ написан
    Комментировать
  • Как получить элемент, по которому кликнули (js)?

    @rusglov
    document.addEventListener("click", function (e) {
    console.log(e.target);
    });
    Ответ написан
    Комментировать
  • Как отследить изменения скрола?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    onscroll = function(e) {
    return console.log(window.scrollY)
    }
    Ответ написан
    5 комментариев
  • Хороший фреймворк для разработки бота?

    tomnolane
    @tomnolane
    профессиональный разработчик
    botman на данный момент самый "лучший" (ИМХО), ибо не очень большой выбор. В целом, он не плох (если) хорошо изучить документацию. Я, например, ВК драйвер недавно сделал для него (скоро залью на гитхаб). Проблемы только с Телеграмм - если использовать сервер из РФ, он работать не будет. А так, в целом, очень неплохой. Лучше, я пока не встречал

    п.с. до него я написал трёх ботов "в ручную" (для ВК, Фейсбук и Web). Работают норм, но больше похоже на "костыли", и не очень удобно. А в botman "Hello world" в 39 строк кода, у меня выглядит так:
    <?php
    require_once 'vendor/autoload.php';
    
    use BotMan\BotMan\BotMan;
    use BotMan\BotMan\BotManFactory;
    use BotMan\BotMan\Drivers\DriverManager;
    use BotMan\BotMan\Cache\CodeIgniterCache;
    
    $config = [
        'facebook' => [
          'token' => 'EAAZAT6dcgYDQBAC6x7X******85SLSPF0BRCVeRPPgutgtfvZCkZC9lxnP5pYcRXtF0m7sOAliTEztGPR45cOxx3rZAMZBc9Mb9UhB62gBSG2kXTo7ldyk2fTquadMJQVY8nqKxiOakLXLUZBCSavncCljoe5IAZDZD',
          'app_secret' => 'b52517e****71b6afa76dca657',
          'verification'=>'my_example_veryfy_token',
        ],
        "vkontakte" => [
           "token" => "9af81c610faf0ea319*****d17b0b2b53b164ff3b18cc1b9d4e422fd15db046594139078"
        ],
        'telegram' => [
            'token' => '60176***:****fVCz43IblR72siiyfbebv7wgqCn8tc'
        ]
    ];
    
    DriverManager::loadDriver(\BotMan\Drivers\Vkontakte\VkontakteDriver::class);
    DriverManager::loadDriver(\BotMan\Drivers\Facebook\FacebookDriver::class);
    DriverManager::loadDriver(\BotMan\Drivers\Telegram\TelegramDriver::class); 
    
    $this->load->driver('cache');
    
    $botman = BotManFactory::create($config, new CodeIgniterCache($this->cache->file)); 
    
    $botman->hears('привет', function (BotMan $bot) {
        $bot->reply('Хай.');
    });
    
    $botman->fallback(function($bot) {
        $bot->reply('Чё ??? ...');
    });
    
    $botman->listen();


    UPD
    на этом фреймворке возможны проблемы с русским языком (кодировкой).
    Чтобы её решить, нужно использовать iconv
    iconv('utf-8', 'windows-1251', тут_ваш_ответ_сервера);
    Ответ написан
    1 комментарий