Фев 9
Firebug. Console.log(). Или почему JavaScript не срабатывает?
Firebug безусловно крутая штука, но иногда он становится причиной некоторых неполадок с JavaScript на странице.
Неоднократно встречался, что при включенной консоли без видимых причин не срабатывает JS на странице, всё исправляется отключением всех консолей.
Так же, для тех кто использует команду console.log(); для вывода дебага в консоль Firebugа, будьте бдительны, если вы забудете убрать эту команду из кода и на страничку зайдет человек, у которого этот плагин не установлен, это приведет к ошибке а-ля “console is not a function” (или что-то в этом роде) что и повлечет за собой невыполнение остального джаваскрипта на странице.
Кто ещё не в курсе что за зверь этот Firebug, посмотрите сюда и пользуйтесь на здоровье.
1 комментарийФев 8
Smarty-кеш или сайт тормозит
Проект IIS+PHP+MySQL+FMS реализует видео-чат.
В качестве шаблонизатора используется Smarty (http://www.smarty.net/).
Спустя 3 года с выхода в live начал сдыхать. Это проявлялось дикими тормозами, странички которые в первое время продакшн-жизни грузились 1-2 секунды начали грузиться по 30-40 секунд. Что соответственно и породило необходимость изучить этот вопрос.
Июн 26
r is not a constructor. Ошибка в TinyMCE
Столкнулся с этой ошибкой. После небольшого ресерча нашел ответ на офсайтовском форуме.
Проблема возникает если TinyMCE не хватает каких-то файлов, зачастую из папочек plugins или themes.
После заливки MCEшки на FTP с помощью TC у меня этих папок с файлами не оказалось (Причины их отсутствия не ясны, скорее всего либо квоты на дисковое пространство или траблы с коннектом)
После дозаливки двух папочек на их законное место, TinyMCE заработала корректно.
Мораль: если TinyMCE ругается вот так: “r is not a constructor” или вот так: “o is not a constructor”, ну или подобным образом, проверь что бы все файлы и папки были на местах в нужном количестве.
Нет комментариевМар 13
MySQL. Манипуляция над данными из колонок и запись результата в другую колонку
Столкнулся с тривиальной задачей. Нужно скопировать значения одной колонки в другую, преобразовав их в нижний регистр.
Немного потупил, а потом спросил у комрада. Решение элементарное:
UPDATE
tablename
SET
col2 = LOWER(col1);
где
tablename - название таблицы, над которой происходят манипуляции,
col1 - колонка с исходными значениями,
col2 - колонка с преобразованными в нижний регистр значениями из колонки col1,
LOWER - команда преобразующая значение в нижний регистр;
Соответственно, основываясь на этом примере, можно производить всевозможные манипуляциями с данными из одной или нескольких колонок и записывать результат в третью.
Нет комментариевОкт 31
MySQL. Проверка валидности даты
Если в MySQL сделать следующий запрос:
select date(”2008-02-31″);
умный MySQL вернет в результате запроса NULL, ну логично, что в феврале месяце в 2008 году не было 31 дня, да и 30 собственно тоже не было, а вот если написать
select date(”2008-02-29″);
то в ответе получим значение отличное от NULL, а именно эту же дату, что и будет доказательством её валидности и существования.
P.S. Не знаю как в ранних версиях с наличием такой фичи, но в 5.0.24 она есть и иногда бывает очень даже полезной
3 комментариевОкт 23
MySQL. Удаление записей с несуществующей ссылкой
Предположим у нас есть 2 таблички - ПАПКИ (folders) и ФАЙЛЫ (files). У файлов есть ссылка на айдишку папки, в которой они распологаются. Предположим, что по неосторожности мы удалили несколько ненужных нам папок, но забыли удалить файлы, которые лежали в этих папках. Итак, для того, что бы удалить файлы, у которых ссылка на несуществующую папку, выполняем запрос:
delete from files
where
folder_id not in (select folder_id from folders) and folder_id <> -1
В этом примере так же учтена корневая папка (-1).
5 комментариевСен 30
Проблема с сессиями в Internet Explorer
Проблема состоит в том, что из под Firefox нормально логинится на сайт (стартует сессия), а из под Internet Explorer(IE) не хочет.
С помощью josser‘а выяснили, что проблема в том, что не сохраняется сессионная кука.
Ну а проблема не сохранения сессионной куки обстояла в том, что на сервере стояло время в прошлом, и кука сохранялась с “заведомо проэкспайренной датой”.
IE и Opera к сожалению на такой поворот событий обижаются.
Firefox’у респект, за искусственную поддержку сессий.
Лечится это всё установкой нормальной таймзоны на сервере:
# ntpdate pool.ntp.org
# tzselect
Спасибо им
3 комментариевСен 30
Идея и реализация
Идея (др.-греч. ἰδέα — видность, вид, форма) — понятие (мысленный образ) какой-либо реальности, (мысль или представление о ней).
Каждый человек, если он не растение конечно-же, способен с определенной периодичностью генерировать интересные идеи, реализация которых, со временем, начинает приносить либо славу человеку, либо деньги, либо ещё какие-нибудь позитивные штуки. Но есть одна проблема…
5 комментариевСен 30
Большой проект. Советы
В моем понимании большой проект - это проект, который длится более одного года при участии как минимум трех программистов. Именно в таком проекте я работаю уже в течении ~ полутора лет. За этот срок я неоднократно сталкивался с разного рода “граблями”. Подробнее
10 комментариевСен 30
PHPDocumentor. Как пользоваться?
Кто такой 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” справа внизу. Чуть ниже в отдельном горизонтальном фрейме можно будет проследить за ходом генерации.
Приятного документирования