Задать вопрос
  • Можно ли считать JavaScript полноценным языком программирования?

    Adamos
    @Adamos
    Когда-то Голубицкий в Компьютерре прекрасно ответил на весь класс подобных вопросов.
    Там был срач о профессиональной фототехнике и профессионалах-фотографах.
    Так вот, он указал на мужика с обезьянкой на сочинском пляже и тот очевидный факт, что он именно фотографией профессионально зарабатывает, и люди ему за нее платят. Хотя дело тут не в профессиональных навыках мужика и уж тем более не в профессиональности его фототехники. А в обезьянке.
    На JS пишут тонны кода. Будете вы лепить на него свой ярлычок со словом "полноценный" или нет - это исключительно ваши половые трудности. А караван идет.
    Ответ написан
    7 комментариев
  • Каков шанс попадания в группу 2 из 10 человек?

    @TheCalligrapher
    Если идти "длинным" комбинаторным путем, то можно вычислить количество "благоприятных" размещений 10 человек по 10 позициям и разделить их на полное количество размещений (то есть на 10!).

    "Благоприятными" будут размещения

    (1, 2) (...) (...) (...) (...)
    (2, 1) (...) (...) (...) (...)
    (...) (1, 2) (...) (...) (...)
    (...) (2, 1) (...) (...) (...)

    и т.д, всего 10 вариантов. Количество размещений в каждом варианте очевидно равно 8!

    Итого, вероятность равна (10 * 8!) / 10! = 1/9

    Хотя на самом деле ответ 1/9 очевиден. Без потери общности можно считать, что сначала мы помещаем куда-то человека №1, а затем в одно из свободных мест человека №2. Вероятность, что человек №2 окажется в одной группе с человеком №1 очевидно равна 1/9. Другое дело, что следует показать, что в таких "очевидных" рассуждениях мы не теряем общности, т.е. показать, что не нужно еще отдельно рассматривать варианты, когда первым мы размещаем человека №3, вторым - человека №5 и только затем человека №1 и т.д.
    Ответ написан
    9 комментариев
  • Реализация игры "Морской бой" на серверной части?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    I’d
    Row
    Column
    UserId
    State
    Gameid
    И никакого джисона
    Ответ написан
  • Почему PDO выдаёт фатальную ошибку?

    @MaLuTkA_UA
    С помощью подготовленных запросов нельзя вставлять колонки. Прочтите документацию как использовать PDO
    Ответ написан
    Комментировать
  • Почему не правильно закрывается тег в xml?

    scottparker
    @scottparker
    $t1 = $t1->addChild ( 'Товар' );
    вот в этом (этих) переприсваиваниях переменной t1
    Ответ написан
    2 комментария
  • Как на javascript замерить время выполнения функции (в наносекундах)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    точное время выполнения одного вызова функции получить довольно сложно.

    во первых - performance.now возвращает дробное число, поэтому там в принципе может быть наносекундная точность. однако стандарт определяет что точность должна быть 5 микросекунд. Плюс браузеры могут специально занижать точность чтобы бороться с некоторыми атаками.

    поэтому правильно вызывать функцию много раз и считать среднее.
    так же в ноде есть process.hrtime которая дает наносекунды.

    оба этих метода "в лоб" не дадут нормального результата. Почему? потому что в реальности происходит много всего интересного при выполнении кода.

    в движке есть неимоверное количество оптимизаций, и функция вызванная 10 раз будет иметь совершенно другой код чем функция вызванная 100 раз. То же касается и типов параметров - например вы можете передавать целые или дробные числа.
    На одну вашу написанную js-функцию движок сгенерирует несколько функций которые это реализуют. У этих функций может быть совершенно разный код с разной произодительностью.

    Переключение происходит на лету и в общем виде вы не знаете когда это происходит.

    поэтому само по себе замерение скорости "функции" имеет мало смысла, так как там их несколько внутри. Если интересны детали - погуглите JIT, AOT и v8 optimizations.
    Сейчас важно то что есть "холодные" функции которые работают медленее но надеждее и как правило используются сразу и есть "горячие" варианты, которые компилятор начинает использовать когда видит что код вызван много раз, и условия не меняются. "Горячие" работают быстрее.

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

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

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

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

    На практике имеет смысл измерять скорость у функций которые выполняются намного дольше И там где это создает проблемы. погуглите термин "преждевременная оптимизация".
    В этом случае обычно понятно что создает задержки и измерить время работы одного вызова не составляет труда.
    Если же функция работат так быстро что вы не можете понять насколько именно, то вряд ли вам потребуется это выяснять.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это частая ошибка новичков, которые путают транзакции с блокировками.
    Тебе нужно последнее

    вот так и формулируй - как заблокировать таблицу на чтение
    а не какой-то абстрактный "участок кода"
    Ответ написан
    4 комментария
  • Как правильно зарегистровать/лицензировать код?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Все уже сделано. При создании интеллектуальной собственности вы автоматически становитесь единоличным обладателем всех авторских и смежных прав. Никто без вашего письменного разрешения не имеет права ваше произведение даже использовать, не то что распространять

    Главное - иметь возможность доказать авторство. Можете CD с исходниками положить в банковскую ячейку, засвидетельствовав этот факт нотариально.

    Приложите к вашей программе текст лицензионного соглашения (тут может потребоваться консультация юриста)
    Ответ написан
    6 комментариев
  • Как запретить пользователю доступ к php,json файлам через .htaccess, чтобы работали ajax запросы?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    На самом деле никак. Пользователь это браузер, браузер должен через Ajax обращаться к скрипту. Ajax это по сути и есть прямой запрос. Можно поиграться с CORS, но результата будет ноль ибо он не спасет от такого.

    Стоит подумать какую проблему вы пытаетесь решить этим. Что это за скрипт и почему надо его ограничить?
    Ответ написан
    4 комментария
  • Как записать несколько значений в одном поле MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Тебе надо освоить базовые принципы реляционных баз данных
    и освоить такие понятия как "отношение один ко многим" и join

    Поскольку ответ на вопрос "Как записать несколько значений в одном поле MySQL?" звучит так:

    завести ещё одну таблицу, в которую писать нужные значения на разных строках, вместе с id строки из основной таблицы


    после этого делаешь запрос к этой таблице, передавая ид пользователя, и получаешь все его курсы

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. на РНР - точно нельзя.
    2. Если страница открыта, то это совсем не значит, что пользователь её читает. Он может быть в другой программе или вообще на кухне
    3. Идея заведомо дурацкая и не стоит ни одной минуты времени, затраченной на неё.
    Ответ написан
    Комментировать
  • Debian 9. Proftpd и vsFTPd. Почему пользователь может переименовывать и удалять root папки/файлы?

    @galaxy
    Конечно, может. Чтобы удалить или переименовать элемент в директории (будь-то файл или подкаталог), нужны права на запись в саму директорию, т.е. в данном случае на запись в каталог пользователя
    Ответ написан
    5 комментариев
  • Способствуют ли СУБД экономии ресурса жесткого диска по сравнению с хранением (небольшого количества) данных в json-файлах?

    gbg
    @gbg
    Любые ответы на любые вопросы
    мы должны перезаписать весь файл целиком
    Если смотреть с этой стороны, то да, что JSON, что XML - абсолютно дурацкие форматы, когда речь идет о хранении данных в процессе их обработки - стоит поменять одно поле, и нужно переписывать весь хвост файла, так как все записи имеют переменную длину.

    С другой стороны, СУБД хранят свои данные в так называемых страницах, размер которых, как правило, кратен размеру кластера на жестком диске. Следовательно, изменение одной записи приведет только к перезаписи группы страниц, относящейся к этой записи, но не к перезаписи всей БД.

    Однако, с практической точки зрения, важно смотреть не на износ, а на быстродействие. СУБД, например, хранит числа в двоичном представлении, в то время как JSON, XML и прочая требуют преобразования чисел в строки и наоборот при каждой записи и чтении, что естественно, создает дополнительные тормоза и обогрев атмосферы.

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

    То есть да, хранить данные в СУБД оптимальнее и быстрее. Еще там есть схема данных, которая проследит за их целостностью, а также функционал фильтрации и агрегации, которые не придется писать заново.
    Ответ написан
    Комментировать
  • Можно ли запрограммировать самодельное устройство счетчика денег?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    это называется касса)
    Ответ написан
    Комментировать
  • Почему значения всех свойств класса "затираются" в конструкторе?

    BoShurik
    @BoShurik
    Symfony developer
    У вас ошибка
    class Decoder{ 
        private $inputStr; 
        private $pos; 
        private $out; 
        private $length; 
         
        public function __construct(string $str) {
            $this->inputStr = $str;        
            $this->pos = 0; // Было $this->$pos
            $this->out = ''; // Было $this->$out
            $this->length = mb_strlen($str); // Было $this->$length
        }   
        public function decode(): string {
            return $this->out; // // Было $this->$out
        }    
    }


    В вашем случае $this->$length = mb_strlen($str); => $this->null = mb_strlen($str);
    Таким образом return $this->$out; => return $this->null // 6
    Ответ написан
    Комментировать
  • Как открывать вкладку в новом окне?

    like-a-boss
    @like-a-boss
    Признайся,тебяТянетНаКодМужика,ты—программный гей
    Изучить HTML. Атрибут target, отвечающий за открытие ссылки в новом окне, принадлежит тегу a.
    Ответ написан
    5 комментариев
  • Как выполнить поиск по большому json файлу?

    kimono
    @kimono
    Web developer
    А базу данных для этих целей использовать не пробовали?
    Ответ написан
    Комментировать
  • Как защитить скрипт от перепродажи?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не надо жить в позапрошлом веке, когда ты мог в 1801 году изобрести утюг, и продавать его без изменений до 1900-го.
    Мы живем в 21 веке, в котором любая сущность, если перестаёт разиваться, то тут же умирает.

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

    Сейчас вообще другая экономика - сервисная. Продавй не программу, а сервис. Не утюг, а решение проблемы с мятой одеждой. Решай их проблемы. Помогай с освоением, выпускай обновления. И люди к тебе потянутся, а воришки останутся с носом.
    Ответ написан
    Комментировать
  • Как сделать чтобы блоки не красились при наложении?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Не использовать прозрачность.
    Ответ написан
    2 комментария