Задать вопрос
  • На каком я сейчас уровне?

    1. Не умеешь пользоваться гитом, тк загрузил файлы через Upload
    2. Код невозможно проверить, тк ты закинул только cs файлы, но не приложил не менее важный csproj - не разбираешься, как собирается проект.
    3. Про свич кейс тебе уже сказали в комменте.
    Про остальное мало что можно сказать - код самый обычный, на три с минусом, не очень хороший, но и не слишком ужасный.
    С архитектурой плохо, тк детали реализации смешаны с бизнес-правилами.
    По алгоритмам нельзя оценить, тк никаких сложных алгоритмов в твоём проекте нет.

    Уровень, имхо: стажёр/младший разработчик(обязательно под менторством и наблюдением более опытного)
    Ответ написан
    5 комментариев
  • Законны ли самостоятельная установка и использование OEM Windows?

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

    Производитель софта может в лицензии написать что угодно, лишь бы оно не противоречило законам, даже если это противоречит здравому смыслу. К примеру требовать каждое утро в 9 часов, стоя на коленях, произносить хвалу производителю, добавляя 'тубала-пубала' после каждого слова, почесывая левой рукой правую пятку, три раза... вы будете это делать?

    Вы в курсе что по лицензии майкрософт нельзя пользоваться компьютером (рабочими и домашними ревизиями) одновременно двум и более человек? вот буквально, положили на клавиатуру руки двое - уже нарушители. Точно помню как 'с пеной у рта' представитель майкрософт хаял решение компании ibik за возможность работать на windows сразу нескольким пользователям, да еще и лучше и удобнее чем штатные терминальные решения, там звучали такие бредовые выводы типа - запрещены даже компьютерные игры в split screen.

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

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

    DanArst
    @DanArst Куратор тега JavaScript
    Гриффиндор в моде при любой погоде!
    var elem = document.querySelector("[data-action='anime']");
    elem.remove();
    Ответ написан
    1 комментарий
  • Как минимизировать риски атак и взлома сайта?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Дома с переломом ноги
    Сделать бэкап сайта и поместить его так, чтобы до него было не добраться (до бэкапа).
    Просканировать на уязвимости - в тырнете полно сканеров сайтов на WP
    Почаще просматривать логи на предмет подозрительной активности
    Ответ написан
    Комментировать
  • Соответствует ли данный код хорошим практикам?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вам больше стоит обеспокоиться тем, что вы запросы формируете интерполяцией строк.
    Ответ написан
    1 комментарий
  • Где хранятся пароли от Google Chrome?

    Adler_lug
    @Adler_lug
    Login Data это обычный файл БД Sqlite3, который открывается без проблем. Пароль там хранится в зашифрованном виде. До 80 версии шифровался просто DPAPI (т.е. расшифровать можно было только под той учетной записью Windows, под которой он был сохранен). Сейчас алгоритм немного изменился (на GitHub полно примеров), но смысл тот же.
    Так почти у всех Chrome подобных браузерах. У Яндекс.Браузер свой алгоритм хранения и расшифровать аналогичным способом его нельзя.
    Ответ написан
    5 комментариев
  • Почему удаление папки из Temp валит систему?

    HemulGM
    @HemulGM Куратор тега Windows
    Delphi Developer, сис. админ
    Потому что у вас там по какой-то причине находится файл с виртуальным диском, которым по всей видимости вы пользуетесь.
    Ответ написан
    1 комментарий
  • Как сделать 2 активные учетные записи на винде?

    @Drno
    Можно. Залогиньтесь под первым пользователем, запустите программу
    Потом нажмите сменить пользователя и зайдите под вторым
    Ответ написан
    6 комментариев
  • Теоретически возможно ли дать регулярное выражение, которое правильно принимает 29 февраля, только тогда, когда данный год действительно високосный?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    распределение високосных годов:

    год, номер которого кратен 400, — високосный;
    остальные годы, номер которых кратен 100, — невисокосные (например, годы 1700, 1800, 1900, 2100, 2200, 2300);
    остальные годы, номер которых кратен 4, — високосные[5].
    все остальные годы — невисокосные.
    Ответ написан
    Комментировать
  • Как зашитить информацию на виртуальном машине находящийся на облаке?

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

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

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

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

    Привожу пример простого и дешевого решения для обывателя - любой хостинг, хоть lxc/openvz, (т.е. дающий абсолютный контроль над файлами хостеру), и запуск внутри виртуальной машины, например на основе user mode linux, это буквально ядро linux в виде бинарника (не требует ничего, ни модулей ядра ни поддержки виртуализации, и при этом не замедляет работу), в который можно зашить команды запуска (откуда взять загрузчик, где лежит образ диска, параметры шифрования и т.п.), пароль вводится в консоли ssh загрузчика (initramfs гостевой машины). Все запускаемые бинарники должны размещаться не на сервере а подгружаться с надежного клиента, управляющего запуском. Еще, для kvm были патчи онлайн шифрования оперативной памяти, да ценой очень низкой скорости, но стоимость взлома такой машины становится запредельной.
    --------------------------------------------------------------
    Правильный способ, дающий очень высокие гарантии - для ввода пароля в датацентр для включения машины катается специальный надежный человек, который носит с собой часть оборудования (консоль и диск с загрузчиком) и проводит минимальный визуальный контроль чтобы отследить вскрытие и замену железа (пломбы, сейфы и системы независимого онлайн мониторинга доступа, т.е. буквально вебкамеры и датчики вскрытия со своим каналом в интернет и источником питания), само собой серверное железо тут должно быть не от хостера а от клиента.
    И такие услуги датацентры предоставляют.

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Просто переводите числа от 0 до 366 в систему счисления с основанием 36.
    010 = 036
    ...
    910 = 936
    1010 = a36
    ...
    3510 = z36
    3610 = 1036
    ...
    217678233510 = zzzzzz36
    Ответ написан
    Комментировать
  • Какими навыками должен обладать этичный хакер?

    GavriKos
    @GavriKos
    Навыками гуглежа. В первую очередь.
    А во вторую - навыками анализа полученной информации
    Ответ написан
    Комментировать
  • Почему буквенные клавиши на клавиатуре расположены косо, а не прямо, как сетка?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Я слышал что наоборот, это не столько для удобства, сколько является просто наследием печатных машинок и создано для того, чтобы не сделать опечатку.


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

    Где-то читал, что такое расположение клавиш наоборот ухудшает скорость набора, клавиши специально

    Потенциальная скорость набора на клавиатуре в любом случае значительно превышает потенциальную скорость на любой печатной машинке. А нюансы уже зависят лично от твоих способностей, и печать свыше стандартных 200-300 символов в минуту уже доступна далеко не каждому, ибо не несет заметных преимуществ при наборе.

    Клавиатура и положение клавиш на ней это уже дело личной привычки. Но я думаю что свои 400-450 я смогу набрать почти на любой клавиатуре, надо просто привыкнуть. И там больше привыкаешь к спец-клавишам, чем к буквам
    Ответ написан
    Комментировать
  • Как начать Lua?

    BacCM
    @BacCM
    C++ почти с рождения
    tylerneylon.com/a/learn-lua

    А потом сюда

    https://love2d.org/

    там с примерами - можно сразу игрушку писать простенькую, хоть на ПК хоть на андроид
    Ответ написан
    Комментировать
  • Насколько законно парсить каталог товаров магазина?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Каталог товаров является публичной офертой неопределенному кругу лиц. Соответственно - вы можете с ней ознакомиться в том числе парсингом каталога.
    Единственно нужно знать меру - если вы массой своих запросов валите сервер, - вы затрудняете доступ других к ее ознакомлению, и можете нанести прямой ущерб владельцу. Скажем другие не могут зайти в каталог или оплатить товар, пока ваш классный многопоточный скрипт грузит сервер...
    А эти деяния могут подпадать вплоть до норм уголовного кодекса.
    Ответ написан
    Комментировать
  • Сможете оценить качество верстки?

    @igoryusha22
    1. Нет поддержки ретины.
    2. Текст в параграфы.
    3. Без сокращений в классах.

    Как от пользователя - ховеры неприятные, темный на темном, белый на темном. Глазам больно.
    Ответ написан
    Комментировать
  • Как округлить значение?

    Берёшь и округляешь каждый отдельный компонент через Math.Round
    Ответ написан
    Комментировать
  • Как получить чистую копию объекта с массивами?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    name и age указывают на массивы, а они, как и любые объекты в JavaScript, передаются «по ссылке», т.е. передаётся указатель на место в памяти, где лежит массив. Прочитайте по ссылке «по ссылке» : ) — там действительно подробно и с картинками описывают проблему.

    Итого в this.save оказываются те же самые массивы, что и в obj. Меняете там, меняется тут, и наоборот. Разорвать порочную связь можно, например, грубоватым и не самым эффективным способом:
    const obj_copy = JSON.parse(JSON.stringify( obj ));
    // создали действительно независимую «глубокую копию» объекта
    Для нехитрого объекта без функций-методов и всяких Map/Set'ов это годится.
    Ответ написан
    2 комментария
  • Правильно ли я понимаю что такое Язык программирования?

    GavriKos
    @GavriKos
    Нет, неправильно.
    Во первых - язык это не текстовый файл. Это набор правил (синтаксических, семантических), лексем и прочего.
    Во вторых процесс компиляции не так выглядит совершенно. Компилятор никаких переменных не создает. Более того - там еще есть трансляторы, линковщики, валидаторы и прочее.

    Ну и да, на ассемблере компиляторы давно не пишут.

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

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

    Это не совсем логические операторы.
    Это побитовые операторы, и операции они проводят над битами.
    Например (в двоичной системе)
    100 | 001 = 101
    100 & 111 = 100
    110 ^ 011 = 101

    А про то, почему именно такой результат при работе с отрицательными числами - это тебе дз
    Ответ написан
    1 комментарий