Рейтинг стран по экономической свободе

13 января, 2012 | 2 Комментариев Откомментить в дискуссии

Откупонер. Поехали

12 января, 2012 | Нет комментариев

Начинаю работы над проектом http://otkuponer.ru.

Попробую реализовать агрегатор информации о купонах на скидку. Проект мне видится невероятно сложным.

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

Пожелайте мне удачи =)

nginx, в случае отсутвтвия файла запросить апач

11 января, 2012 | 2 Комментариев Откомментить в дискуссии

решение:

location / (
    error_page 404 @fallback;
)
 
location @fallback (
    proxy_pass http://backend;
)

В двух словах: эта штуковина позволит на слабом серваке иметь отдачу под 200 страниц в секунду, если правильно настроить бэкенд (кешировать, временно статические страницы в файлуху(ramfs)).

Apache, nginx IAD

Новая версия системы управления рекламой на своих сайтах. iako 2

10 января, 2012 | 2 Комментариев Откомментить в дискуссии

Январские каникулы не прошли даром. Встречайте iako 2.http://iako.ru/page/download

Изменения:

  • Добавлена возможность вызывать рекламу через Java Script. До этого можно было вызывать только кросс-доменным php запросом.
  • Добавил возможность посмотреть на блок рекламы.
  • Изменил интерфейс с win 95 на что-то по-приятнее =)

Так же на первом месте — максимальная быстрота вызова блока. (как противоположность — openx).

Сайт пока не обновил, но уже можно качать. Если кто использовал первую версию — обновление методом замены файлов поверх старых. Только поправьте config.php
http://iako.ru/page/download

iako, iako.ru IAD

автокомплит

8 января, 2012 | Нет комментариев

Быстро привыкаешь к хорошему. Автокомплит кода в IDE, автокоплит bash команд в консоли линукса.
Сегодня почувствовал нехватку автокомплита в месседжере (icq, irc, …)
=)

Сломал половину спиц на заднем колесе вела =)

8 января, 2012 | Нет комментариев

После катания по заснеженным Сибирским просторам сломал спицы.

Половину пока катался, другую половину, пока пытался открутить трещётку =)
т.к. открутить не судьба(прикипела), придётся заменить втулку, кассету и спицы. 2 тыщи.
Пишу чтобы не забыть, что нужно забрать колесо в ремонте =)

CodeIgniter вложенные каталоги для контроллера

8 января, 2012 | Нет комментариев

Фреймворк CodeIgniter из коробки позволяет расположить контроллеры только в одноуровневой папке: dir/file/class/params

Порой случается нужно сделать dir многоуровневой, например: admin/panel/sites/user/add

При попытке обратиться к странице получим ошибку, файл контроллера не найден.

Решение (для CI 2.0, 2.1):

Создать файл /application/core/MY_Router.php

Скопировать в него:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
/**
* MY_Router Class *
* An extension to the core router class to allow controllers to be in multi-level directories.
*
* @package Router
* @version 1.0
* @author Damien K.
* @copyright Copyright (c) 2010, Ollie Rattue
* @license http://www.opensource.org/licenses/mit-license.php
* @link https://github.com/ollierattue/codeigniter-multi-level-controller-extension
*/
 
class MY_Router extends CI_Router {
 
    // --------------------------------------------------------------------
 
    /**
* OVERRIDE
*
* Validates the supplied segments. Attempts to determine the path to
* the controller.
*
* @access private
* @param array
* @return array
*/
    function _validate_request($segments)
    {
        if (count($segments) == 0)
        {
            return $segments;
        }
 
        // Does the requested controller exist in the root folder?
        if (file_exists(APPPATH.'controllers/'.$segments[0].EXT))
        {
            return $segments;
        }
 
        // Is the controller in a sub-folder?
        if (is_dir(APPPATH.'controllers/'.$segments[0]))
        {
            // @edit: Support multi-level sub-folders
            $dir = '';
 
do
            {
                if (strlen($dir) > 0)
                {
                    $dir .= '/';
                }
 
$dir .= $segments[0];
                $segments = array_slice($segments, 1);
            } while (count($segments) > 0 && is_dir(APPPATH.'controllers/'.$dir.'/'.$segments[0]));
 
  // Set the directory and remove it from the segment array
            $this->set_directory($dir);
            // @edit: END
 
            // @edit: If no controller found, use 'default_controller' as defined in 'config/routes.php'
            if (count($segments) > 0 && ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$segments[0].EXT))
            {
                array_unshift($segments, $this->default_controller);
            }
            // @edit: END
 
            if (count($segments) > 0)
            {
                // Does the requested controller exist in the sub-folder?
                if (!file_exists(APPPATH.'controllers/'.$this->fetch_directory().$segments[0].EXT))
                {
                    // show_404($this->fetch_directory().$segments[0]);
                    // @edit: Fix a "bug" where show_404 is called before all the core classes are loaded
                    $this->directory = '';
                    // @edit: END
                }
            }
            else
            {
                // Is the method being specified in the route?
                if (strpos($this->default_controller, '/') !== FALSE)
                {
                    $x = explode('/', $this->default_controller);
 
                    $this->set_class($x[0]);
                    $this->set_method($x[1]);
                }
                else
                {
                    $this->set_class($this->default_controller);
                    $this->set_method('index');
                }
 
                // Does the default controller exist in the sub-folder?
                if (!file_exists(APPPATH.'controllers/'.$this->fetch_directory().$this->default_controller.EXT))
                {
                    $this->directory = '';
                    return array();
                }
 
            }
 
            return $segments;
        }
 
