Задать вопрос
  • Возможна ли sql инъекция?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Возможна.

    Почему не стоит использовать mysql_escape_string
    https://www.php.net/mysql_escape_string
    Warning
    This function was deprecated in PHP 4.3.0


    https://www.gosecure.it/blog/art/483/sec/mysql_esc...

    Не хотите SQL-инъекций используйте подготовленные выражения (prepared statements)
    https://www.php.net/manual/en/mysqli.quickstart.pr...

    а был бы с нами FanatPHP он бы ещё дал ссылку почитать https://phpfaq.ru/mysql/slashes
    Ответ написан
    1 комментарий
  • Почему выходит ошибка Each child in a list should have a unique "key" prop?

    Alexandroppolus
    @Alexandroppolus
    кодир
    key надо выставлять не для Crumb, а для фрагмента:
    <React.Fragment key={...}>
        {idx >= 1 && <div> / </div>}
        <Crumb path={crumb.path} title={crumb.title} style={styles.crumbs} />
    </React.Fragment>


    ну и Math.random() для key - худшее, что ты мог придумать. Наверняка у crumb есть какой-нибудь id, вот его и надо использовать. Или, например, path, title, - что-то из них ведь уникальное, не повторяется в массиве crumbs?
    на крайний случай можно idx
    Ответ написан
    8 комментариев
  • На сколько сложно создать офлайн генератор иконок?

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

    Гораздо выгоднее будет просто купить подписку на freepik
    Ответ написан
    Комментировать
  • Где можно найти бумажную версию книги "C.Petzold - Programming Windows 5th edition"?

    @alexalexes
    С e-bay через посредников заказывать не вариант, т.к. за доставку берут слишком много.

    Добро пожаловать в СССР. Именно так и доставать. Книга не для массового рынка.
    Либо использовать PDF: просто читать с электронной книжки, либо напечатать на принтере, либо иметь знакомого в типографии, который вам самиздатом ее напечатает с минимальными издержками.
    Ответ написан
    4 комментария
  • Как redux определяет, какие компоненты надо обновить?

    Alexandroppolus
    @Alexandroppolus
    кодир
    useSelector внутри себя использует хук useSyncExternalStore (точнее, хук, аналогичный ему)

    вкратце суть работы: из редуксового контекста (того самого, который использован внутри Provider) достается редуксовый же стор. Этот стор постоянный, но в нем есть состояние - объект, ссылка на который меняется при каждом изменении, ибо иммутабельность. Подписываемся на изменение этой ссылки (т.е. по факту на изменение любой части состояния), у стора есть метод subscribe для этого. При срабатывании эвента забираем наши данные селектором, и если результат селектора отличается от предыдущего раза, значит изменились именно наши данные и надо пнуть компонент, чтобы обновился, это уже useSyncExternalStore знает как сделать.
    Ответ написан
    Комментировать
  • Как сказать «ничего не делаем» используя условные операторы?

    @Akina
    Сетевой и системный админ, SQL-программист.
    в случае совпадения, указать "ничего не делаем"

    Реверсируйте условие и ничего не делайте в случае НЕсовпадения, т.е. в ELSE. Которое в этом случае можно вообще не писать.
    Ответ написан
    Комментировать
  • Можно ли в mysql хранить 200 колонок, для 10+млн записей?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Смотрим здесь. Получаем для обычного INT 4 байта на одно число, для BIGINT 8 байт.
    200 * 4 * 10'000'000 = 8'000'000'000 или 8Gb.
    200 * 8 * 10'000'000 = 16'000'000'000 или 16Gb.
    По нынешним меркам сущие пустяки.
    Хранить, конечно же, нужно в нормальной форме, иначе суммирование придётся делать в приложении.
    Ответ написан
    3 комментария
  • Как гуглу удаётся работать так быстро? Какая у него память?

    @rPman
    Во первых, количество результатов не гарантирует что это действительно так... это приблизительная оценка, эжто видно особенно когда начинаешь искать редкие вещи, и количество результатов - десятки страниц, уже на пятой результаты заканчиваются.

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

    В третьих, запрос может быть распределенным на несколько машин, т.е. не каждый запрос на свою машину, это само собой, а именно один пользовательский запрос напрягает одновременно целый кластер. Мало того, я почти на 99% уверен что у гугла свое железо используется по полной (с момента как они стали активно использовать ИИ в своих алгоритмах поиска и построения индексов, уже лезт 10 гугл свои TPU пилит, минимум третья итерация, и в задачах ИИ они на пару порядков эффективнее GPU).

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

    Про софт - я не знаю, статей про это не помню, но нисколько не сомневаюсь, что такая компания как гугл могут запилить свой софт, работающий с хранилищем данных немного иначе чем это делают классические linux/win, когда каждый запрос к диску делает чуть ли не два копирования в оперативную память (это еще на уровне posix, затем пользовательский софт сериализацией занимается, это еще копирования), занимая ценный кэш процессора, но физически данные с дисков могут быть прочитаны в нужную область памяти вообще минуя процессор, как минимум nvme это могут штатно, так как висят на pci-e шине, да и sata точно есть механизмы, которые с помощью старого DMA могут копировать данные с указанных портов напрямую в области в памяти, точно читал о таких разработках в linux но до практически потрогать не доходило.

    p.s. первое что нагуглил по теме dma для nvme, обсуждают именно методы реализации инструментария в linux чтобы удобнее и быстрее с этим было работать из userspace (а не уровня драйверов)

    про tensor processing unit у них оказывается уже 5-ая ревизия должна быть (вот сравнение 4-ой ревизии, пишут про 20-кратное понижение carbon emission что бы это не значило)
    Ответ написан
    5 комментариев
  • Как гуглу удаётся работать так быстро? Какая у него память?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - Многоканальная оперативная память (2, 4, 8 итд. каналов), этот процесс в контексте оперативной памяти обычно связан с такими технологиями и концепциями, как двухканальный (dual-channel), трехканальный (triple-channel) и многоканальный (multi-channel) режимы работы памяти.

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

    - В Linux так же имеется несколько способов организовать параллельное чтение и запись данных с использованием уже с жестких дисков (опять же, по примеру торрентов), чтобы увеличить производительность и надежность системы хранения данных. Эти методы включают в себя RAID-массивы, LVM (Logical Volume Manager) и файловые системы, специально разработанные для работы в распределенных и параллельных средах.
    Ответ написан
    Комментировать
  • Какие необходимые pet-project'ы нужно сделать на каждом этапе roadmap.sh/frontend чтобы стать грамотным девелопером?

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

    Например, https - то результат решения определённой проблемы. Но некоторые разработчики не до конца понимают, зачем там нужна буква s, поэтому очень часто можно увидеть ошибки сертификатов в локальных сетях. Например, gitlab тупо не работает без сертификата даже на localhost.
    Ответ написан
    Комментировать
  • Зачем нужен блок инструкций без управляющей инструкции?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    В изначальных исходниках там TypeScript. Вы смотрите уже скомпилированный код. В исходниках местами все обернуто в разные условия, завязанные на__DEV__:
    export function setExtraStackFrame(stack: null | string): void {
      if (__DEV__) {
        currentExtraStackFrame = stack;
      }
    }

    Когда происходила сборка кода, который вы смотрите, вероятно __DEV__ был true, условие было опущено, т.к. оно всегда выполняется, а скобки остались как артефакт. Скорее всего транспилятор TS не проверяет весь контекст, и чтобы ничего не сломать случайно, оставляет скобки на своих местах.
    Ответ написан
    2 комментария
  • Сколько памяти нужно для cdn?

    @Drno
    Vds??

    Несколько серверных стоек в ДЦ…

    Но по факту зависит от количества юзеров и насколько криво написан софт
    Ответ написан
  • Где и как хранить файлы пользователей?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Это вообще не вопрос. Реальная проблема в том, как проверить, сколько физического места занимает папка пользователей "users"?
    Во первых если это реальная проблема - почему вопрос совершенно о другом?

    Во вторых - у вас в примере виндовый диск, что как бы странно для хостинга. В случае линуха все решается либо командой du -sm /your/directory/* либо установкой ncdu, который сильно быстрее, и соответственно что-то типа ncdu /your/directory/.
    Ответ написан
    7 комментариев
  • На сколько популярно и корректно хранить данные в столбце в виде JSON строки?

    @Akina
    Сетевой и системный админ, SQL-программист.
    На сколько популярно и корректно хранить данные в столбце в виде JSON строки?

    А это зависит от того, что с этими данными делать.

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

    xez
    @xez
    TL Junior Roo
    В чём дело

    Древний аккумулятор с древним контроллером на древнем устройстве.

    как откалибровать аккумулятор

    никак

    Как восстановить ёмкость

    никак

    Просто нужно заменить аккумулятор.
    Ответ написан
    7 комментариев
  • Совместимость сокета для процессоров Intel Core i?

    Ну давай посмотрим.
    Intel Core i5-1135G7: Socket BGA1449
    Intel Core i7-920: Socket LGA1366

    Начнём с того что твой i5 вообще ноутбучный и он впаивается в материнскую плату.
    Заканчиваем тем, что цифры разные - значит количество контактов разное и даже если вдруг опечатка и у тебя какой-то другой i5 11XX, то всё равно ничего не выйдет.

    Про поддержку на уровне чипсета и биоса промолчу.
    Ответ написан
    Комментировать
  • Как передать данные в exe файл на C# при загрузке?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    1. Передавать имя пользователя в аргументах к программе, но тогда нужно уметь правильно запускать. Т.е. нужен установщик, который ярлык правильно настроит
    2. Отправлять вместе с программой файл конфигурации, из которого нужно читать имя пользователя.
    3. Скомпилировать с уже встроенным именем.

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

    Также появилась идея о каком-нибудь шаблонном движке (по типу razor), который в потоковой обработке будет отправлять байты программы и в нужном месте подставит строку имени, но не знаю существует такое решение или нет (скорее нет)
    Ответ написан
  • Сложно ли написать приложение включающее голосовое сообщение на все входящие вне списка контактов?

    @d-stream
    Готовые решения - не подаю, но...
    Сейчас операторы предлагают бесплатные услуги голосовых помощников. Вот там как раз всё есть, включая распознавание речи и отправку клиенту текстового журнала беседы.
    Ответ написан
    Комментировать
  • Как импортировать данные из .docx файла в JavaScript логику?

    Vindicar
    @Vindicar
    RTFM!
    Технически, DOCX можно прочитать - это ZIP архив, в котором лежат XMLки. Библиотека для чтения ZIP архивов под JS (в т.ч. браузерный) есть.
    Но реально проще будет использовать расширенную поиск-замену в Word, чтобы заменить красный цвет на уникальный символ или комбинацию символов перед текстом. Комбинация ^& означает "искомый текст", т.е. приведённый ниже пример вставляет знак процента перед текстом, написанным красным цветом.
    659eee532a796683149306.png
    А потом уже вставить в веб-страницу текст без форматирования и разбирать его.
    Ответ написан
    Комментировать