Закладочник на github

31.05.2013

Вот решил выложить в открытый доступ, возможно кому то пригодится https://github.com/JeckLabs/bmsubmitter .

Конкурс от ag.ru

08.09.2011

Читая рецензию на Deus Ex: HR (кстати классная игра всем советую) наткнулся на конкурс рабочих мест от Absolute Games. Просмотрев список участников мелькнула мысль, что у меня не хуже, и недолго думая загрузил недавно сделанную фотографию своего рабочего места.

Сама фотография сделана для экспиремента со съемкой в HDR. Ну и раз уж решил поучаствовать было бы глупо не попросить пользователей моего сайта поддержать и проголосовать за мой снимок. Все что нужно сделать это зайти по ссылке – http://www.ag.ru/iclubby/36 и поставить 3 балла моему рабочему месту. Если возникли сложности – под катом раскажу подробнее.
Остальное

Обновил закладочник до 2.1.1

08.02.2011

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

Класс Cacher (специально для Тормоза)

22.11.2010

В очередной раз Тормоз устроил дичайший холивар в своем блоге.

Я туда боюсь заходить – зашибут ещё ненароком. Между тем, задача как мне кажется легко решается. Вот накидал за 10 минут:

  1. <?php
  2.  
  3. class Cacher {
  4.     // Время жизни кэша в секундах
  5.     public $timeout = 10;
  6.  
  7.     // Массив с кэшем (хранится в памяти т. к. это всего лишь пример)
  8.     private $cache = array();
  9.  
  10.     public function __call($name, $args) {
  11.         return $this->realCall($name, $args);
  12.     }
  13.  
  14.     public function call($callback) {
  15.         $args = array();
  16.         if (func_num_args() > 1) {
  17.             $args = array_slice(func_get_args(), 1);
  18.         }
  19.         return $this->realCall($callback, $args);
  20.     }
  21.  
  22.     private function realCall($callback, $args = array()) {
  23.         $cacheKey = $this->getKey($callback, $args);
  24.  
  25.         // Выводим из памяти если существует кэш и он не просрочен
  26.         if ($this->hasCache($cacheKey)) {
  27.             echo "From cache with love.<br/>\r\n";
  28.             return $this->getCache($cacheKey);
  29.         }
  30.  
  31.         $data = call_user_func_array($callback, $args);
  32.         $this->setCache($cacheKey, $data);
  33.  
  34.         return $data;
  35.     }
  36.  
  37.     // Генерирует хэш ключ для кэша :)
  38.     private function getKey() {
  39.         $serialized = serialize(func_get_args());
  40.         $key = md5($serialized);
  41.         return $key;
  42.     }
  43.  
  44.     private function hasCache($key) {
  45.         if (isset($this->cache[$key])) {
  46.             if ($this->cache[$key]->expire > time()) {
  47.                 return true;
  48.             } else {
  49.                 // Удаляем просроченный кэш
  50.                 unset($this->cache[$key]);
  51.             }
  52.         }
  53.         return false;
  54.     }
  55.  
  56.     private function getCache($key) {
  57.         return $this->cache[$key]->data;
  58.     }
  59.  
  60.     private function setCache($key, $data) {
  61.         $this->cache[$key] = (object) array(
  62.             'expire' => time() + $this->timeout,
  63.             'data' => $data,
  64.         );
  65.     }
  66. }
  67.  
  68.  
  69. ?>

И пример использования:

  1. <?php
  2.  
  3. require './Cacher.php';
  4.  
  5. $cacher = new Cacher;
  6.  
  7. // Через __call
  8. $cacher->file_get_contents('//jeck.ru');
  9. $cacher->file_get_contents('//jeck.ru');
  10.  
  11. class TestClass {
  12.     private $param = 'paramValue';
  13.  
  14.     public function testMethod($url) {
  15.         return file_get_contents($url);
  16.     }
  17. }
  18.  
  19. $testClass = new TestClass;
  20. // Через call что бы передать имя и метод класса
  21. $cacher->call(array($testClass, 'testMethod'), '//jeck.ru');
  22.  
  23. ?>

Ушлые спамеры

19.11.2010

Вот такое письмо сейчас прибыло на почту:

Здравствуйте!

Высылаю анкету на организацию рекламной кампании для Вашего сайта – jeck.ru

Пожалуйста, заполните необходимые поля и вышлите ее на Email: valimaster@yandex.ru

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

С уважением, Владислав.

По любым возникшим вопросам обращайтесь:
Телефон: +7 (495) 585-62-89
ICQ: 569775857

Надеюсь теперь их email и icq попадут в спам базы.