Задать вопрос
  • Нужна ли математика Python,Java программисту?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Получить работу - возможно. Это зависит от того кто принимает на работу и как у вас подвешен язык.
    А вот быть полноценным программистом не понимая основ - это да, не получится.
    Так или иначе, но незнание математики не позволит эффективно решать задаи.
    Нужно, к примеру, понимать основы анализа, чтобы ориентироваться в темах областей оределения, областей значения функций. Нужно понимать чем отличаются рациональные от иррациональных чисел, понимать что такое интегрированиеи дифференцирование - на этом напрямую завязаны практически все явления реального мира (скорость, ускорение, движение...)
    Нужно понимать пределы, комплексные числа, векторную алгебру. Нужно понимать как умножаются матрицы...

    Постоянно в практике сталкиваюсь с задачами, где понимание таких вещей просто обязательно.
    К примеру простая задача - определить с какой стороны от маршрута на карте дана точка, слева или справа. Без векторной арифметики вы просто потеряете кучу времени! Постоянно нужно что-то нормализовывать. усреднять, считать мелианы и скользящие средние, аггрегировать и интеполировать. ричем, к примеру, в геймдеве аще встречадются одн направления, в финтехе немного дургие, но встречается так или иначе всё.

    Разбирайтесь в математике. Быть программистом - это учиться всю жизнь. Нужно воспитать в себе интерес к осваиванию новых парадигм и принципов.
    Ответ написан
    Комментировать
  • Почему функция sort не сортирует, а выдает bool?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Наверное потому что она так устроена? И это поведение описано в документации?
    Ответ написан
    3 комментария
  • Можно ли в PHP передать управление в другой класс?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    class ResponseObject
    {
        public static function parse(object $data): ResponseObject1|ResponseObject2|ResponseObject3|ResponseObject4
        {
            switch ($data->type) {
                case 'type1':
                    return new ResponseObject1($data);
                case 'type2':
                    return new ResponseObject2($data);
                case 'type3':
                    return new ResponseObject3($data);
                case 'type4':
                    return new ResponseObject4($data); 
            }
        }
    }
    Ответ написан
    3 комментария
  • Как в mysql ускорить запрос с GROUP BY?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT *
      FROM `posts`
      WHERE `id` IN (
        SELECT `id_post`
          FROM `tags_rel`
          WHERE `id_tag` IN (1,2,3)
        ) AND `status` = 1
      LIMIT 0, 50
    Ответ написан
  • Возможно ли скачать не только лендинг а сразу и бекенд сайта?

    vabka
    @vabka Куратор тега Веб-разработка
    Попробую сказать языком аналогий.
    Представь, что ты подписался на какой-то журнал (бумажный).

    Тогда "скачать фронт" - это всё равно что сделать скан журнала, который тебе пришёл по почте.
    А вот "скачать бэк" - это всё равно что получить копию издательства и полиграфии, вместе с людьми которые там работают.

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

    Но в общем случае это невозможно.
    Ответ написан
    Комментировать
  • Возможно ли скачать не только лендинг а сразу и бекенд сайта?

    Newto
    @Newto
    Ну конечно можно. Звоните владельцу сайта, говорите "алло, дайте мне доступ к вашему серверу". Он вам отвечает - "Да, конечно!" и высылает root ssh доступ. Заходите на сервак и всё скачиваете. А потом еще раз перезваниваете и просите к трубке админа, что бы он вам объяснил как это всё установить, что бы заработало. Profit! :)

    А если серьёзно, то есть в вебе два ключевых значения -- "frontend" и "backend". Вот "frontend" это всё то, к чему имеет доступ, непосредственно, ваш браузер. Это html код, картинки, скрипты(на разных языках) и css стили(про всякие xml и прочее говорить не буду даже). А всё то, что работает с базами данных, делает всякие хитрые операции на СЕРВЕРНОЙ стороне, то есть на БЭКЕ, всегда скрыто от браузера, т.е. от вашего непосредственного доступа. Браузер отображает лишь результат, который БЭК посылает на ФРОНТ, т.е. в ваш браузер с сервера. Поэтому никакими программами (если это не супер-мега-хакерская прилага из для взлома особо слабозащищенных и плохо написанных сайтов) вы бэкенд не скачаете.
    Ответ написан
    Комментировать
  • Выбор архитектуры: web или desktop?

    @rPman
    Web - на два порядка проще (читай дешевле) для разработки за счет повышенного требования ресурсов на клиентской стороне.

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

    И главное, из веб приложения достаточно легко (например с помощью electron) можно сделать десктопное приложение.

    p.s. как бы я не нелюбил веб, который тянут даже туда где не надо, но его плюсы неоспоримы а страдающие клиенты от тормозов приложений, требующих топовое железо для простого чата... кто нас слушает?

    Кстати, один момент, тормозные веб приложения это не потому что веб такой плохой, это потому что разработчики ленятся делать все как следует. Рынок заполонили низкокачественные разработчики на основе веб. Помни об этом!
    Ответ написан
    Комментировать
  • Как лучше всего идентифицировать id отзыва для отправки на сервер?

    Dr_Elvis
    @Dr_Elvis
    В гугле забанен
    на бекэнде дополнительно проверяйте, что этот отзыв принадлежит этому логину.
    Ответ написан
    1 комментарий
  • Какая сложность данного алгоритма?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Сложность: простой.

    Если вам нужна ассимптотическая временная сложность - то O(n).
    Эта сложность меряется в зависимости от размера входных данных. Какие у вас входные данные-то? Строка slug, url.

    Эти данные конкатенируются (O(n)) и передаются библиотеке. До 10 раз. Библиотека их парсит, делает dns запрос, открывает сетевое подключение к web серверу, получает данные, парсит ответ. Там тоже есть линейная, видимо, зависимость от длины строки. Ее надо распарсить, записать в сетевой сокет и так далее. Вот получение данных по уже установленному http соединению от длины строки не зависит, поэтому в сложности алгоритма не учавствует.
    Ответ написан
    1 комментарий
  • Websocket с чего начать изучение?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Webhook - это принцип работы через запросы к твоему http-серверу, а не через вебсокеты.

    Т.е. тебе не надо для этой задачи изучать вебсокеты. Тебе надо изучать создание веб-сервера. А лучше - основы программирования, что такое сервер, http протокол и т.д. Но, в первую очередь, всё же стоит изучить задачу.
    Ответ написан
    1 комментарий
  • Круглые кавычки Regex, что изменить?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    $re = '/(?P<shortcode>\[(?P<name>[\w\-]{3,})(?:\s+(?P<attrs>[\w\d,\s="\'\-+#%!~`&.:\/()?|]+))?\](?:(?P<content>[\w\d\s,!@#$%^&*(\\)="\'\-+&.:\/?|<>]+)(?:\[\/[\w\-\_]+\]))?)/m';

    Значится где-то вооо-о-о-о-ооо так!
    Ответ написан
    1 комментарий
  • Как практиковаться в программировании?

    DevMan
    @DevMan
    да берешь и делаешь.
    походу разгребаешь возникшие проблемы/вопросы.

    волшебных кнопки/рецептов не существует.
    Ответ написан
    Комментировать
  • Возможно ли в PHP по заголовкам точно определить устройство и Браузер?

    И да и нет.
    Вернее не совсем.
    В 100% случаев это не определить, тк содержимое заголовка клиент может менять
    Но если это исключить, то большинство случаев обработать можно, и такую задачу уже много раз решали.
    Ответ написан
    Комментировать
  • Как структурировать бд?

    RNSNS
    @RNSNS
    Symfony Backend developer
    Попробуйте создать ещё одну таблицу, которая будет называться product_coutry
    В ней должно быть только 2 поля product_id и country_id
    Так и создаются связи M2M (ManyToMany)
    Ответ написан
  • Как структурировать бд?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Отношение Many-to-Many строится через промежуточную таблицу связи, поля которой ссылаются на две основные таблицы.
    products_countries (product_id, country_id)
    Ответ написан
  • Есть ли способ добавить свои методы не трогая модель в laravel?

    RNSNS
    @RNSNS
    Symfony Backend developer
    На самом деле это очень легко

    #src/Model/ProductProxy.php
    <?php
    
    namespace App\Model;
    
    use ВашПакет\Product;
    
    class ProductProxy extends Product
    {
        public function newMethod(): void
        {
            echo "Hello World!";
        }
    }
    Ответ написан
    Комментировать
  • Как правильно назвать pivot-таблицу при отношении многие ко многим в laravel?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Правильный, с точки зрения ларавел, вариант указан в документации, которую ты почему-то не стал читать.
    Ответ написан
    7 комментариев
  • Почему спидтест дает 100mbit/s а bittorrent 1.3?

    @rPman
    Спидтест нужно смотреть, выбрав другую страну.
    Торенты - одни из самых нестабильных (слабо прогнозируемых) методов проверки скорости.

    Но главное - в подавляющем большинстве случаев интернет можно поделить на три зоны - твой город/область, страна, мир. Скорость до узлов (сидов загружаемого торента) в этих зонах отличается с понижением, самая быстрая (обычно 100мбит или максимум от провайдера) это город/область, заметно медленнее - несколько десятков мегабит это страна, и считанные мегабиты - мир.

    Если твои сиды (хотя бы один из них) попадает в зону твоего города или твоего провайдера, то скорость будет максимальной, иначе будет ограничена скоростью до зоны (вне зависимости от количества сидов в этой зоне, чаще всего).

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

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Массив дат можно вынести наружу, что
    1) не будет пересоздавать переменную каждый раз.
    2) сделает решение более гибким
    let a =  [
       {
          "code":"CL",
          "tnved10":"7318158100",
          "2019":"33",
          "2020":"0.00",
          "2021":"0.00"
       },
       {
          "code":"CN",
          "tnved10":"7318158100",
          "2019":"7540001.66",
          "2020":"8164813.34",
          "2021":"20980774.64"
       }]
    let b = a.reduce((acc, current) => {
      [2019, 2020, 2021].forEach(i => acc[i] += Number(current[i]))
      return acc
    }, {'2019': 0, '2020': 0, '2021': 0});
    console.log(b)


    Типа так:
    const years = [2019, 2020, 2021]
    let b = a.reduce((acc, current) => {
      years.forEach(i => acc[i] += Number(current[i]))
      return acc
    }, {'2019': 0, '2020': 0, '2021': 0});


    Можно ещё сократить, но уже в ущерб читаемости.
    Или можно убрать инициализацию начального значения аккумулятора, перенеся проверку ключа на то, что это год внутрь. Правда это несколько увеличит код внутри reduce, но сделает более гибким код.
    Ответ написан
    Комментировать