• Использование дочернего свойства?

    @cicatrix
    было бы большой ошибкой думать
    Вы не можете управлять потомками (совсем как в жизни).
    Есть ключевое слово sealed - оно не позволяет наследовать данное свойство или метод потомкам, но это же означает, что вам необходимо реализовать его в базовом классе.
    Потомок может переопределить поведение базового класса вообще полностью (правда, тогда непонятно, зачем он его наследовал, но в теории, из родителя вы ничего с этим поделать не можете).
    Ответ написан
    Комментировать
  • Подтверждение пароля через сканер отпечатка пальцем?

    @cicatrix
    было бы большой ошибкой думать
    Теоретически, конечно, возможно, но система эта ничем по факту не отличается от пересылки пароля.
    В вопросах безопасности всегда исходим из предположения, что за клиентской машиной находится коварный враг.
    Взаимодействие между клиентом и сервером вам предстоит организовывать так, чтобы врагу было сложно обмануть систему.
    Но как это сделать?
    Допустим, на клиенте есть некий алгоритм. который хэширует отпечаток (это ещё большой вопрос, как это сделать), и передаёт хэш отпечатка системе (считай - тот же пароль), ну и зачем тогда париться, если всё сводится к пересылке некоей последовательности байт?
    Вариант получше: сканер на клиентской стороне сделает отпечаток и передаст картинку на сервер, где специально обученный алгоритм проверит, тот ли это отпечаток... но что мешает клиенту просто послать вам заранее подготовленную картинку?
    Такая функция в реализации - классический Театр безопасности. Создаёт ложную иллюзию надёжности, но по факту никакой безопасности не предоставляет.
    Пока что, ничего лучше двух- (много-)факторной аутентификации не придумали.

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

    @cicatrix
    было бы большой ошибкой думать
    Позволю себе дать вам более абстрактный совет: не ведите общего бизнеса с друзьями, не берите у них в долг и не одалживайте сами. Это самый верный способ потерять друга.

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

    @cicatrix
    было бы большой ошибкой думать
    Открытый ключ не предназначен для расшифровки сообщений. Им можно только зашифровать.
    У вас нет закрытого ключа пользователя, так как предполагается, что закрытый ключ имеется только у владельца подписи (на то он и закрытый). Если у вас есть закрытый ключ пользователя, то ваша система (вернее, система пользователя) скомпрометирована.
    Ответ написан
    4 комментария
  • Почему не работает GROUP BY?

    @cicatrix
    было бы большой ошибкой думать
    GROUP BY используется с агегирующими функциями (COUNT, MIN, MAX, SUM и т. д.), у вас нечего агрегировать, у вас простая выборка.
    В вашем случае надо пользовать SELECT DISTINCT имя_поля_где_надо_убрать_дубли FROM таблица

    Вместо * надо указать через запятую список полей
    Ответ написан
    Комментировать
  • Как определиться с деятельностью?

    @cicatrix
    было бы большой ошибкой думать
    Вариант - не заниматься программированием, коль не понравилось. Есть полно других достойных профессий.
    Ответ написан
    7 комментариев
  • По вашему, в какой точке цикла зрелости находится технология "Умный дом"?

    @cicatrix
    было бы большой ошибкой думать
    Могу как потребитель ответить: я ещё не настолько обленился, чтобы мне было сложно дотянуться до выключателя и не настолько сошел с ума, чтобы подключать в сеть систему вентиляции и водоснабжения при помощи китайского дырявого роутера.
    Есть, безусловно, ниши, где можно кое-что в быту автоматизировать, но называть это "умным домом" я бы не стал.
    И вообще, мне кажется, в самом названии кроется маркетинговый просчёт. Сейчас столько всего "умного" развелось (умную швабру недавно видел), что доверие народа к приставкам "умный" весьма низкое. Да и нифига эти технологии не "умные" на поверку. Когда видят "умный дом", подразумевается либо что-то спаянное из желудей и спичек, либо что-то адски-дорогое, а главное - нахрен не нужное.
    В чём-чём, а в технологии быта 20-й век дал людям массу полезных вещей, улучшать которые уже просто некуда. С точки зрения маркетинга я бы вообще избегал понятий "умный дом", а прибегал бы к более нейтральному слову "автоматический".
    Ответ написан
    2 комментария
  • Какие редакторы для csv в кодировке UTF-8 есть?

    @cicatrix
    было бы большой ошибкой думать
    А что именно портит Excel? У меня прекрасно с UTF-8 работает.
    Есть ещё Libre/Open Office Calc
    Ответ написан
    Комментировать
  • Нет доступа в интернет?

    @cicatrix
    было бы большой ошибкой думать
    Возможно, какие-то адские настройки DHCP и DNS. Возможно прописан статический IP - в общем, приведите настройки сетевого адаптера к дефолтным.
    Ответ написан
    Комментировать
  • Кто может обьяснить?

    @cicatrix
    было бы большой ошибкой думать
    1. Странно, Master Page прекрасно описана в MSDN, в гугле забанили?

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

    Пример из MSDN
    Ответ написан
    Комментировать
  • Что такое Net Framework и язык C#?

    @cicatrix
    было бы большой ошибкой думать
    Опускаясь до уровня "на пальцах":
    Например, можно написать программу на ассемблере (поскольку он платформеннозависимый), ваша программа будет выполняться, например, только на процессорах архитектуры x86. При этом, вам придётся писать эту же программу для другой архитектуры.

    Поднимемся выше. Напишем программу на C или С++. Она уже отчасти платформеннонезависима, так как при компиляции на разных архитектурах, та или иная реализация компилятора учитывает особенности платформы и генерирует совместимый машинный код. Но допустим, вам необходимо написать что-то сложнее hello world. Вы ищете подходящий функционал в стандартных библиотеках и, допустим, не находите. Зато вы находите подходящую библиотеку А, но вдруг выясняется, что она использует компоненты сторонней библиотеки Б, которая ...
    Ну, в целом, цепочка зависимостей может быть весьма длинной. И вот, ваш проект, ради одной фичи обрастает кучей зависимостей. Более того, вы сталкиваетесь с проблемами лицензирования, так как программный код, который вы гуглите и скачиваете из интернетов, скорее всего распространяется как Open Source, а значит - вы не можете закрывать свой исходный код (всё немного сложнее, но если ваши намерения по распространению своего проекта выходят несколько дальше, чем лабораторная работа по информатике, эти проблемы могут возникнуть).
    У вас может возникнуть желание написать свой "велосипед" под себя, но, тем самым, вы тратите время на создание некоего вспомогательного компонента, и вообще, ваша программа не про это.

    Теперь перейдём к .Net Framework. Разработчики постарались для вас и написали несколько десятков (или сотен) тысяч классов практически подо все умозрительные задачи, которые могут вам понадобиться, то есть это "кубики лего", позволяющие вам БЫСТРО писать приложения, сосредоточившись на логике вашей программы.
    Вам не надо реализовывать свой файловый ввод-вывод, работу с сетью, криптографию, коллекции, работу с базами данных и пр. Всё уже есть, всё пишется в 1-2 строки. Всё готово к употреблению.

    Как же этим пользоваться? В объектами фреймворка можно работать на нескольких языках: C#, VB.Net, F# и что там ещё напридумывали, все они взаимодействуют с Common Language Runtime и имеют доступ ко всем классам фреймворка.
    Ответ написан
    3 комментария
  • Что делать с возможным пробелом в регулярном выражении?

    @cicatrix
    было бы большой ошибкой думать
    А где само выражение-то?
    В целом, если вам просто надо обрезать лишние пробелы с начала или конца, достаточно сделать mbVal.Trim()
    А уже потом прогонять его через RegEx
    Ответ написан
    4 комментария
  • Как сделать цифровую подпись для сертификатов, выдаваемых нашим проектом?

    @cicatrix
    было бы большой ошибкой думать
    Главное отличие самоподписанного сертификата от сертификата от известного УЦ - то, что пользователям не нужно будет устанавливать ваш корневой сертификат в список доверенных.
    Сложности чисто технические, но, как показывает практика, проблемы с этим возникают у многих.

    Вообще, криптография и 'for dummies' плохо совмещаются.
    Ответ написан
    1 комментарий
  • Как правильно приступить к созданию кода на Си в visual studio?

    @cicatrix
    было бы большой ошибкой думать
    File / New / Project
    Ответ написан
    Комментировать
  • Какую замену inkscape посоветуете?

    @cicatrix
    было бы большой ошибкой думать
    А вам вообще зачем? Вы в сторону всяких CAD не смотрели?
    Ответ написан
  • В каком формате лучше хранить значение в БД?

    @cicatrix
    было бы большой ошибкой думать
    Может крамолу скажу, но я бы хранил 2 timestamp (начало и конец). По 8 байт на поле, равносильно одному 16-байтному Interval (подозреваю, что в потрохах у него та же логика зашита).
    Ответ написан
    Комментировать
  • Как проверить на наличие разрывов нумерации в БД (SQL)?

    @cicatrix Автор вопроса
    было бы большой ошибкой думать
    По второму вопросу, кому интересно, допёр вот до этого:
    SELECT number, DENSE_RANK()  OVER(ORDER BY DIFF ASC) range_id
    FROM
    	(
    		SELECT [number], [number] - DENSE_RANK()  OVER(ORDER BY [number] ASC) DIFF
    		FROM [TestSet]
    	) t
    ORDER BY [number]
    Ответ написан
    Комментировать
  • Имя приложения?

    @cicatrix
    было бы большой ошибкой думать
  • Как изменить код и стоит ли, чтобы не было предупреждения CA1009 анализатора кода?

    @cicatrix
    было бы большой ошибкой думать
    Если у вас (или у вашего тимлида) нет ОКР, то можно и suppress сделать.
    НО!

    Тут при повторном рассмотрении углядел, что вы в obj передаёте не ссылку на объект, который событие отправляет, а какой-то параметр. В этом случае это действительно может ввести в заблуждение (как ввело меня только что, например, когда я подумал, что вы параметры не передаёте, а только ссылку на отправителя события). Я, не зная вашего кода, вижу событие и ОЖИДАЮ стандартного шаблона (особенно если вы используете тип object), и здесь мой шаблон "рвётся" :)

    Во-первых, есть класс ProgressEventArgs, который служит ровно той цели, что вы здесь "свелосипедили".

    Стиль написания кода - это, если уж честно, догма от Майкрософт, и вещь субъективная. Однако, нельзя считать эту догму плохой. Она задаёт общий шаблон для написания кода и позволяет потом легко свои решения масштабировать.

    В общем, это ваше решение. Если код закрытый и никто, кроме вас его больше не увидит, и вы уверены, что и через несколько лет вы, просматривая этот фрагмент, будете чётко знать, что на самом деле в объекте obj типа object вы передаёте в событии целочисленный параметр состояния прогресса, то можете делать suppress этому кейсу.
    Если же вы планируете публиковать этот код (это часть Open Source) проекта, то вердикт однозначный - переписывайте.
    Ответ написан
  • На сколько хорошо подходит C# в роли сервера для игры?

    @cicatrix
    было бы большой ошибкой думать
    Сервер можно писать хоть на bash скриптах. И это тоже будет сервер. Вы определитесь для начала с количеством клиентов, объёмом трафика от сервера к клиенту и обратно, объём обрабатываемых данных и т. д. Выбор языка - это последнее, что вас должно сейчас заботить, так как "узкие места" и "бутылочные горловины" вы скорее обнаружите в серверном железе при росте количества пользователей. После того, как вы определитесь с этими переменными, выбирайте подходящую технологию.
    Ответ написан
    Комментировать