Dec. 1st, 2012

yigal_s: (Default)
Меня решительно достала моя неспособность работать со скучным, или тупым материалом.

На сей раз я пал жертвой Мартина Одерского с его лекциями по Скале. Даже ускорение воспроизведения не помогло избавить меня от общедепрессвности, этими лекциями на меня навеваемыми, и вырубило меня из курсеры вообще.

Как ж с этим быть-то...

Ну максимум, отдохнуть немного и вернуться к другим курсам, но беда, что я хотел эти лекции всё-таки посмотерть, соответственно, буду к этим лекциям возвращаться и снова демотивироваться.

Разумеется, есть лекции, которые я слушаю с неослабеваемым практически интересом, иначе б я на Одеского не жаловался и считал кругом виноватым только себя.

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

Есть подозрение, что всё это - вариация синдрома деффицита внимания. Хотя субъективно это восприниматся как неприятие скуки и маразма. В институте у нас пара преподов была, которым я просто в род глядел. И они отнюдь не занимались развлечением аудитории, но давали в меру сложный и вменяемый материал адекватным, ИМХО, образом. Всего-то навсего.

Их лекции врубали мой интеллект, остальные, как правило, даже и не пытались это сделать, скорее уж его вырубая сильно ниже обычного его уровня.
yigal_s: (Default)
вот мелочь вроде, а приятно.

interface ILockable
{
   void lock();
   void unlock();
}


хотя можно и так (далее будет понятно, почему)

interface IEnterable
{
   void enter();
   void leave();
}


Где это может применяться? Ну, для начала, мютекс ложится на этот интерфейс напрямую.

А вот так ложится на этот интерфейс read-write lock:

class RWLock
{
    ILockable& readLock();
    ILockable& writeLock();
}


обратите внимание, эти функции ничего не локают, а только лишь возвращают интерфейс.

мелочь, а приятно, поскольку позволяет использовать один и тот же guard класс для локировки чего угодно:

Guard g1(mutex);
Guard g2(rwlock.readLock());
Guard g3(rwlock.writeLock());
yigal_s: (Default)
Тут вот
http://occuserpens.livejournal.com/700387.html?thread=3501027#t3501027

возник интересный вопрос, а есть ли какие-то способы избавиться от Inversion of Control в случае GUI, то есть НЕ писать код как обработчик событий от мыши, клавиатуры и прочего, где каждое новое событие влетает в одну и ту же функцию, что напрочь гробит всякую структурность кода и его maintainability.

Т.е. вот функцию scanf уже просто так не вызовешь и НЕ НАПИШЕШЬ, ибо сначала может нажаться клавиша клавиатуры, потом мышки, ну и вообще сначала вобьют буковку в одно окошко, а потом в другое.

Хотелось бы, тем не менее, писать код GUI более вменяемо, чем это предлагают книги а-ля Петзольд, в идеале - просто в виде обычного линейного кода, или хотя бы в виде фрагментов линейного кода большей связности, чем просто в тупом обработчике событий, написанном как конечный автомат.

Вопрос - есть ли подобные разработки?