        // If we've gotten this far it means that the URI does not correlate to a valid
        // controller class. We will now see if there is an override
        if (!empty($this->routes['404_override']))
        {
            $x = explode('/', $this->routes['404_override']);
 
            $this->set_class($x[0]);
            $this->set_method(isset($x[1]) ? $x[1] : 'index');
 
            return $x;
        }
 
        // Nothing else to do at this point but show a 404
        show_404($segments[0]);
    }
 
    // --------------------------------------------------------------------
 
    /**
* OVERRIDE
*
* Set the directory name
*
* @access public
* @param string
* @return void
*/
    function set_directory($dir)
    {
        $this->directory = str_replace(array('.'), '', $dir).'/'; // @edit: Preserve '/'
    }
 
    // --------------------------------------------------------------------
}

Благодарность https://github.com/ollierattue/codeigniter-multi-level-controller-extension

Тайланд, день 2, Храм Будды

5 января, 2012 | Нет комментариев

к хронологии отпуска

Храм находится недалеко от смотровой площадки. От нашего отеля в 15-20 минутах ходьбы пешком =)

На подходе ощущается величина Будды, примерно 10 человеческих ростов =) :

Справа и слева расположены колокола, постукивая в которые нужно держать в уме желание. И если потеряете концентрацию — кранты — не сбудется, инфа 146% =)

Мы с Мишей (виден вдали около колоколов) пошли направо.Мужчины направо, женщины налево. Дорога длинная, потерять концентрацию легко.

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

Восхождение длится минут 5. Можно погладить дракона, чтобы он точно не ожил.

Будда шикарен. Найдите мелкого человечка около него, ощутите грандиозность =)

Справа от большого Будды поживает 8 маленьких, на каждый день недели по Будде, и на какой-то из дней два Будды (до обеда и после). Нужно найти своего Будду(по дню недели Вашего рождения) и дать ему денег, загадав что-нибудь.

Слева от большого Будды есть толстенький, готовый исполнить ваше желание, если попадёте ему в пузо монеткой.  Можно читить, кидая 100500 монеток, или прогнуться сильно вперёд =)

Я монеткой так и не попал, хотя сильно старался. Как обычно, если не попали, желание не сбудется никогда =)

Наглядный пример читерства(в лице Миши). Подходим, кладём монетку, профит =)

Лена, в отличие от нас, попала с первого раза =)

100500 профитов гарантированно. Правда желание было, которое она загадала «Вот бы мне попасть» =)

Миша, перед повязыванием счастливой нитки. Вяжется на запястье и приносит удачу.

Нитка на руке. Пять ударов щёткой по голове и можно идти =)

Вот и моя очередь. Процесс необычный, волнующий.

Windows 7. Зависает при нажатии PrintScreen

5 января, 2012 | 15 Комментариев Откомментить в дискуссии

Как-то, не помню после чего, любимый масдай стал падать, при нажатии PrintScreen. Танцы с бубно(переустановка фреймворков, чистка реестра) мало что дали. Как обычно, буржуйский форум подсказал решение:

Решение (картинки кликабельны)

Windows IAD

Тест

4 января, 2012 | 3 Комментариев Откомментить в дискуссии

тест

© 2010 - 2025 Ядоблог. Ничего не защищено.
Powered by Лаборатория Яда. Написать Яду