All streams
Search
Write a publication
Pull to refresh
43
0
Березников Алексей @gdt

Разработчик C#

Send message
Такие ключи обычно делаются в hardware исполнении. То есть, нужно подписать — вставил usb устройство с ключом, подписал, вытащил. С защитой от копирования, чтобы такие ситуации были в принципе невозможны.
Подтверждаю, тоже с таким сталкивался несколько раз. Деньги возвращали.
К сожалению, это было уже несколько лет назад, так что я не помню деталей. Восстановлю доступ ещё раз, проведу эксперимент :)
Хотите верьте хотите нет, хотел как-то начать пользоваться твиттером — однако мой аккаунт уводили раз за разом. При этом не было никаких писем от Твиттера типа «Вы точно хотите восстановить доступ?», не было ни одной привязки ни к одному устройству, и всё равно методично раз за разом я терял доступ к своему аккаунту. В поддержку пробиться так и не получилось, пришлось просто забить. Так что, честно говоря, я совсем не удивлён. Странно что увод аккаунтов только сейчас получил такую огласку.
Мне кажется, вы просто не поняли замечательную шутку про основателя вк :) Ведь он больше не участвует в жизни своего детища.
А как быть, если грамматика неоднозначная, или есть недостижимые правила продукции?
Тут уже за меня всё ответили :)
Ни в коем случае не критикую ваш подход, как по мне — главное, чтобы поставленная задача была решена, конкретный способ и терминология — это уже детали.
LR(1) грамматики удобнее в том плане, что с их помощью можно описать большее количество грамматик, чем при помощи LL(1).
И ещё один момент — если вы подаёте на вход произвольные грамматики, рано или поздно на вход попадёт некорректная грамматика. Как решается эта проблема в случае с рекурсивным спуском?
Понял, большое спасибо за такое подробное описание!
Хм, спасибо, значит буду урезать права.
Можете в двух словах описать механизм повышения привилегий, учитывая что:
1. Запускаемый бинарник лежит в Program Files — т. е. предполагается что с обычными правами его просто так не подменишь
2. Хэндл дублируется для конкретного процесса — т. е. за его пределами не юзабелен.

Так сказать, врага нужно знать в лицо.
Пока что открываю процесс со всеми возможными правами (ProcessAccessFlags.All) и использую DuplicateOptions.DuplicateSameAccess — надо полагать access mask будет выглядеть соответствующим образом (что-то вроде 0x001F0FFF). Чем это может быть чревато?
Спасибо, как раз то, что искал!
Вот вам ещё пример. Есть некое приложение, которое должно запускаться от имени администратора по своей природе. Это приложение торчит наружу COM-интерфейсом, т. е. по идее для управления им права администратора не требуются. Однако, для удобства использования и для того, чтобы иметь, например, возможность завершить процесс или сделать с ним ещё что-то полезное, нам нужно иметь его handle.
Таким образом, у нас есть служба, которая запускает процесс (от имени администратора) и дублирует его хэндл через WCF в клиентское приложение, которое уже делает с ним всё, что необходимо, не требуя при этом повышения прав.
Что можете сказать про такой расклад?
LR(1) парсер не пробовали реализовать? Должно помочь с проблемами по типу левой рекурсии. В свое время делал и рекурсивный спуск и LL(1) и LR(1) и LALR(1), как раз в контексте разбора произвольной грамматики, LR(1) показался мне самым эффективным из них. Хотя рекурсивный спуск, конечно, реализуется в разы проще.
Ну я позволю себе с вами не согласиться. Во-первых, по-хорошему, QA и DevOps — это отдельные люди (и даже отделы). Рефакторинг и багфиксинг сводится к тому, чтобы разобраться и написать код. Юнит-тесты — тоже код. Лично я замечаю, что чем дальше — тем меньше времени отнимает именно написание кода.
Во-вторых, код-ревью — это важная часть обязанностей сеньора, и тоже отнимает заметную часть времени. В статье идёт речь о разработке клиентской части приложения, зачастую это отдельный продукт (чтобы писать серверную часть нужны другие навыки, и обычно это тоже делает другая команда), так что да — здесь важно и написать код, и пройти QA (иначе откуда возьмутся баги, которые необходимо пофиксить?), и получить замечания на ревью от коллег и поправить их, и так до тех пор, пока не будет готова версия, которую не стыдно зарелизить (ну или пока не настанет дедлайн :)).
Если вы работаете в аутсорс конторе — то вас также будут всё время дёргать на оценку. Кроме того, кто-то должен собеседовать новых людей в команду, и при всём при этом в рабочем дне всего лишь 8 часов. Так что, если разработка у вас занимает 40% времени — это уже очень хорошо.
Я уже не говорю про то, что кто-то вместо работы играет в теннис и пьёт кофе на кухне :)
Код-ревью тоже незаслуженно обошли стороной.
Сложно спорить, однако и стоимость жизни (в Кемерово) существенно ниже.
Вот тут уже ответили на ваш вопрос. 20 К$ и даже 10К$ конечно не получаю, однако ЗП явно выше чем то, что можно получать в РФ с моими навыками.
Нет, я лично из РФ работаю через Киев на компанию из Redwood City — так что всё именно так и есть. До недавних пор не было такой необходимости (я про Киев).
Pentium 166 без MMX вполне тащил mp3 (WinAMP) + что-нибудь ещё, тот же ворд или Delphi 7. Фильмы в MPEG-2 тоже можно было смотреть, MPEG-4 конечно уже тормозил.
Рискну предположить, что автор имеет ввиду создание и запуск стейт-машины.
Более того, это не поможет тем, кто использует .Net Framework версии 4.0 и ниже, а также тем, у кого в app.config есть
<ThrowUnobservedTaskExceptions enabled="true" />

Правильный вариант, как по мне — ждать и обрабатывать, либо ждать и падать.

Information

Rating
Does not participate
Location
Кемерово, Кемеровская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Developer
Senior
C#
.NET
Software development
Object-oriented design
Multiple thread
Git
WPF