All streams
Search
Write a publication
Pull to refresh
39
0
Игорь @elw00d

Разработчик

Send message
Не вкурил про template method и связь с duck typing'ом. Темплейт метод — это способ исключения дублирования кода, при котором в базовый класс выносится весь код метода, и наследники не переопределяют этот метод, но могут переопределять вспомогательные методы, которые вызываются из основного. Таким образом, наследники могут влиять на детали выполняемого алгоритма, но не могут изменять его суть.
Всё верно. У них всегда инсталлеры были какие-то кривые.
Бесконтактный
А пустые папки можно коммитить в git? Или нельзя, как и в mercurial?
Мне кажется, это единственный недостаток последней по сравнению с svn. Сам пользуюсь mercurial ввиду хорошей поддержки в windows. У git'а с этим пока проблемы.
Все верно, но как-то не о чем… Я бы перенес в блог «Мысли вслух», но такого, кажется, нет.
Шикарно, теперь есть альтернатива ставшему уже привычным SharpZipLib.
Я помню, когда писал nbox (тоже на codeplex'e лежит), мне было нужно сжимать и разжимать блоки данных, я тогда чистое LZMA api использовал. Значит, теперь можно и архивы создавать, good job!
Для того, чтобы сформировать квадрат, не обязательно указывать через MxN, достаточно просто M.
Ядро линукса вроде тоже таким стилем пишут. Функции в BSD-стиле, управляющие конструкции — в египетском.
lxr.linux.no/#linux+v2.6.34/Documentation/CodingStyle
Мой выбор — {smartassembly}. Основное в обфускаторе — control flow и переименование, чтобы нельзя было восстановить исходники и сложнее было разбираться хакеру. Шифрование IL ломается по принципу, аналогичному тем, по которым снимаются все упаковщики exe (PE) файлов. В любом случае есть способ получить оригинальный IL код. Либо простым дампом, либо написав программку-распаковщик. Единственное, что может сделать защита — затруднить анализ и снятие дампа.
Угу, в WPF, кажется, есть встроенный WeakEventDispatcher. Для WinForms и Console-приложений приходится ручками писать.
Аль Пачино рулит, согласен.
С удивлением наткнулся на перепечатку какой-то истеричной писульки «Windows глазами линуксоида». Постеснялись бы такое в журнал-то добавлять.
Из гугла не возвращаются.
Прям уж всех проектов исходники доступны :)
Да, с нулем обида будет ) Эх, значит все же придется цифры считать — хотя бы в плане — если есть больше одного нуля, то решение — любое подмножество {n-1}, если нуль один — то он и будет лишним. Если же нулей нет, то делаем второй проход.
Первое, что пришло на ум — двухпроходный алгоритм.
Сначала проходим по массиву, подсчитывая произведение P всех n элементов.
Затем проходим еще раз, для каждого arr[i] находим частное P / arr[i].
Индекс, по которому частное будет максимальным — выбираем за лишний элемент и берем все остальные n-1.

Имхо, достоинства алгоритма: простота понимания, быстрота разработки (не нужно париться и прикидывать, что произойдет, если там будут нули, отриц числа итд), ну и меньшая плотность багов (по сравнению с более сложными для понимания алгоритмами).
Скорее всего, такую фишку по-простому реализовать не получится, поскольку в указателе на функцию-член класса должна храниться информация о расположении vtable относительно указателя на instance класса. Если же предположить, что у нас появился указатель на функцию-член произвольного класса, то этой информации там быть не может, следовательно, компилятор и рантайм не будет знать, как вызывать функции по таким указателям.
Я лично здесь вижу только 1 путь реализации — с добавлением RTTI на этапе взятия адреса. При взятии адреса от функции-члена в указатель будет записываться this и некая служебная информация, необходимая для вызова функции-члена (смещение vtable, или адрес метода). При вызове эта информация будет извлекаться для определения реального адреса функции-члена.
Преподаватель — бомжиха Зайнуллина? ) о да )
У меня был такой банер. Точнее не у меня, а на компе бати. Оказалось, что этот банер можно легко прибить. При вводе текста в текстбокс программа начинает думать, причем думать тем дольше, чем длиннее текст. Накопипастив много раз весь текст, можно добиться многосекундного зависания программы, и успеть включить диспетчер задач, удалив висящий процесс plugin.exe. Ну и потом все исчезает, а мы отправляемся на поиски plugin.exe в системе :)

Information

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