Как стать автором
Обновить
119
0.2

Пользователь

Отправить сообщение
Что-то вы тут демагогию разводите. У вас и у гипотетических пользователей слово «антивирус» ассоциируется с совершенно разными программами — для пользователей они должны удалить все, что ему мешает и не позволять этому появиться снова, а в вашем понимании вы все довольно четко расписали в статьях. Я одного не пойму: зачем то, что вы описываете, называть антивирусом, еще больше заводя всех в заблуждение? Почему не взять собственное название для такого класса продуктов? Тогда и все эти бессмысленные дискуссии пропадут сами собой.
Да не только это, весь блок с графиками оптимального времени публикации задвоен (впрочем, это легко можно не заметить :)).
Как уже сказали, речь идёт о голографическом принципе. Он неплохо объяснён у Сассинда в его «Битве при чёрной дыре» (который, кстати, его и придумал).
Ну, поставляется-то он вместе с блендером, но по умолчанию он выключен. В любом случае, вы же упомянули такие аддоны, как Import Images as Planes, Node Wrangler и Auto Tile Size, которые также входят в стандартную поставку блендера. Так чем же F2 хуже?
Странно, что F2 не упомянули.
Да и на неслабых тоже. А еще иногда он вдруг решает отключить некоторые области из поиска и включать обратно не желает. Пример — стоит поиск в файлах и программах, может ни с того ни с сего взять, и перестать искать в программах. Через некоторое время возвращается.

Еще раньше любил всякие амазоны да гугл-драйвы, которого у меня нет, подключать после обновлений, а при попытке их убрать либо возвращал все обратно, либо вообще отрубал весь scope, в том числе локальные файлы. Но от этих причуд, к счастью, быстро отучился, тьфу-тьфу-тьфу.
Сразу после выхода 14.04 оно возвращалось (хотя если окно было распахнуто на весь экран, то кнопки все-равно были слева), но потом там что-то поломали и настройкам из компиза ему теперь по барабану.
Так согласно же событиям из Star Wars: Battlefront II после бунта клонов на Камино «чистокровными образцами» Джанго Фетта остались только парни из 501-го легиона Дарта Вейдера. Остальных стали делать из более разнообразного генетического материала, чтобы такого впредь не повторилось. Или Battlefront II уже не канон?
Был бы сам объект, так бы его и назвали объектом, а не «ручкой» (тут как раз подходит цитата Пушкина). А раз назвали, то для вас это — указатель. Даже если он «указывает» сам в себя (т.е. являться не указателем, а реальным объектом). Вот скажите, url-адрес это объект? А является ли он указателем? Чтобы прочитать статью на хабре, вам url нужен именно как указатель, и как указатель вы его и используете, не заботясь о том, что это объект, у которого можно посчитать длину, выяснить, по https вы пришли или http, и прочую, безусловно важную, но в данном случае, ненужную информацию.

Принцип инкапсуляции в данном случае скрывают от вас, как устроен указатель, но то что это указатель — вам говорят совершенно четко.
Берем сущность которая не является указателем,

Да ладно? А что же это тогда? Число в системной таблице, указывающее на ресурс, не?

Логично параметризовать эту функцию, зачем копипастить?

А вот с этим соглашусь — тоже сразу приходит в голову такая мысль.
Когда играл еще только в демку Myst IV, в камине был дощечка, на которой квадраты переключались таким образом. Уж не помню, сколько времени потратил, но таки смог «перекрасить ее».
Настоящее решение, если не играли, не читайте
И так обидно было —
на всякий случай :)
такая изящная загадка была,
ну все, это последний рубеж, пеняйте на себя
а всего-то нужно было включить светильники…


Ну, статьи конечно, немного не о том, что нужно, но реализацию обязательно посмотрю. Размер позволяет надеяться, что все будет понятно :). Пока статьи еще нет, что планируете осветить?

Кстати, в предыдущих статьях есть ссылки на репу на битбакете — я так понимаю, они безнадежно устарели? Аналогичных веток, упоминаемых в них, на гитхабе не нашел.
Мне кажется, что amarao намекал на принцип неопределённости Гейзенберга — невозможно одновременно точно измерить положение и импульс частицы. Раз мы точно знаем скорость и массу частицы, значит мы точно знаем её импульс и, соответственно, ничего не знаем о её положении :)
К сожалению, пример Kaleidoscope мало что проясняет. То есть, он конечно очень хорош и нужен, но уж слишком мало он охватывает. Браться реализовать что-либо серьезное после него совершенно невозможно. Например, он никак не показывает, как быть, если функция должна принимать не простые числа, а какие-то структуры данных. Причем хотелось бы эти структуры связать с API на C++, возможно, даже с шаблонными структурами.

