Архив рубрики ‘программирование’

Timezone в PHP и MySQL – странный глюк

Вторник, 3rd Ноябрь 2009 |

Столкнулся с необходимостью работы в нескольких временных зонах одновременно. До этого момента как-то не задумывался на тем, для чего оно надо, пока не столкнулся с такой ситуацией: из mysql возвращается unxi_timestamp (число секунд, прошедших с начала unix-эпохи), на стороне mysql оно форматируется при выводе в одно время, а если форматнуть его с помощью функции PHP date() то получаем время с часовой разницей.

Это из-за того, что на сайте я задаю timezone отличную от той, которая используется в mysql с помощью функции date_default_timezone_set.
(далее…)

Eclipse – редактирование HTML и CSS

Суббота, 11th Апрель 2009 |

Давно пытаюсь найти плагин для Eclipse – удобный редактор для HTML и CSS, но все как-то не везет мне с этим. Сейчас вот час убил на то чтобы поставить Eclipse HTML Editor Plugin, но не ставится он и все тут :(

Пробовал по инструкции jar распаковывать в папку plugins (как сказано в инструкции). Пробовал копировать этот файл/папку в директорию dropins (как написано тут), все равно ничего не выходит. А жаль. Если у кого получится – отпишитесь в коментах плиз.

P.S. Пробовал ставить htmleditor_2.0.6.1 на Eclipse 3.4.0 (классическая версия, с плагинами PHPEclipse, JSEclipse и Subclipse).

Updated: сам не понял после чего, но включился этот плагин :) Нарыл тут еще ссылку полезную – цветовые схемы для редактора VIM, идеи которых можно применить и в Eclipse.. Что-то меня на темненькое потянуло – нравится “tango2″ и “desert”.

Updated: интересная инструкция по установке темной темы в Eclipse.

Поддержка Internet Exporer 8

Понедельник, 30th Март 2009 |

Сейчас столкнулся с тем, что HTML+CSS полученный от дизайнера и отлаженный под всеми популярными браузерами коряво показывается в Internet Explorer 8. 

Анализ показал что дело в условии подключения CSS для Internet Explorer. У меня в заголовке страницы было написано так:

<!--[if IE]><style type="text/css">/*<![CDATA[*/@import url(css/ie.css);/*]]>*/</style><![endif]-->

В этой строке, для браузера Internet Explorer подключается свой CSS-файл. Так как в Internet Explorer 8 проведена большая работа над ошибками, то по-идее специальные CSS-файлы для него теперь не нужны. Соответственно надо и отразить это в условии подключения:

<!--[if lt IE 8]><style type="text/css">/*<![CDATA[*/@import url(css/ie.css);/*]]>*/</style><![endif]-->

Можно написать и более точно, если, скажем этот подключаемый CSS отлажен только для IE6 и IE7:

...[if (IE 6)|(IE 7)]...

Синтаксис таких условий в HTML-комментариях придуман в Microsoft и работает соответственно под его браузерами (для остальных это просто комментарий).

PHP.js: функции на Javascript, аналогичные PHP-шным

Суббота, 28th Февраль 2009 |

В копилку полезных ссылок – проект PHP.JS. Идея его проста – создать функции на Javascript, аналогичные имеющимся в PHP. Мне помогло, когда потребовалось обработать строку, упакованную на стороне сервера с помощью base64_encode().

Теоритически, программисты на PHP могут также использовать этот проект чтобы упростить себе жизнь при написании кода на JavaScript, если познания в нем невелики. Но я не думаю что это правильный путь, – надо изучать каждый язык основательно. А вот всякие полезняшки оттуда взять всегда полезно.

Монитор-мечта программера :)

Четверг, 9th Октябрь 2008 |

Увидел в сети фотку офиса Google, и прямо по-хорошему позавидовал товарищу который сидит справа со сдвоенными мониками, повернутыми на 90°. Как мне подсказали, это Dell. Похоже что вот этот.

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

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

У меня у самого на рабочем месте стоит дополнительный монитор, который можно поворачивать (Belinea). Но, к сожалению, я не нашел способа как это сделать – он подключен к ноутбуку (Fujitsu-Siemens Amilo M1425), а драйвер видеокарты не поддерживает второй монитор в развернутом виде :(  

Хех.. так и придется наверное когда-нибудь взять обычный комп, себе на рабочее место, чтобы можно ощутить все прелести больших площадей кучи подключенных мониторов :)

P.S. Обратите внимание на шикарную белую доску по всю стену. Очень, очень плезная штука в офисе программистов :)

DejaVu Sans Mono – комфортный моноширинный шрифт

Суббота, 4th Октябрь 2008 |

Если вас, как и меня, напрягает стандартный моноширинный шрифт в Windows “Courier New” (кривость, схожесть некоторых символов (например буквы “I” и цифры “1″) попробуйте поставить DejaVu Sans Mono. Массу положительных эмоций вам гарантирую! Тексты программ с этим шрифтом значительно комфортнее читаются.

Шрифт также прекрасно работает и в режиме сглаживания.

Надо будет обязательно добавить поддержку mysqli в наш класс для работы с БД

Четверг, 5th Июнь 2008 |

Изучая возможности новых версий MySQL задался вопросом, – что же это такое mysqli? Как оказалось очень классная вещь!

К своему стыду я и не знал, что mysql с версии 4.1 поддержит предварительную подготовку запросов (prepare) и их последующее выполнение с передаваемыми параметрами. Пока не выяснил только, расшаривает ли сервер (по идее должен), подготовленные запросы для всех подключений. Это ведь может резко снизить нагрузку на базу данных!

Единственно что плохо – похоже не все хостеры поддерживают его даже на данный момент (на хостинге РБК, по крайней мере не увидел где его можно включить). Поэтому лучше написать класс-враппер, чтобы можно было легко переключаться на старый протокол работы с mysql.

Полезные ссылки: толковая статья по теме (оригинал тут).

MySQL & PHP: различия в работе unix_timestamp() и time()

Четверг, 24th Апрель 2008 |

Сейчас столкнулся с тем, что функции MySQL и PHP которые по-идее должны возвращать одинаковые значения (количество секунд, прошедшее с начала UNIX-эпохи) на самом деле отличаются ровно на 1 час.

Видимо это связано с тем что сейчас идет летнее время, и у меня в Windows XP выбрана часовая зона с поддержкой летнего времени. Такой вывод я сделал потому, что раньше оно не глючило а изменилось тока то что у меня летнее время приключилось.

У меня сломался код, где я читаю поле из базы, которое заполняется функцией unix_timestamp(), и затем передаю это значение в PHP-функцию date(). В итоге имеем час расхождения (+1 час). Пришлось сделать тупой хак (код сильно править не хотелось), – читаю из базы не значение поля а результат его обработки в from_unixtime() а затем, эту строку привожу к unixtimestamp PHP-функцией strtotime().

Вывод: лучше все присвоения “текущей даты” в базу делать из PHP, меньше вероятность что вы наткнетесь на что-то такое, странное.

Проверялось на PHP версий 4.3.11 и 5.2.1, MySQL версии 4.1.11-nt

Об авторе

Меня зовут Владимир. Я живу в России, в г.Тольятти Самарской области. C 2004 года активно занимаюсь Web-разработками. Интересуюсь развитием сервисов Сети, технологиями создания и продвижения Интернет-ресурсов, компьютерными железками.. и не только ;)

Подпишись на обновления!

 RSS-канал / Email-рассылка
Поиск :