Си учащиеся понимают хуже, чем Pascal/Delphi. Хоть языки похожи по функционалу. Всё дело в семантике — у Pascal код «близок» к предложению на английском, поэтому людям с нулевыми знаниями легче понять его.
Это утверждение основывается на личном опыте преподавания.
lexxpavlov, хочу обратить ваше внимание на то, для нормального изучения PHP учащийся должен иметь навыки верстки. Если этих навыков нет, то программирование на PHP перерастёт в изучение верстки.
«Миллионы мух не могут ошибаться» (С)
Использование реальных личностей для своих нереальных (не пародийных) историй — это «грязный» приём, который сразу устанавливает уровень работы, как низкий.
Например, очень много людей смотрят 100500, с матом и тупыми шутками. Так, пускай автор тоже сделает ИТ-обзор с матом и тупыми шутками. Почему бы нет?.. Многим людям понравиться.
Проблема в том, что остальные люди скажут, что получилось быдлошоу и автор станет известен, как создатель быдлошоу.
Сочиняя свою нереальную историю с реальными личностями автор идёт по тому же пути — он пытается выделиться при помощи лжи о реальном человеке, как в 100500 при помощи мата и тупых шуток.
Зачем всё это? Зачем Вам известный человек или человек похожий на известного?
Насколько я понимаю, Вы хотите создать свою не пародийную историю с реальными людьми. Это изначально глупо и отвратительно. Вы будете элементарно распространять ложь про этих людей.
У автора таймер создаётся не приввязанным к конкретной переменной, в области window, без заглушки. Запустить несколько таймеров таким образом можно легко и просто — быстро нажмите одну ссылку несколько раз (несколько раз отработает show и создаться несколько таймеров).
Любой кусок алгоритма, создающий замыкание, работающий по команде пользователя, должен иметь заглушку.
Если делать правильную заглушку (в нужной области видимости), то утечку при помощи таймеров не создать.
По поводу утечек памяти:
— Практически все утечки, которые я когда-либо видел, создавались при помощи таймеров, интервалов и слушателей событий. Чаще всего программисты вообще не знают, что их код «течёт».
Задумайтесь — если бы у автора была бы заглушка, то такой ситуации не возникло. А если бы у автора был не запрос, а скрытый процесс, то память бы на его странице «потекла».
— Перебрасывает Вас на дефолтную страницу потому, что url не меняется и при рефреше всё сбрасывается на страницу по умолчанию. Вообще идея с рефрешем страницы изначально глупая.
— Количество запросов увеличивается у Вас в 2 раза либо из-за того, что в page.php проприсано show('page');, либо из-за того что где-то у Вас создаётся два timeout-а (т.к. у Вас не заглушки).
Что делать? Убрать релоад страницы вообще и поставить заглушку через clearTimeout.
Алгоритм Дейкстры осуществляет поиск оптимальной стратегии, но не строит стратегии. Сначала необходимо перебором построить граф стратегий, а потом применить к нему алгоритм Дейкстры для получения фиксированного результата.
«Первая мысль — граф должен быть деревом решений, перебирающем все варианты возможных решений вида «копить кредиты» и/или «покупать z юнитов» и/или «делать займ в Космобанке» на каждом ходу s(x)?»
— Что тут сложного? Элементарный перебор всех возможных действий.
Как оно работает я знаю, но я не погу понять зачем.
Вы заменяете естественный механизм сессий на свой, как я понимаю, для какого-то контроля. При этом жалуетесь, что данные почему-то сериализованны и хотите, что бы этот механизм сессий работал по другому.
На мой взгляд, более логично сделать свой механизм сохранения данных, основанный не на сериализации.
Если у Вас свой собственный механизм сессий, то для чего Вы храните данные сериализованными? Гораздо эффективнее и проще упоковывать данные в виде массивов.
Cессия, сохранённая в кэше или в БД, отличается механизмами удаления. Cессия, сохранённая в кэше или в БД, это уже не совсем сессия, это алгоритм иммитирущий сессию.
С тем же эффектом можно написать свой алгоритм сохранения необходимых вам данных с привязкой к сессии, например, в файлах. И это будет правильным подходом, т.к. не нарушают работы внутреннего механизма обычных сессий.