Например, есть прекрасный проект генерации PEG-парсеров на JavaScript: PEG.js. У меня давно витает идея попробовать написать компилятор грамматики в машинный код с использованием LLVM. Но пока для меня это непосильная задача.

Вот бы написал кто такую статью, где был бы показан реальный пример хотя бы с парой сложных типов, а не простой числодробилки.
Сразу же настораживает несимметричная последовательность команд при сохранении и восстановлении стека.
Слишком первоапрельский заголовок :)
Да потому, что это не один символ, а два:
var s = 'й'; for (var i in s) { console.log(i, s[i], s.charCodeAt(i)); }

0, и, 1080 // U+0438 - Кириллическая строчная буква и
1, ̆, 774  // U+0306 - Комбинируемое бреве (бревис, кратка)

Зачем только автору понадобилось так уродовать букву «й», остаётся загадкой…
В примере кода, из статьи, который мы тут обсуждаем, нет никаких m_net1 и m_net2 — они появились в вашем примере, с неправильностью которого никто и не спорит. А то интересный у вас подход — сначала изменим код автора, а потом скажем, что он неправильный.

Еще раз мое возражение к вашему:
какой какашный код у конструктора класса LockNet. Что будет если new Network бросит исключение?

в том виде, как он в статье приведен, код нормальный и со своей целью — показать пример использования RAII — он отлично справляется.

Если new бросит исключение, до инициализации Network дело даже не дойдет, а LockNet останется не инициализированный и его деструктор вызываться не будет.

Если конструктор Network бросит исключение, то оба объекта, и Network, и LockNet, останутся неинициализированными и их деструкторы вызываться не будут. Память, выделенная new для Network, в этом случае будет утекать как в реализации LockNet, так и умного указателя. В этом смысле вы правы — выделение память нужно делать в своей RAII обертке. Но для иллюстрации RAII это совершенно необязательно.
Не понял, при чем тут Штирлиц.

Во-вторых, усложнять там нечего: в моём примере и так хранятся два объекта.

В вашем примере вы предлагаете использовать умный указатель, который структурно выглядит так же, как исходный пример из статьи, напомню его здесь:
class LockNet{
public:
    LockNet(const Url &url){
        m_net = new Network(url);
    }
    ~LockNet (){
        delete m_net;
    }

    operator Network * (){
        return network;
    }

private:

    Network *m_net;
};

И на ваше предложение добавить в него второй член я точно также говорю вам добавить второй управляемый объект в класс умного указателя. Или вы хотите сказать, что в этом случае проблем не будет? А если не хотите, то зачем вы приплели сюда усложненный пример (опять же, напомню):
class LockNet{
public:
    LockNet(const Url &url){
        m_net1 = new Network(url);
        m_net2 = new Network(url);
    }
    ~LockNet (){
        delete m_net1;
        delete m_net2;
    }

private:

    Network *m_net1;
    Network *m_net2;
};

Если вас беспокоит, что в исходном примере не используются списки инициализации, так и что? Ну вылетит исключение в конструкторе LockNet, деструктор LockNet вызван не будет, и вызов delete над мусорным указателем m_net не произойдет, если вас это беспокоит.

В противном случае вы не сможете отделить мусор в значении указателей от реального указателя, когда будете делать delete в catch-блоке. Собственно, по большому счету, мой «наезд» заключался именно в этом.

Я что-то потерял вашу мысль… delete чего в каком catch?
А давайте теперь усложним ваш умный указатель и добавим в нем еще одно поле, чтобы он хранил два объекта. А теперь подумайте внимательней, что будет, если мы попрем общепринятые каноны и назовем этот ваш модифицированный указатель, ну, хотя бы, LockNet… Имена классов вообще ведь для человека придуманы, а чтобы пример не казался вам надуманным, давайте представим, что код пишет параноик и любитель острых ощущений, и специально именует все свои классы и переменные как можно более нелогичными именами.

Информация

В рейтинге
2 918-й
Откуда
Магнитогорск, Челябинская обл., Россия
Зарегистрирован
Активность