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

    @marataziat
    Джангист-тракторист
    Сайт нужно засунуть в Kubernetes контейнеры, и когда прилетает на CI сервер оповещение о новом коммите то запустить деплой.

    Надо гуглить laravel kubernetes ci

    Выбери какой ci ты хочешь, например gitlab имеет бесплатный ci и git хостинг или сам создашь свой на gitea с jenkins ci!

    Вариантов куча, но я считаю что от веб серверов в привычном понимании надо отказыватся и все ставить в kubernetes
    Ответ написан
    Комментировать
  • Безопасно ли записывать "секретные" данные в txt-файл с именем из кракозябр (например salkgkawj2145lkjsalfkj@24lkjl), который открыт для чтения?

    @marataziat
    Джангист-тракторист
    Используй uuid в имени файла и отгадать его будет невозможно :) Но это только если ты выключишь directory listing на сервере конечно.

    По такому принципу работают многие CDN! Например если ты посмотришь url превью видео на ютубе то увидешь что юрл очень длинный и непредсказуемый. Даже если это приватное видео то url на превью во вкладке инкогнито будет виден!
    Ответ написан
    Комментировать
  • Есть ли определенный хостинг?

    @marataziat
    Джангист-тракторист
    Это вам не shared hosting с предустановленными php с mysql :) Нужно самим ставить через docker-compose. А деплоить можно на gcp kubernetes тот же или digitalocean docker
    Ответ написан
    Комментировать
  • Как использовать контроль версий для сайта на обычном хостинге?

    @marataziat
    Джангист-тракторист
    Есть много ci/cd сервисов. Например buddy.works там просто нужно указать ваш гит репо и что выгружать при каждом комммите в мастер на ftp сервер.

    Это все бесплатно если деплои непотребляют много ресурсов. Вы вмегда можете поднять Jenkins усебя на raspberry pi или vps.
    Ответ написан
    Комментировать
  • Идентификация пользователя в websocket (vue, express)?

    @kirill-93
    Вебсокеты, как и http - это протокол без состояния. То есть, после перезагрузки страницы, сервер не знает, вы это или нет.
    Поэтому после подключения к вебсокетам, вам нужно отправить на сервер какой-то идентификатор, например свой id.
    На сервере хранить соединения и данные о пользователях. Когда нужно будет отправить сообщение, найдете на сервере нужное соединение и отправите в него данные.

    Вот тут хороший пример простого чата на вебсокетах. Без socketio, но сути это не меняет. Автор сохраняет всех клиентов в массив и работает с этим массивом.
    Ответ написан
    7 комментариев
  • С чего начать изучать алгоритмы?

    @dmshar
    Нужно понять, кем вы стремитесь стать - кодировщиком или разработчиком.
    Если кодировщиком - то выучили язык и бегом - по готовому, кем-то составленному ТЗ - писать программы и деньги зарабатывать.
    Если разработчиком - то без знания алгоритмов вам не обойтись. Вы сами должны будете уметь хотя-бы из имеющихся реализаций выбрать наиболее подходящую или эффективную. А возможно и модифицировать их именно с учетом конкретного приложения. А "рядом" с алгоритмами обычно изучаются структуры данных - без них разработчику (а не кодировщику) - тоже никак.
    Этап изучения языка - это база. Другое дело, что учить "голый" язык бывает скучновато. И это обучение "разбавляют" всякими простенькими задачами -в том числе из области алгоритмизации. Ну, к примеру, поиск максимального элемента в массиве, или простейшие сортировки. Но это не более, чем база. Хотя многие почему-то гордо считают, что это и есть изучение "алгоритмов и структур данных".
    А этап изучения алгоритмов - это уже более высокая ступень совершенствования в профессии.
    Но и изучаются эти две дисциплины по-разному. Изучение языка - это как в школе. Многие вещи надо помнить наизусть. Вы не будете за синтаксисом каждого оператора лазить в Google. Знания языка, умение кодить - это как навык, который должен срабатывать даже во сне. А вот алгоритмы и структуры данных изучаются уже действительно на уровне понимания. Необходимо не запоминать, но понимать, какие они есть, когда они могут оказаться полезными, в чем отличие одного от другого. А при случае - суметь задать умный (!!!) вопрос Google и в море "шлакоответов" найти - и главное понять - правильный.
    Что-до книг. Кормен и Лейзерсон для новичка, действительно, сложноват.
    Но во-первых, есть его "прямая адаптация": Бхаргава А. - Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих - 2017. То же самое, но проще.
    Во-вторых, тот же Кормен написал еще одну книгу: Кормен Алгоритмы. Вводный курс. Вот ее можно уже рекомендовать и для новичка.
    Кроме того, могу порекомендовать сайты, с вполне доступными материалами:
    algolist.manual.ru
    aliev.me/runestone
    И в сети - если совсем лень - есть сегодня куча неплохих видеокурсов. Так что - удачи.
    Ответ написан
    Комментировать
  • Как нарисовать дугу между прямыми Canvas?

    @Aves
    В Javascript есть прекрасная функция atan2, позволяющая непринуждённо получать угол, не заморачиваясь определением знака, с помощью неё легко получить параметры для canvas arc.
    пример на JSBin
    Ответ написан
    7 комментариев
  • Как написать условие генерация точек внутри эллипса?

    0xD34F
    @0xD34F
    Сгенерировали одну координату, через уравнение эллипса нашли ограничения для второй, сгенерировали вторую.

    const WIDTH = 300;
    const HEIGHT = 300;
    const canvas = document.getElementById('canvas');
    canvas.width = WIDTH;
    canvas.height = HEIGHT;
    
    const ctx = canvas.getContext('2d');
    
    const
      X = 100,
      Y = 100,
      A = 90,
      B = 50;
    
    const
      N = 1000,
      SIDE = 4,
      HALF_SIDE = SIDE / 2;
    
    const rand = (min, max) => Math.random() * (max - min) + min;
    
    ctx.beginPath();
    ctx.ellipse(X, Y, B, A, Math.PI / 2, 0, 2 * Math.PI);
    ctx.stroke();
    
    for (let i = 0; i < N; i++) {
      const
        x = rand(-A + HALF_SIDE, A - HALF_SIDE),
        maxAbsY = (B - HALF_SIDE) / A * Math.sqrt(A * A - x * x),
        y = rand(-maxAbsY, maxAbsY);
    
      ctx.beginPath();
      ctx.rect(x + X - HALF_SIDE, y + Y - HALF_SIDE, SIDE, SIDE);
      ctx.stroke();
    }

    https://jsfiddle.net/rLcuy4ko/
    Ответ написан
    1 комментарий
  • Как написать функцию пересчета значений одной шкалы в другую?

    LaRN
    @LaRN
    Senior Developer
    Через 3 точки можно провести параболу, тогда не придется работать с диапазонами.
    Посмотрите например интерполяцию Лагранжа.
    https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D...

    Для вашего кейса Y =1250*X*(X+3.8)

    X - Это исходная шкала
    Y - Это новая шкала

    Y(0) = 0
    Y(0.2) = 1000
    Y(1) = 6000
    Ответ написан
    3 комментария
  • Какой язык программирования можно выучить после java и kotlin?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Уверенно владею основами

    Это типа if-else с циклами городить умеете?
    Для начала просто уверенно освойте хотя бы один язык, до того момента как сможете решать реальные задачи, после этого вопрос "а че дальше" должен отпасть сам.

    P.S. Изначально постановка вопроса типа "Какой язык программирования можно выучить" в корне не верна. Нужно спрашивать "какой яп лучше решает задачу X", но у вас нет никакой задачи, соответственно и ответа нормального вы не получите. Так что учите нормально один язык и не занимайтесь ерундой.
    Ответ написан
    Комментировать
  • Стилизация карты - возможно ли?

    Balya
    @Balya
    Люди и технологии
    Делал вот так:

    $(window).load(function() {
    		$('[class^="ymaps"]').find('[class$="ground-pane"]').css('filter', 'grayscale(100%)');
    	});
    Ответ написан
    Комментировать
  • Как dispatch оказался в props?

    polarlord
    @polarlord
    Потому что в данном примере в connect() не передается mapDispatchToProps() а по-умолчанию его значение это dispatch => ({ dispatch })
    Больше можно почитать в офф. доке https://react-redux.js.org/docs/api#arguments или здесь https://stackoverflow.com/questions/34458261/how-t...
    Ответ написан
    Комментировать
  • Чем лучше и быстрее парсить Amazon на Python?

    @warnerbrowsers
    Вот пример парсинга Amazon на Scrapy, может, пригодится.
    blog.datahut.co/tutorial-how-to-scrape-amazon-usin...
    Ответ написан
    Комментировать
  • Чем лучше и быстрее парсить Amazon на Python?

    polarlord
    @polarlord
    Занимаюсь парсингом Амазона в промышленных масштабах (сотни тысяч страниц в день). Самая большая проблема не в библиотеках, а в том, что Амазон очень умело выявляет попытки парсинга и при этом постоянно совершенствует собственную технику обнаружения таких попыток. Поэтому самый действенный способ - это иметь в своем распоряжении приличный набор качественных прокси (с теми у которых отличается только последняя секция и номер порта долго работать не получится - попадут в черный список на срок от часа до суток, в зависимости от того как интенсивно будете через них слать запросы).
    По поводу библиотек - выбирайте их в соответствии с вашими потребностями, отталкиваясь от объема запросов которые нужно слать. Самые простые - это всякие requests, urllib, pycurl, multycurl. Ими целесообразно пользоваться в однопоточном и синхронном типе парсеров. Но практически всю работу будете писать руками. Если хотите чуть больше мощности и удобства - посмотрите в сторону Grab. Он может многое, в т.ч. удобно работает с прокси и т.д. Если нужен большой объем и скорость - используйте Scrapy. Крутая штука, но со своими правилами. Однако если нужно будет затачивать под себя - в сети много информации по нему.
    С API Амазон можно и нужно работать. Но есть несколько проблем:
    1. Существует лимит на кол-во обращений(тут подробнее, но можно в одном запросе слать до 10-ти ASIN).
    2. Самое неприятное, что по некоторым товарам (при использовании lookup-методов) инфа не приходит либо отличается от оригинала(сайта). Т.е. не нужно полагаться на то, что АПИ будет возвращать информацию полностью идентичную с их сайтом.
    3. Ограничение на кол-во товаров по которым возвращается инфа (при использовании search-методов). 100 товаров. Дальше - только парсинг. Такое ограничение не только у Амазон, у Ebay так же. Без этого - кол-во всяких дропшиперов и прочих посредников просто зашкалило бы.
    Несколько нюансов:
    -Не пытайтесь выдавать себя за Google Bot, ничего хорошего не выйдет, только потратите время.
    -Использование всяких браузерных технологий, наподобие PhantomJS или даже Selenium, толку не принесет. Там к проблеме IP еще добавятся куки и т.п. По скорости будет медленно, для больших объемов не подойдет.
    -Главное, как уже понятно, обойти систему которая определяет ботов и краулеры. Поэтому импровизируйте, экспериментируйте, думайте головой и ищите свои решения. На том конце сидят тоже люди ) В сети масса советов по этому поводу (можете начать с последнего раздела здесь).
    Ответ написан
    5 комментариев
  • Кто разбирался, В чем отличие у Эльбы и Мое дело?

    @evgeny_kobzev
    Кстати, у меня есть спецпредложение для клиентов МоегоДела :) Если вы, также как и мы, являясь платными клиентами МоегоДела, не смогли сдать отчетность в ПФР или ФСС через интернет, либо не смогли сдать 2-НДФЛ (я что-то не вижу у них 2-НДФЛ, оплаченный доступ мне блокируют, а демо просит денег), отпишитесь в этой теме, Эльба сдаст вашу отчетность, заплатит ваши штрафы и вы получите квартал Эльбы бесплатно!
    Ответ написан
    Комментировать
  • Хочу начать бизнес, помогите с выбором электронной бухгалтерии

    un1t
    @un1t
    Я Эльбу юзаю уже год как ИП.

    Достоинства — все просто, не надо самому вникать в тонкости законодательства.

    Недостатки. Один раз в документах для оплаты страховых взносов проставились не те реквизиты (кажется был неверный КДК), пришлось искать самому. Еще был косяк когда Эльба мне говорила, что я могу заплатить налоги до 10 января. Я пошел 3 января и обнаружил, что ни один банк до 10 января не работает, т.к. праздники. Еще для меня недостаток это цена, мне надо в месяц создать всего лишь один акт и один счет, платить за это 400 руб дорогова-то. Поэтому сейчас я плачу только тогда когда нужно заплатить налоги.

    В Эльбе на тарифе который 500 руб, еще можно консультироваться с бухгалтером.

    В целом я доволен Эльбой.

    Про «Мое Дело» ничего сказать не могу.
    Ответ написан
    3 комментария
  • Какой наиболее "ремонтопригодный" движок на PHP для интернет-магазина?

    @Flying
    На практике не пробовал, но предположу что неплохим вариантом будет Sylius. Он изначально и целиком построен на Symfony, поэтому с точки зрения архитектуры у него не должно быть проблем, как, например, в Magento где замешаны ZF1, ZF2 и Symfony + куча собственных наработок. Он весьма активно развивается и вокруг него есть немаленькое community, да и весь спектр бандлов Symfony для него родной. Он бесплатен в Community версии, исходники лежат на GitHub. Есть документация и поддержка через Stack Overflow.
    Ответ написан
    4 комментария