Задать вопрос
  • Актуальна ли информационная безопасность?

    @nApoBo3
    Заходить нужно туда куда вам интересно.
    ИБ это настолько широкий в различных интерпретациях термин, что сначала его вам нужно узко переопределить.
    Формально ИБ это работа в первую очередь документарного характера, например описание процедур приведения системы в соответствие с законом о защите персональных данных, или в соответствие с требованиями к гостайне, банковской тайне и т.д.
    В этой плоскости, ИБ вообще не техническая специальность, требующая некоторых специальных технических знаний. Это документы.
    Есть другая интерпретация данного термина, это тестирование на проникновение, защита приложений, защита сетей, т.е. практическая безопасность сервисов, приложений, хранилищ данных, сетей, каналов передачи и т.д.
    Эта интерпретация как правило не имеет прозрачной системы обучения, не стандартизирована и очень очень широкая.

    Например защита каналов передачи данных, это и физическая защита, и инженерная с точки зрения строительства, и сетевые администраторы с VNP тоннелями, и системные администраторы с https, и математики с шифрованием, и физики с квантовыми эффектами. А еще это куча административных мер, по защите проекта прокладки канала, поскольку в проект могут быть внесены не санкционированные изменения, и проверка реальных работ по прокладке, проектным, а еще различное лицензирование на данные работы и оборудование и т.д. и т.п.

    Если вы хотите изучать "практическую" ИБ, вам нужно сначала глубоко изучить более узкую область с уклоном на потенциальные уязвимости, например системной и сетевое администрирование, разработку приложений и веб сервисов, особенности функционирования процессоров и шифрования, работы генераторов псевдослучайных чисел и математику.
    Ответ написан
    Комментировать
  • На чём писать мобильное приложение для android?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    1. Ключевое в написании приложения на Андроид - собственно Android SDK, писать можно на многих языках. Самый распространенный для приложений - Java, активно растет и продвигается Kotlin. Есть куча кросплатформенных решений типа Xamarin и React. C# и соответственно Unity используют больше не для приложений, а для игр, хотя, конечно, никто не запрещает писать и приложения.
    2. Для приложений - Android Studio, для игр - Unity.
    3. SQLite используется как внутренняя БД приложения, Вы же разрабатываете клиент-серверное приложение, то есть нужно писать отдельно само приложение, отдельно его серверную часть, которая уже и будет общаться с MySQL сайта. Как именно связать между собой клиент и сервер - есть куча разных способов. Прямые запросы к MySQL, конечно, использовать не надо.
    4. Как писал выше, есть кроссплатформенные решения, но в целом для каждой платформы надо писать свое приложение, свои особенности везде есть. Так что готовьтесь переписывать и поддерживать соответственно два приложения. К слову, базовый синтаксис Swift (на нем пишут для iOS) мало чем отличается от тех же Java или C#, большей проблемой может стать необходимость наличия MacOS для собственно сборки приложения и публикации его в магазине.
    Ответ написан
    Комментировать
  • Можно ли парсить сайт когда он заблокирован?

    @Drno
    А почему нельзя то? Парсите на здоровье.
    Проверьте открывается ли сайт с браузера с этой машины. Если блокируется - значит через vpn или проксю
    Ответ написан
    Комментировать
  • Когда следует использовать свойства, а когда поля?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Потому что принято публичными делать именно свойства, а не поля.
    Ответ написан
    2 комментария
  • Где можно взять заказ на сайт школьнику?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В этом возрасте стоит сделать упор на сарафанное радио. Возможно, сайт нужен кому-то из родителей, родственников, знакомых родителей и т.д. и т.п.
    Ответ написан
    5 комментариев
  • Как реализовать отношение один к одному в Entity Framework?

    @oleg_ods
    У меня есть 3 сущности User, Mentor и Student. Mentor и User имеют связь один к одному, Student и User тоже имеют связь один к одному.


    Возможно у Вас не 3 сущности, а 2. User (имя, дата рождения, и тд. ) и Role (User, Mentor, Student).

    Также и них должны быть одинаковые Id. То есть когда мы хотим добавить объект Mentor, уже должен быть объект User с таким же Id. Также и со Student.


    Бред.

    ID - это синтетический ключ. Некое искусственное уникальное поле назначение которого однозначно идентифицировать строку в базе. Строить на его базе какую либо логику нельзя.

    Я просто новичок в Entity Framework

    Проблема не в том что Вы новичок в EF, а в том что Вы новичок в проектировании БД.

    Для начала разберитесь в связях (как они реализуются, для чего используются и тд. ), а потом уже разбирайтесь с EF.
    Ответ написан
    Комментировать
  • Как реализовать отношение один к одному в Entity Framework?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Почитайте - тут хорошо всё расписано.
    С точки зрения архитектуры БД, если есть отношение один-к-одному, то возможно есть смысл объединить данные в одну таблицу.
    Ответ написан
    Комментировать
  • Зачем нужны частичные методы, если можно сделать так(см. ниже)?

    AVollane
    @AVollane
    Начинающий C# разработчик
    Здравствуйте. Существует несколько ситуаций, когда желательно разделение определения класса или метода:

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

    При работе с использованием автоматически создаваемого источника код можно добавлять в класс без повторного создания файла источника. Visual Studio использует этот подход при создании форм Windows Forms, кода оболочки веб-службы и т. д. Можно создать код, который использует эти классы, без необходимости изменения файла, созданного в Visual Studio.

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

    Разделяемые методы особенно полезны для настройки автоматически созданного кода. Они позволяют зарезервировать имя и сигнатуру метода, чтобы автоматически созданный код мог вызвать метод, а разработчик мог сам решить, реализовывать этот метод или нет. Как и разделяемые классы, разделяемые методы позволяют организовать совместную работу автоматически созданного кода и кода, созданного человеком, без дополнительных затрат во время выполнения.
    Источник: https://docs.microsoft.com/ru-ru/dotnet/csharp/pro...
    Ответ написан
    Комментировать
  • Почему Facebook отключил защиту от XSS-атак?

    PageAuditRU
    @PageAuditRU Автор вопроса
    Senior SEO Анализатор
    Итак, спасибо Евгению Глебову за комментарии. Теперь всё стало понятно.

    Защита с помощью заголовка (и соответствующей технологии) X-XSS-Protection скомпрометирована и создаёт ложное ощущение защищённости. В любом из режимов 0 или 1; mode=block реализуемы XS-атаки.

    Разработчикам рекомендовано:
    - явно отключить защиту, установив директиву 0,
    - перейти к использованию защиты, используя заголовок Content-Security-Policy,
    - самостоятельно обеспечить защиту сайта от XSS-атак.
    Ответ написан
    Комментировать
  • В какие языки транслируется F#?

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

    Если вас интересует список OS проектов, то кроме вышеупомянутого Fable (который очень популярен), есть еще FEZ

    FEZ - an F# to core erlang experiment

    Но учтите, что проект экспериментальный.

    Fjord это еще один экспериментальный проект, который давно не обновлялся:

    Fjord, F# programming language for the JVM.

    Также отмечу активно разрабатываемый CoreRT:

    > The CoreRT compiler can compile a managed .NET Core application into a native (architecture specific) single-file executable that is easy to deploy.

    Что касается поддержки F#, то советую обратить внимание на этот ишшуй:

    F# Status on CoreRT and UWP #6055
    Ответ написан
    Комментировать
  • Какой язык выбрать (F# или Lisp)?

    FoggyFinder
    @FoggyFinder
    Смело выбирайте F#. Коротко о преимуществах:

    1. Это не экзотика (да, его реально используют).

    2. Дружелюбное сообщество, в том числе русскоязычное:

    3. F# язык из семейства dotnet. Эта платформа, несмотря на свою популярность, открывает новые горизонты с плавным переходом к .NET Core.

    4. F# оптимальный выбор для тех кто только начинает свой путь по дороге функциональной парадигмой. Одной из причин является то, что F# не чисто функциональный, а в первую очередь функциональный. Таким образом освоив базовые возможности F# вам будет значительно легче понять код на Haskell или Erlang.

    Теперь к недостаткам:

    1. Познакомившись с F# вам, вероятно, больше не захочется использовать ничего другого. Да, он настолько хорош.

    2. Далеко не все F# конструкции оперативно поддерживаются. Вы можете столкнутся с необходимостью писать не идиоматичный F# код при работе с UWP или Xamarin.Forms.
    Ответ написан
    Комментировать
  • Какой язык выбрать (F# или Lisp)?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Если это не тролинг то F#
    Ответ написан
    2 комментария
  • Плюсы от знания F#?

    rundll32
    @rundll32
    Язык сам по себе - просто инструмент. F# позволяет писать программы в более функциональном стиле, чем C#, но возможности их не отличаются, и под капотом будут одни и те же инструкции MSIL.
    Ответ написан
    2 комментария
  • Можно ли как то скопировать интернет магазин целиком?

    Sanes
    @Sanes
    Ручками с нуля.
    Ответ написан
    Комментировать
  • Можно ли как то скопировать интернет магазин целиком?

    Stalker_RED
    @Stalker_RED
    Скачать не проблема.
    Хоть wget-ом, хоть виндовой программкой с gui типа Teleport Pro.

    А вот как вы это все будете натягивать - хороший вопрос. Как и легальность таких действий.
    Ответ написан
    Комментировать
  • В чем принципиальное отличие POC от MVP?

    Kiriniy
    @Kiriniy
    Графический и веб-дизайнер
    MVP это уже хоть как-то работающее что-то, а PoС может существовать даже условно. Скажем, пара сверстанных экранов без бэкенда и работающего UI, а все кнопки ведут на предложение оставить email например.
    Ответ написан
    Комментировать
  • Стоит ли продвигать старый сайт или сделать редизайн?

    Привет! Если домен тематический, а в вашем случае это так, то конечно лучше оставить текущий домен, и сделать редизайн всего сайта. Так же важно учесть, что вам нужно сделать редиректы со сторах страниц на новые, если вы будите менять url страниц. Если не будите, то важно, чтобы контент был одинаковым. Что я имею в ввиду
    1 старая ссылка типа site.com/php_development - тут у вас инфа по разработке на php
    2 новый сайт ссылка такая же site.com/php_development но инфа у вас о разработке например на java - и контент там будет про java - это будет нерелевантно для поиска
    Ответ написан
    Комментировать
  • Стоит ли продвигать старый сайт или сделать редизайн?

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

    P/s я сам не делаю сайты, но помню как читал об этом.
    Ответ написан
    Комментировать
  • Какой тип данных/структуру использовать для быстрой обработки промежутков?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Простой в реализации метод: держите отрезки в каждом элементе отсортированными и непересекающимеся (если два отрезка пересекаются - объедените их).

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

    Если же список очень длинный, а ответ ожидается маленький, то есть более быстрый метод. Но он сложный в реализации. Нужно реализовать персистентное дерево поиска. Можно его реализовать на основе персистентного дерева отрезков. Это такая структура, в которую можно добавлять элементы, и удалять их за O(log n). Также можно обходить все элементы за O(log n + (их количество)). Кроме того, сохраняются все версии дерева после каждой операции и общее количество памяти будет O(к log n), где к - количество операций.

    Эта структура будет использоватся для хранения предподсчитанных ответов. Если все ваши отрезки нарисовать на одной прямой, то она разобъется на O(n) отрезков, все точки которого будут давать один и тот же ответ при запросе. Мы эти все ответы компактно сохраним.

    Используем метод сканирующей прямой. Нанесите все границы всех отрезков на одну прямую, пометив их как начало или конец (и какому элементу списка они соответствуют). Если пройтись по этой прямой слева на право, то будут происходить события - отрезки откроются (новый элемент добавляется в ответ) или отрезки закроются (элемент из ответа удалится). Поддерживая текущий ответ в персистентной структуре мы сильно экономим память. Удобно в качестве начал отрезка брать их координаты, а в качестве конца - координаты концов+1. В таком виде все границы отрезков будут точками, а не числами.

    Итак, создайте массив из структур {координата, это начало или конец, номер элемента}. Отсортируйте по координате, потом по флагу начала. Потом пройдитесь по ней и при обработке начала отрезка - добавляйте номер элемента в персистентное дерево. При обработке конца - удаляйте элемент из дерева. Так же перед обработкой каждого элемента запишите в массив-ответ: {предыдущая координата, текущая координата, ссылка на текущую версию персистентного дерева}, если предыдущая координата строго меньше текущей. Этот массив-ответ будет хранить все возможные отрезки с различными наборами ответов в виде {координата начала, координата конца, ответ}.

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

    Это решение требует O(n log n) памяти (где n - количество всех отрезков) и O(n log n) времени на предподсчет и O( log n + (ответ)) времени на обработку ответа.

    Более простое решение, где ответы считаются так же сканирующей прямой, но сохраняются просто в виде списков, а не версий персистентного дерева, может требовать O(n^2) памяти. Но будет работать быстрее, конечно.
    Ответ написан
    1 комментарий