• Как можно упростить строку кода?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Никак (ну, скобки фигурные не нужны).
    Что вам в ней не нравится?

    Её можно только усложнить, потому что стрелочных функций и forEach в NodeList не было в старых браузерах.
    Ответ написан
    Комментировать
  • Являются ли нормой раскаленные провода кабеля питания материнской платы?

    New_Horizons
    @New_Horizons
    Бред:
    Уверен что они раскаляются? если так, у них бы изоляция поплавилась. Скорее всего это какой-то светодиод их освещает.
    Ответ написан
    4 комментария
  • Что такое Статический и Динамический массив?

    @res2001
    Developer, ex-admin
    Память под статический массив выделяется на стеке. При выходе из области видимости стек очищается и память под массивом освобождается автоматически (не нужна операция освобождения памяти, операция есть, но о ней позаботится компилятор самостоятельно).

    Память для динамического массива выделяется в динамической памяти (в куче) (new[]). Когда массив становится не нужным память должна быть освобождена (delete[]), иначе произойдет утечка памяти.

    В связи с вышеизложенными принципиальными отличиями, есть несколько следствий:
    1. Имя статического массива это не указатель. Это можно понять например сравнив, что возвращает sizeoff() для статического массива и для динамического. Хотя в некоторых ситуациях компилятор ведет себя так, как будто имя статического массива это указатель, например: можно передать имя статического массива в функцию, принимающую указатель.
    2. У динамического массива нет имени. Операция new[] возвращает указатель. Имя есть у указателя.
    3. Внимание! Оба варианта массивов имеют фиксированный размер. Изменять его нельзя!
    То что в std::vector вы можете укладывать кучу элементов постепенно, не указывая нигде предварительного размера является следствием того, что std::vector скрывает от вас всю работу, которую он при этом делает. При добавлении нового элемента, для которого нет места, он выделяет память для нового массива большего размера, копирует старый массив в новый, удаляет старый массив, добавляет новый элемент. Если идет интенсивная работа с push_back(), то это может ОООЧЕНЬ дорого стоить. std::vector - это удобно, но необходимо всегда помнить, за счет чего достигается это удобство. std::vector - это не динамический массив - это обертка над ним для более удобной работы с динамическим массивом.

    В языке Си (C99) есть такая штука как Variable Length Array (VLA) - это статический массив с изменяемым размером. Т.е. вы можете, например, в функции объявить int arr[N], где N будет передаваться в функцию как параметр.
    В стандарте С++ VLA нет! Но, например, тот же gcc с опциями по умолчанию разрешает его использования в С++ проектах. С опциями, заставляющими gcc более жестко следовать стандарту, он может запрещать использовать VLA в С++ проектах. Но не рассчитывайте, что все компиляторы будут так делать. Например микрософтовский компилятор в принципе не умеет в VLA (хотя я уже пару лет не проверял это).
    VLA может показаться классной штукой.
    Но, например, в ядре Линукс в свое время проводили целую компанию по выпиливанию VLA из исходников. Торвальдс высказывался негативно про VLA. Все это при желании можно нагуглить.
    Стоит помнить, что размер стека ограничен, а VLA то же выделяется на стеке. Кроме того выделение памяти для обычного статического массива это просто увеличение счетчика стека на константу (и все, одна операция сложения регистра с константой, а компилятор одной операцией выделяет память для всех переменных в текущей области видимости). С VLA все сложнее с выделением и удалением. Так же sizeof() для обычного статического массива это операция времени компиляции (при выполнении будет уже заранее известная константа), для VLA - это полноценный вызов функции.
    Ответ написан
    1 комментарий
  • Что учесть с точки зрения закона при разработке сайта, позволяющего своим пользователям выполнять денежные переводы друг другу?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Для денежных переводов нужно быть финансовой организацией с соответствующей лицензией. Переводы виртуальных денег (а реаьные деньги, опять же, проще переводить через банк) с выводом получателем в рублях уже подпадают под понятие суррогатов денег, запрещенных в РФ.
    Правильно написали в комментариях про отмывание - пара подобных операций, и Вы идете под уголовную статью.

    Подозреваю, что речь у Вас идет о некоей бирже для продажи чего-либо (товары или услуги), где биржа выступает арбитром-посредником, в этом случае все законно, но за тонкостями формулировок лучше обратитесь к юристам, а не в интернет.
    Ответ написан
    Комментировать
  • Как решить формулу с вводом x на C#?

    @oleg_ods
    Math
    Console
    Convert

    Вот все что Вам нужно знать для решения задачи. Дерзайте!
    Ответ написан
    Комментировать
  • Как мне правильно построить структуру данных для игры?

    @acwartz
    Тут должна быть ваша реклама.
    У вас проблема не с SQLite а целиком со знаниями баз данных и SQL в частности.

    Можно все поместить в одну таблицу(сообщения, достижения, перки, бонусы и многое другое), тогда столбцов у меня выходит порядка 25-27

    Нельзя так, это все разные сущности, которые вы захотите расширять новыми полями и что более важно - связывать их с новыми сущностями, например дать игрокам возможность групповых чатов, или например вложения в сообщения лепить или ещё бог весть что, и не сможете этого сделать после выхода вашего ПО в свет. Придется писать очень замудреные скрипты по миграции данных в т.ч. тех которые и не менялись даже.

    Пользователи это таблица Users где есть поле ID котрое получает значение при вставке записи и это значение не меняется.
    Есть сообщения это таблица Messages.
    где есть Autokey получающее значение при вставке записи, есть поле-индекс DateCreate с датой и временем создания сообщения, есть поле Message - текст сообщения, так же поля От кого (ссылка на Users.ID) и кому (Users.ID)

    Есть ачивки, таблица Achivements:
    Поле UserID (Users.ID) связь с тем кто ачивку получил
    Поле даты и времени получения,
    поле идентификатора ачивки
    поле описания ачивки
    поле с картинкой ачивки

    Бонусы, таблица Bunuses:
    Поле UserID (Users.ID) связь с тем кто бонус получил
    Поле даты и времени получения,
    поле идентификатора бонуса
    поле описания бонуса
    поле с картинкой бонуса
    поле обозначающее позитивный или негативный бонус
    поле даты и времени завершения действия бонуса, если NULL то бонус вечный

    Таблица с перками - Perks:
    Поле UserID (Users.ID) связь с тем кто бонус получил
    Поле даты и времени получения,
    поле идентификатора перка (PerkID)

    это все легко расширяется новыми полями и если надо обрастает новыми связями с новыми изменениями.
    А если вы все в кучу кидаете, на кой вам вообще база данных?
    загоняйте все в json/xml.
    Ответ написан
    1 комментарий
  • Заинклудить из Windows.h только Sleep()?

    @res2001
    Developer, ex-admin
    MSDN говорит, что объявление Sleep() находится в файле synchapi.h. Так что можете подключать этот файл, а не глобальный Windows.h.
    Так же можно просто выдернуть объявление этой функции из synchapi.h и вставить его в свой код:
    void Sleep(DWORD dwMilliseconds);
    После этого можно использовать функцию. Главное не забудьте подключить виндовые библиотеки при сборке. Эта функция находится в Kernel32.lib.
    Ответ написан
    5 комментариев
  • Прыгаю с языка на язык, с одной сферы в другую, как сфокусироваться на одном языке?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Чтобы бросить курить надо просто перестать засовывать сигареты в рот и поджигать их. Тут тот же принцип
    Ответ написан
    Комментировать
  • Почему дедлок или что-то типо того происходит?

    @Voland69
    Result у Task - блокирующая операция. Вот тут подробнее про deadlock

    Я бы сделал так - ожидание завершения async операции в отдельном потоке - по завершению ожидания event, подписчик которого обновить данные на форме.
    Ответ написан
    Комментировать
  • Какие несколько вопросов можно задать человеку, чтобы убедиться, что его знания соответствуют описанию в резюме?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Собеседования показывают только умение проходить собеседования. Единственный верный способ проверить человека - трёхмесячный испытательный срок.
    Ответ написан
    Комментировать
  • Копия винды в винде?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Для windows есть hyper-v он входит в стандартную поставку винды. Активируете его, создаёте виртуальную машину и вперёд.
    Ответ написан
    1 комментарий
  • Есть ли аналог прокси для СУБД?

    DevMan
    @DevMan
    в той или иной мере, решения есть.
    но они частичные, и не сделают вам счастья/полной транскрипции.

    это одна из причин появления dbal и orm, построенных поверх них.
    Ответ написан
    1 комментарий
  • Зачем при чистке ПК вычищать пыль НАЧИСТО?

    profesor08
    @profesor08
    Зачем при чистке ПК вычищать пыль НАЧИСТО?

    Ради эстетического удовольствия.

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

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

    DevMan
    @DevMan
    получение работы - узаконенная форма проституции: вы (в идеале) пытаетесь продать себя подороже.
    работодателю похер на ваши скилы, с огромной колокольни. вам надо убедить его, что вы способны решать его проблемы, ничего более.
    Ответ написан
    1 комментарий
  • Какова ответственность фрилансера за мошеннический сайт?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Как обезопаситься от возможных проблем?

    Не работать с заказчиком-мошенником.

    Не станет ли в таком случае он соучастником?

    Это решает не рандомный дядя из интернета, а суд.
    В вашем случае пойти соучастником легко - вы осознанно пишете сайт для мошенника, заранее понимая что это мошенник. Групповое умышленное мошенничество.
    Ответ написан
    2 комментария
  • Установил ubuntu server без оболочки графической, как зайти в интернет и скачать что-то?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Самый простой путь на десктопе скопировать ссылку на скачивание и на сервере использовать wget
    Ответ написан
    Комментировать
  • Установил ubuntu server без оболочки графической, как зайти в интернет и скачать что-то?

    @q2digger
    никого не трогаю, починяю примус
    Браузеры для командной строки
    lynx
    links2

    Если точно знаете URL того что надо скачать
    wget https://site.com/file.zip
    Ответ написан
    Комментировать
  • Должен ли я запоминать это все?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Расскажу из своей практики:
    У меня всегда в принципе память была "дырявая", сколько бы не тренировал литературой, витаминами и прочим - все отлично работает на ассоциации, но вот через неделю, месяц вспомнить шаблонный момент, который используешь не так часто - вообще не идет в голову.

    Поэтому нашел для себя отличный лайфхак - документирование и сниппеты.

    Пример как выглядит:
    https://github.com/harryheman/JavaScript-Total/blo...

    Записывайте общие идеи, смысловые конструкции, куски кода в гит(блокнот, notion), и когда мозг будет видеть данные, он будет подтягивать нужную информацию - которая потом легко догугливается.
    Ответ написан
    Комментировать
  • Должен ли бэкенд разработчик разрабатывать админку?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    sarcasm_on
    Да, в статье 99 Трудового кодекса так и написано
    2)... бэк енд должен самостоятельно сделать админку при разработке бэк енд
    8)... бэк енд разработчик должен сам понять и не утруждая заказчика сделать админку
    sarcasm_off

    Автор, проснись! Что за глупые вопросы? Какой «должен»? Как договоришься, так и будет. Конечно, заказчик хочет навалить на исполнителя побольше за те же деньги.
    Ответ написан
    Комментировать