Архив категории 'Программирование'

Firebug. Console.log(). Или почему JavaScript не срабатывает?

Февраль 09th, 2010 | Категория Программирование

Firebug безусловно крутая штука, но иногда он становится причиной некоторых неполадок с JavaScript на странице.

Неоднократно встречался, что при включенной консоли без видимых причин не срабатывает JS на странице, всё исправляется отключением всех консолей.

Так же, для тех кто использует команду console.log(); для вывода дебага в консоль Firebugа, будьте бдительны, если вы забудете убрать эту команду из кода и на страничку зайдет человек, у которого этот плагин не установлен, это приведет к ошибке а-ля “console is not a function” (или что-то в этом роде) что и повлечет за собой невыполнение остального джаваскрипта на странице.

Кто ещё не в курсе что за зверь этот Firebug, посмотрите сюда и пользуйтесь на здоровье.

2 комментариев

Smarty-кеш или сайт тормозит

Февраль 08th, 2010 | Категория Программирование

Проект IIS+PHP+MySQL+FMS реализует видео-чат.

В качестве шаблонизатора используется Smarty (http://www.smarty.net/).
Спустя 3 года с выхода в live начал сдыхать. Это проявлялось дикими тормозами, странички которые в первое время продакшн-жизни грузились 1-2 секунды начали грузиться по 30-40 секунд. Что соответственно и породило необходимость изучить этот вопрос.

Подробнее

3 комментариев

r is not a constructor. Ошибка в TinyMCE

Июнь 26th, 2009 | Категория Программирование

Столкнулся с этой ошибкой. После небольшого ресерча нашел ответ на офсайтовском форуме.
Проблема возникает если TinyMCE не хватает каких-то файлов, зачастую из папочек plugins или themes.
После заливки MCEшки на FTP с помощью TC у меня этих папок с файлами не оказалось (Причины их отсутствия не ясны, скорее всего либо квоты на дисковое пространство или траблы с коннектом)
После дозаливки двух папочек на их законное место, TinyMCE заработала корректно.

Мораль: если TinyMCE ругается вот так: “r is not a constructor” или вот так: “o is not a constructor”, ну или подобным образом, проверь что бы все файлы и папки были на местах в нужном количестве.

Нет комментариев

MySQL. Проверка валидности даты

Октябрь 31st, 2008 | Категория Программирование

Если в MySQL сделать следующий запрос:

select date(”2008-02-31″);

умный MySQL вернет в результате запроса NULL, ну логично, что в феврале месяце в 2008 году не было 31 дня, да и 30 собственно тоже не было, а вот если написать

select date(”2008-02-29″);

то в ответе получим значение отличное от NULL, а именно эту же дату, что и будет доказательством её валидности и существования.

P.S. Не знаю как в ранних версиях с наличием такой фичи, но в 5.0.24 она есть и иногда бывает очень даже полезной

3 комментариев

Проблема с сессиями в Internet Explorer

Сентябрь 30th, 2008 | Категория Программирование

Проблема состоит в том, что из под Firefox нормально логинится на сайт (стартует сессия), а из под Internet Explorer(IE) не хочет.
С помощью josser‘а выяснили, что проблема в том, что не сохраняется сессионная кука.
Ну а проблема не сохранения сессионной куки обстояла в том, что на сервере стояло время в прошлом, и кука сохранялась с “заведомо проэкспайренной датой”.
IE и Opera  к сожалению на такой поворот событий обижаются.
Firefox’у респект, за искусственную поддержку сессий.

Лечится это всё установкой нормальной таймзоны на сервере:
# ntpdate pool.ntp.org

# tzselect

Спасибо им

3 комментариев

Большой проект. Советы

Сентябрь 30th, 2008 | Категория Программирование

В моем понимании большой проект - это проект, который длится более одного года при участии как минимум трех программистов. Именно в таком проекте я работаю уже в течении ~ полутора лет. За этот срок я неоднократно сталкивался с разного рода “граблями”. Подробнее

10 комментариев

PHPDocumentor. Как пользоваться?

Сентябрь 30th, 2008 | Категория Программирование

Кто такой PHPDocumentor (далее “документор”) можно почитать здесь:

  • на PEAR’е - http://pear.php.net/package/PhpDocumentor/;
  • на Сурсфорже - http://phpdocu.sourceforge.net/.

А промануалиться здесь - http://www.phpdoc.org/manual.php .

Вкратце скажу, что он умеет документировать PHP-код, то есть делать HTML с кликабельным описанием методов, классов и тому подобную инфу. Такая информация зачастую требуется по окончанию определенного этапа в проекте.

Для пользователей Zend Studio (http://www.zend.com/en/downloads/) нет никаких сложностей при в использовании документора, так как он встроен в нее и легко запускается ” Tools -> PHPDocumentor “. Правда, если вы используете операционную систему Windows, могут возникать некоторые проблемы с копированием необходимых файлов из за разности слешей. Пару раз столкнувшись с этой проблемой и не найдя моментального решения, решил поднять документор у себя на локали.

Исходники берем либо на сайте либо из папки с ZendStudio . DIRECTORY_SEPARATOR . bin . DIRECTORY_SEPARATOR . phpdocumentor. Копируем их к себе в htdocs/phpdocumentor, заходим http://localhost/phpdocumentor/, в закладке  “Files” указываем  файлы либо папку, файлы в которой надо документировать. Затем в “Output” указываем папку в которую будут складываться htmlки и формат вывода из выпадающего списка. В “Options” указываем название пакета и нажимаем кнопку “create” справа внизу. Чуть ниже в отдельном горизонтальном фрейме можно будет проследить за ходом генерации.

Приятного документирования ;)

PHPDocumentor

Нет комментариев

Порядковый номер элемента в списке или “выше->ниже”

Сентябрь 30th, 2008 | Категория Программирование

Иногда стоит задача, расположить запись из выборки не по порядку их создания а по желанию заказчика, то есть дать ему возможность самому поднять или опустить тот или иной элемент выборки ниже либо выше по списку. На первый взгляд задача достаточно тривиальная, но почему то, когда начинаешь копать глубже, становится очевидным, что без внимательного построения всего алгоритма “на листике” ничего не получится. Подробнее

2 комментариев

SVN. Игнорирование файла, папки

Сентябрь 30th, 2008 | Категория Программирование

Иногда бывает удобным установить игнорирование определенного файла в SVN, что бы на него не реагировали команды commit(ci) или update(up). Подробнее

6 комментариев

JavaScript Form submit

Сентябрь 30th, 2008 | Категория Программирование

Мне стыдно…

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

Проблема была в том, что я не мог вызвать submit у формы, когда у меня изменялось поле. Выглядел код так:

<form action=”" method=”post” name=”indexesForm”>

<input type=”text” name=”indexes[key]” value=”32″ onchange=”javascript: document.forms.indexesForm.submit();”>

<input type=”text” name=”indexes[value]” value=”65″ onchange=”javascript: document.forms.indexesForm.submit();”>

<input type=”submit” name=”submit” value=”Change”>

</form>

Ошибка: “document.forms.indexesForm.submit is not a function”;

Вооружившись FireBug и сделав watch на document.forms.indexesForm я понял, в чем был мой затуп. Далее идет исправленная строка:

….

<input type=”submit” name=”submitIndexes” value=”Change”>

Проблема была в том, что я кнопке submit дал такое же имя как и зарезервированному методу у объекта form - “submit”. Отсюда следовало, что при вызове document.forms.indexesForm.submit я вовсе не вызывал метод submit у формы, а заходил в свойства кнопки с name = “submit”.

11 комментариев

Следующая страница »