• Как сделать тяжелый импорт из 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);

    Ответ написан
    Комментировать
  • Как защититься от парсельщиков?

    edli007
    @edli007
    full stack, team lead
    Есть разные способы усложнить эту задачу, но усложняя задачу парсерам вы ухудшаете читабельность сайта для поисковых машин(они тоже парсеры)

    И в любом случае единственный способ защитить на 100% от парсинга - это не выкладывать в интернет, так как если браузер может получить контент, то любой парсер может притвориться браузером.

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

    0xD34F
    @0xD34F
    Как распознать говнокодера, практическое руководство

    <...>

    Признак #17. Неспособность разграничить язык и фреймворк. Отнесение незнакомых синтаксических конструкций языка к особенностям используемого фреймворка.

    <...>

    Признак #32. Нечтение документации.

    Даже там упомянуто, что это за зверь:

    На практике для упрощения кода часто используется деструктуризация аргументов из ES2015 (особенно при необходимости многократного вызова commit):

    actions: {
      increment ({ commit }) {
        commit('increment')
      }
    }

    Ответ написан
    1 комментарий
  • Как обработать истечение срока?

    FeNUMe
    @FeNUMe
    Имхо для описанной вами задачи вообще нет смысла дергать постоянно базу и выставлять флаг, вместо этого в клиентской части просто делайте проверку
    текущее_время > deadline_at
    и на основе результата проводите нужные манипуляции.
    Ответ написан
    Комментировать
  • Что по вашему мнению стоит учить Vue.js или Angular?

    @lem_prod
    просто посмотри звезды, и при этом angular на порядок старше
    https://github.com/vuejs/vue
    https://github.com/angular/angular

    + последние версии laravel интегрируют vue, так что китайцы молодцы)
    Ответ написан
    Комментировать
  • Можно ли использовать position: sticky?

    SecretBrain
    @SecretBrain
    still trainee
    Откройте для себя caniuse https://caniuse.com/#search=position%3A%20sticky
    Ответ написан
    Комментировать
  • Почему Vue.js стал популярен в связке с Ruby on Rails?

    vicodin
    @vicodin
    Имею некоторый опыт
    Vue можно использовать в связке с чем угодно, он стал популярнее в связке с рельсами, просто потому, что стал популярнее сам, как фреймфорк
    (Кстати, сегодня он обогнал реакт по звёздочкам на гитхабе https://hasvuepassedreactyet.surge.sh )
    Ответ написан
    Комментировать
  • Как быстрее/правильнее загружать данные?

    @Azperin
    Дилетант
    "Сервак стабильностью не отличается" какой смысл говорить о технологии, если у вас сервер любую из них похерит ? Еще и не понятно какие элементы, это товар с хедером и мелким описанием или 400 статей по 60к символов. Если уж юзаешь вью, то возьми любой фрейворк поверх него, типа вьютифая, там есть таблицы с уже встроенной пагинацией.
    Ответ написан
    4 комментария
  • Возможно ли на laravel сделать фильтр товаров такого типа?

    @Barmunk
    фильтры вообще от индекса все всегда закрывают, они создают миллионы дублей одной и той же страницы с теми же товарами, поэтому и смысла в таком чпу нет. Но если очень хочется то можно, это обычный slug.
    Ответ написан
    4 комментария
  • Проект с нестандартной архитектурой. Как оптимизировать ajax сайт под SEO?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    все пишут что прикольная технология этот PJAX

    Классная. Вот только это не значит, что она предназначена для Вашей затеи. Ее задача, просто и однотипно грузить блоки. Это мега удобно при разработке админки например или отправке формы ajax-ом. Делать весь сайт (front) на нем не самая лучшая затея. Есть смысл взять какой-то js framework. Однако и сильно серьезных проблем Вы не получите, с точки зрения seo. Ведь если Вы все правильно сделали, то get запросы по ссылкам должны возвращать валидный html, а что еще боту надо для счастья?
    Наверное pjax это первое решение такого плана, которое Вы встретили. Поэтому советую обратить внимание на другие js технологии. Так как pjax это скорее хак, чем технология.
    Ответ написан
    2 комментария
  • Могу ли я тратить деньги заработанные на UPWORK не выводя их себе в страну в рубли или валюту?

    kawabanga
    @kawabanga
    Зачем такие сложности то?
    Вот вам некоторые особенности:
    1) paypal разрешает переводить только в рублях на ваш счет. когда будете тратить деньги (а это называется обналичивание, вы как те люди, что деньги взамен кредитов берут в магазинах) это приведет к дополнительным конвертациям.
    2) Если вам не выводить деньги, то я бы выбрал payoneer, так как вы сразу же можете расплатиться долларами на том же алиэкспресе. Экономия на конвертации.
    3) Вы не сможете хранить на upwork счету несколько десятков тыс USD.

    Законно ли это будет и какие тут могут быть проблемы, проволочки?

    Конечно это будет незаконно.
    Ответ написан
    3 комментария
  • Какую CMS выбрать для создания сайтов на заказ?

    Я тоже хочу порекомендовать October CMS. Она на сегодня лучшая, построенная на компонентах Laravel. Но обманываться не стоит, разработка на October не то же самое. Но разрабатывая на October вы получите:
    • отличный DX, нужно просто попробовать;
    • CLI для автоматизации решения задач;
    • самый популярный PHP-шаблонизатор Twig;
    • действительно исчерпывающую документацию;
    • возможность удобного совместеного использования с Laravel (кпример комплексного проекта - 2doc.by - October CMS, api.2doc.by - Lumen, medcrm.by - Laravel);
    • аскетичность из коробки, следование философии Unix, что позволяет не быть изначально заточенной под конкретный тип проекта и не содержать в себе неиспользуемую проектом функциональность;
    • отличный скафолдер для разработки кастомной функциональности под нужды проекта;
    • непрерывно растущую базу плагинов с августа 2015 до мая 2017 росто составил 75% со 130 до 515;
    • непрерывный рост интереса сообщества к платформе, выраженный в приросте звезд на гитхабе с 3000 в июне 2015 до 6950 в мае 2018;


    Можно продолжать долго, если будет желание и необходимость. =) Из минусов можно отметить слабый рост количества готовых шаблонов, не такое большое количество дополнений в сравнении с динозаврами рынка CMS. Не минус, но важный момент, что на October вы будете именно программировать, это как порог входа для неквалифицированных разработчиков, так и дополнительные возможности для квалифицированных.

    Что касается важной темы E-Commerce, есть несколько готовых дополнений разной степени качества и функциональных возможностей. Я порекомендую Shopaholic, т.к. имею непосредственное отношение к проекту и головой могу отвечать за его качество. Проект пока очень молодой, меньше полугода после релиза и тем не менее, отзывы наилучшие от сообщества (1, 2, 3, 4, 5, 6, 7 и т.д.). Вот неболшая статья в нашем блоге про Shopaholic.

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

    Единственной в некоторой степени проблемой выбора не самой известной платформы может стать ее "продажа" клиентам. Но мы успешно с этим справлялись, работая 7 лет с MODX в мире, где правили Wordpress (весь мир) и Bitrix (СНГ). А последние 2,5 года также успешно справляемся с October в мире, где правят Wordpress и Bitrix и это еще теперь пытается делать MODX (СНГ).

    Надеюсь, был полезен. =)
    Ответ написан
    Комментировать
  • Блокировка DigitalOcean?

    @notmyname
    Заблокированы по-видимому все подсетки для новых дроплетов в регионах Европа, Азия, Индия
    Т.е. работают только старые дроплеты, которым выделили IP давно
    floating ip не помогает

    Кто пишет, что все ок, попробуйте завести новый дроплет.
    И нет никаких гарантий, что ваш старый ip проживет долго.

    Блокировать начали 17 числа
    У меня дроплет стал недоступен в москве сегодня, т.е. 19, утром.
    Быстро перенес в другой регион, к вечеру он тоже был недоступен.

    Проблема еще и в том, что ip видимо блокируются не всеми провайдерами.
    Т.е. если через вашего провайдера сайт пингуется, не факт что у другого то же самое.

    ps.
    Да, и поддержка пока молчит, хотя обычно отвечает быстро

    апдейт

    похоже, ночью у них появились новые работающие подсетки.
    перенес на новый ip в AMS, пока полет нормальный

    Slack, кстати тоже заработал с утра
    Ответ написан
    7 комментариев
  • Nginx + php7-fpm High load?

    @miksir
    IT
    5000 запросов в 1 секунду на PHP скрипт? Давайте начнем с PHP, может, а не с nginx. Считаете время ответа одного запроса T, считаете количество воркеров PHP N = 5000*T. Далее запускаете это число воркеров, делаете одновременные запросы на все воркеры и путем увеличения числа ядер процессора добиваетесь времени ответа сервера такого же, какой был на одном воркере. Ну, это без учета того, что если используется СУБД - ее время ответа тоже нужно будет исправлять на заданной конкурентности. Не хватает ядер, добавляем сервера.
    Ответ написан
    4 комментария
  • Как вы оцениваете стоимость своей работы при неточном ТЗ?

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

    Никто не требует от тебя точной цены, если клиент скидывает проект на оценку но еще не написал ТЗ, значит он надеется узнать приблизительный бюджет.
    Ответ написан
    Комментировать
  • Как работать с очень длинными списками в JavaScript (angular, react, vuejs)?

    @MaxBog
    Алексей правильно говорит.
    Из доки по Vue.js https://ru.vuejs.org/v2/guide/syntax.html
    Для работы Vue компилирует шаблоны в render-функции виртуального DOM. В сочетании с системой реактивности Vue умеет определять минимальное количество компонентов для повторного рендеринга и применяет минимальное число манипуляций к DOM при изменении состояния приложения.
    Ответ написан
    Комментировать
  • Как работать с очень длинными списками в JavaScript (angular, react, vuejs)?

    profesor08
    @profesor08 Куратор тега JavaScript
    Проблем не будет. Для браузера эти количества ничего не значат. Заметно будет, когда там их тысячи будут. Но зачем рендерить тысячу сообщений, если можно только последний десяток актуальных, а если пользователь захочет, то подгрузить ему еще. Посмотри как это сделано в мессенджерах, у тебя изначально в чате доступно ограниченное количество сообщений, при прокрутке вверх, подгружаются более ранние. Тем самым тебе не надо хранить всю историю сообщений в памяти.
    Ответ написан
    Комментировать
  • Как принимать платежи на сайте без ИП?

    @MarkLb
    Можете использовать агрегатор платежей FreeKassa, но там высокая комиссия.
    В плане Qiwi - используйте: https://qiwi.com/api - тут менее всего удобно, ибо нет уведомлений о новых платежах, но есть методы для проверки, так что также просто подключается.
    В плане WebMoney - можно использовать WebMoney Merchant(https://merchant.webmoney.ru/conf/default.asp), там не надо ИП, он работает с начального аттестата - получить можно за 10 минут через банковский платеж.
    В плане Яндекс.Деньги ответ выше дали, пользуюсь такими же методами.

    UPD: Qiwi добавили webhook'и, теперь можно без шаманаства с CRON получать данные.
    Ответ написан
    7 комментариев
  • Извлечение фото из MySQL?

    @PapaStifflera
    Родился, вырос...
    Все преобразования есть в коде, который пишет фото в базу.
    Ответ написан
    1 комментарий