2008-02-07

SendStudio

Одни мои хорошие знакомые из штата Огайо купили программку для рассылки информациооных маркетиноговых писем для своих клиентов (читай спама, хотя на самам дела это действительно маркетинговые письма, т.к. рассылают они именно тематические письма и именно если человек сам на них подписался - некое подобие нашего subscribe.ru). Когда покупали им как бонус дали бесплатный хостинг на JumpLine.com

Ну разумеется решили программку поставить на этот хостинг.

Несколько месяцев все работало хорошо, но вот вчера работать перестало, при обращении в службу поддержки выяснилось, что аккаунт удален из-за рассылки спама!

Вот я сижу и размышляю, если хостинг в нагрузку дали, за программу для рассылки спама, то зачем его закрывать из-за этой самой рассылки? Ужасно непоследовательно.

 

Оставить комментарий

 
  2008-01-20

SonyEricsson P1i

SonyEricsson P1iКупил себе пресловутый сабжект на день рожденья, но работать хорошо он не захотел, сначала работает хорошо, но после нескольких часов работы эта зараза перестает реагировать на входящие звонки, и позвонить с него также становится невозможно. Хотя девайсина неплохая, если бы она еще в процессе работы не пререгружалась цены бы ей не было, а так перегружается, а после перезагрузки говорит, что де прегрузилась она для повышения производительности, о какой производительности правда идет речь непонятно, так как лично моей производительности это не способствует. Еще это устройство любит прегружаться когда долго лежит без дела - наверно скучно ему становится, все бы ничего, но вот особенность этого аппарата такая что после перезагрузки он не сразу становится телефоном, а спрашивает, не нахожусь ли я в самолете, и не нужно ли включить Flight mode, видимо что бы самолет не ушел в крутое пике от излучений этого агрегата. Так как в самолете я последний раз находился четыре года назад, то этот режим для меня мало востребован, а вот дозвониться до меня в это время невозможно, так как чтобы войти в режим телефона нужно нажать несколько кнопок.

Телефон отправился в сервис центр, где мне сообщили что починят не раньше чем через месяц, так как отправят его в Питер. Так что перешел обратно на свой древний Motorola 720i, который до сих пор работает как часы, хотя купил я его четыре года назад в том же аэропорту в Хитроу откуда и летел тем самолетом. Вот так.

Странно что SE допускает подобное, раньше за ней такого не замечалось.

 

Оставить комментарий

 
  2008-01-15

Оптимизация Javascript

Встала такая задача: уменьшить размер JavaScript кода для ускорения загрузки страницы. Ну первое что приходит в голову, это удалять whitespace, для этого можно использовать JSMin, но об этом я напишу в другом посте. Основной способ уменьшения размера кода, это как можно меньше его писать и использовать как можно более короткие имена переменных. Еще одним способом уменьшения размера кода, это использовать более компактную форму записи. Обычно я при использовании объектно-ориентированного кода использую конструкции вида:

function ClassName(){ //some code } ClassName.prototype.method1 = function(){ //some code } ClassName.prototype.method2 = function(){ //some code }

Честно сказать давно искал более компактный метод и наконец нашел. Решение крылось в библиотеке prototype. Вообще то когда я первый раз познакомился с этой библиотекой мне она не понравилась. Не понравилась она мне тем что наследование классов делается не используя особенности JavaScript а тупым копированием свойств:

Object.extend = function(destination, source) { for (property in source) { destination[property] = source[property]; } return destination; }

Это не наследование, к тому-же когда я протестировал быстродействие подобного решения оно оказалось жутко не на высоте, что и следовало ожидать. Однако проблема оптимизации заставила меня взглянуть по новому на эту функцию - если ее применить не к объекту а к прототипу конструктора то получится как раз именно то что нужно, к тому же жутко компактно:

function ClassName(){ //some code } Object.extend(ClassName.prototype, method1:function(){ //some code }, method2:function(){ //some code } });

Получается гораздо красивее и компактнее.

 

Оставить комментарий

 
  2008-01-14

Перенос на новый хостинг

Возможно будут сбои в работе сайта, так как в настоящее время переношу его на новый хостинг.
 

Оставить комментарий

 
  2008-01-04

Одна сессия на два сайта

Сегодня встала задача сделать одну сессию на два домена один из которых является поддоменом другого. Решение оказалось простым, нужно вызвать session_set_cookie_params на обоих сайтах пред вызовом session_start. Вот мой тестовый пример:

<? session_set_cookie_params ( time()+60*60,'/', '.myhost.com'); session_start(); ?> <html> <head></head> <body> <?php if (!isset($_SESSION['ses_test'])){ $_SESSION['ses_test'] = 1; } print 'Value is: '.($_SESSION['ses_test']++); ?> </body> </html>
 

Оставить комментарий

 
  2007-12-26

Разбиение на страницы в блогах

Сделал наконец сабджект, теперь красота!
 

Оставить комментарий

 
  2007-12-26

Eclipse forever

Обновил Eclipse - теперь он у меня поддерживает редактирование SQL файлов. Раньше для редактирования SQL файла Eclipse открывал блокнот, теперь открывает в собственном окошке с проверкой синтаксиса - красота.

 

Оставить комментарий

 
  2007-12-26

Странное поведение eval

eval('$c = "test;'); print $c;

Несмотря на явную синтаксическую ошибку код внутри eval выполняет присваивание, хотя и выводит на экран ошибку.

Чтобы вылавливать подобные ошибки пришлось сделать буффер и смотреть не вываливает ли eval что нибудь на экран.

Так выглядит готовая функция для приобразования PHP строки в переменную:

function str2php($value){ $c = null; ob_start(); eval('$c ='.$value.";"); $error = ob_get_contents(); ob_end_clean(); if (!empty($error)) return null; return $c; }
 

Оставить комментарий

 
  2007-12-25

Скобки <>

Никак не получалось запомнить HTML коды для угловых скобочек больше-меньше > < &gt; &lt;. Оказывается запомнить их очень просто - &gt; - Great Than, &lt; - Less Than. Наверно для англоговорящих это очевидно, для меня же было не совсем.

 

Оставить комментарий

 
  2007-12-15

(Казнить [нельзя) помиловать]

Только что пришлось покапаться в исходниках vBulletin - ребята курят очень неслабую траву, весьма забористую...

После очередной модификации сайта при регистрации пользователя стало перебрасывать на совершенно экзистенциальный url вида :/forum/admincp.php - т.е. кудато пропал http из пути.

После часа ковыряний нашел следующее:

define('REQ_PROTOCOL', (isset($_SERVER['HTTPS']) AND (($_SERVER['HTTPS'] == 'on' OR $_SERVER['HTTPS'] == '1')) ? 'https' : 'http'));

Индийские программисты очень умные, очень наблюдательные, очень усидчевые... задницы, но всеже пару скобок проглядели... В результате REQ_PROTOCOL принимает значение false вместо положенного http.

 

Коментариев: 2