12 сентября 2010
DC.CMS и причем тут казалось бы Уроборос?! (часть №2)
Решения.
Помните, в первой статье я упомянул три вопроса, которые почти всегда встают при создании CMS системы: 1. дерево, 2. модули, 3. интерфейс. Ряд вопросов уже получили своё решение. На данный момент я считаю их оптимальными, но ждущими ряда вложений в развитие своих сил. Но эти решения работают и причем вполне успешно.
Читать далее →
Помните, в первой статье я упомянул три вопроса, которые почти всегда встают при создании CMS системы: 1. дерево, 2. модули, 3. интерфейс. Ряд вопросов уже получили своё решение. На данный момент я считаю их оптимальными, но ждущими ряда вложений в развитие своих сил. Но эти решения работают и причем вполне успешно.
Читать далее →
12 сентября 2010
DC.CMS и причем тут казалось бы Уроборос?! (часть №1)
Уроборос имеет несколько символических значений. Первое основано на символе змеи, кусающей свой хвост, – это олицетворение вечного возвращения в циклической форме или вечности вообще. В алхимической картине мира змея играет роль символа циклически протекающих процессов (испарение, конденсация, испарение – в многократном повторении)
В своей первой статье я рассказал свою историю пути по созданию DC.CMS, все шаги, варианты и вопросы которые на данный момент решены мною в новой версии системы или еще не совсем получили должное решение. Уже в этом тексте я бы хотел подробнее рассказать архитектуру своей новой системы, поделиться так сказать с общественностью, чтобы возможно увидеть какие-то замечания, предложения или вопросы. Так сказать от «глаз не замыленных».
Читать далее →
11 сентября 2010
Как я шагал по пути создания CMS
Думаю, почти каждый веб-программист задумывался на тему свой «CMS», мега крутой, мега универсальной, удобной и завоевывающей мир. Задумывались, писали, разочаровывались и писали снова. Я, разумеется, так же прошел этот тернистый путь, что-то изобретал, на глазах росли продукты вокруг, рос я и так же росли мои продукты. Хочу немного рассказать как раз о новом своём детище, как я к нему пришел это будет первой статьёй, второй станет, что представляет внутри новая система DC.CMS и как я научился говорить нет себе, мириться с рядом вещей, что не всегда удается сделать в «идеальном» мире.
Читать далее →
11 сентября 2010
Продам книги
Кстати, может кому интересно будет, продаю книги:
Фултон «Программирование на языке Ruby» 300 р.-
Максим Кузнецов, Игорь Симдянов «MySQL на примерах» (+диск) 300 р.-
Этан Уотролл, Норберт Гербер — Эффективная работа: Flash MX (+диск) 300 p.-
всё в отличном состоянии, забрать можно в Уфе в любой будний день.
Фултон «Программирование на языке Ruby» 300 р.-
Максим Кузнецов, Игорь Симдянов «MySQL на примерах» (+диск) 300 р.-
Этан Уотролл, Норберт Гербер — Эффективная работа: Flash MX (+диск) 300 p.-
всё в отличном состоянии, забрать можно в Уфе в любой будний день.
08 сентября 2010
Share helper для CodeIgniter
В общем, совсем недавно Анатолий Шарифулин, евангелист Mojolicious фреймворка для Perl опубликовал не плохой plugin для простых, но в тоже время всё чаще встречающихся действий, как «расшаривание» контента своего сайта для социальных сетей Вконтакте, Facebook, Twitter и Buzz.
Читать далее →
25 августа 2010
Роутер от Кристалл в подарок
Новая акция от компании "Кристалл".
При подключении и оплате за 2 месяца вперёд по тарифу "КРИСТАЛЛ 900" 15 Мбит/c 900 руб в месяц получает роутер D-LINK DIR-300/NRU в подарок
19 июля 2010
Чем занять себя на прокачку скиллов?!
Уже не в первый раз получаю мессаджи от начинающих программеров, ребятам не хватает вдохновения в плане проектов для прокачки своих PHP+MySQL+JS скиллов.
Понятная проблема, сам никогда не маялся с такой вещи, со времен еще Basic и Assembler программирования под ZX-Spectrum я просто, что-то видел, например офигенный красоты загрузчик, брал его и разбирал, понимал как работает и потом делал точно такой же. Или просто сразу же делал нечто такое же по своей идеи. Игры. Так же видел Dizzy например и хотелось сделать такое же.
В общем если про дизайнеров говорят — что можно научиться стать дизайнером копируя хорошие работы других, что очень верно, то программистом можно стать так же копируя всё хорошее, создавая такое же или лучше.
Конечно тут можно покривить носики и сказать: "фу-у-у-". Типа очередное изобретение велосипеда на коленке. Разумеется надо ко всему подойти с умом. Я бы даже сейчас например начав писать блог не стал например писать его с нуля на том же PHP, с нуля создавая классы, структуру, роутинг, датамаппер и т.п.
Читать далее →
Понятная проблема, сам никогда не маялся с такой вещи, со времен еще Basic и Assembler программирования под ZX-Spectrum я просто, что-то видел, например офигенный красоты загрузчик, брал его и разбирал, понимал как работает и потом делал точно такой же. Или просто сразу же делал нечто такое же по своей идеи. Игры. Так же видел Dizzy например и хотелось сделать такое же.
В общем если про дизайнеров говорят — что можно научиться стать дизайнером копируя хорошие работы других, что очень верно, то программистом можно стать так же копируя всё хорошее, создавая такое же или лучше.
Конечно тут можно покривить носики и сказать: "фу-у-у-". Типа очередное изобретение велосипеда на коленке. Разумеется надо ко всему подойти с умом. Я бы даже сейчас например начав писать блог не стал например писать его с нуля на том же PHP, с нуля создавая классы, структуру, роутинг, датамаппер и т.п.
Читать далее →
31 мая 2010
Где комфортно для студий?
После публикации Рейтинг веб-студий / Приволжский ФО, я всё в ожидании Регионального рейтинга от Тэглайн с которым они безобразно тянут.
Читать далее →
Читать далее →
07 апреля 2010
MD5, SHA1, UNIQID для генерации уникальных значений
В целом задачи как таковой затестировать скорость генерации не было (я сразу выбрал md5 изначально), но попоже захотелось быстренький на глаз сделать тестик. Что же быстрее генерит «уникальные» значения, хэширует и т.п.
Где это интересно и применимо? Пока я только увидел в системах кэширования, именно там порой много раз приходится использовать хэш-функцию для генерации например уникального ключа соответствующего нашему запросу, названию файла, адресу страницы, блока и т.п.
Читать далее →
Где это интересно и применимо? Пока я только увидел в системах кэширования, именно там порой много раз приходится использовать хэш-функцию для генерации например уникального ключа соответствующего нашему запросу, названию файла, адресу страницы, блока и т.п.
Читать далее →
12 марта 2010
Сказка-быль, да и в UWDC есть намёк #2
Второй день начался рано, в 10 утра я был готов насладиться второй частью конференции. Я сразу для себя выбрал почти один зал — технический, откинув всю эту сео-шмео шелуху с желанием впитать в себя какие-нибудь технические фишки.
Читать далее →
Читать далее →
12 марта 2010
Сказка-быль, да и в UWDC есть намёк #1
UWDC2010
Всё хотел по приезду собрать мысли и написать маленький отчет о поездке в Челябинска, но мысли всё не приходили. Мешали дела, мешали нахлынувшие мысли и даже маленькая такая депрессия в духе «а вот почему у них всё так, а в башкирии через задницу». Но я уже второй раз понял, что нужно дать себе время, успокоиться, осмыслить всё увиденное, оценить проделанный труд докладчиков и организаторов не так просто и не так быстро, тут спешка — враг, а не друг! Потому вот только по прошествии такого периода почти в две недели, я решился рассказать тут, как мы удачно съездили на UWDC!
Читать далее →
Всё хотел по приезду собрать мысли и написать маленький отчет о поездке в Челябинска, но мысли всё не приходили. Мешали дела, мешали нахлынувшие мысли и даже маленькая такая депрессия в духе «а вот почему у них всё так, а в башкирии через задницу». Но я уже второй раз понял, что нужно дать себе время, успокоиться, осмыслить всё увиденное, оценить проделанный труд докладчиков и организаторов не так просто и не так быстро, тут спешка — враг, а не друг! Потому вот только по прошествии такого периода почти в две недели, я решился рассказать тут, как мы удачно съездили на UWDC!
Читать далее →
11 марта 2010
CodeIgniter в 2ой версии переходит в Mercurial под крылом сервиса BitBucket!
Странная конечно новость и так последнее время все в ожидании выхода CI 2, так как уже подсмотрели частички в релизах ExpressionEngine 2.В целом вот EllisLab переходит на Mercurial, Assembla, BitBUcket и CodeIgniter 2 теперь на BitBucket.
Переход на Mercurial в целом понятен, хотят тянуть разные ветки децентрализованно. Только почему не GIT, этого я не понял, кроме общего врага в сабвершене и то, что они больше в команде «любят» платонически Меркуриал — больше объяснений нет.
Читать далее →
10 февраля 2010
CodeIgniter + HMVC маленький багфикс
Знаете, есть маленькая неприятность обнаруженная совсем не вовремя.В общих чертах у последнего CodeIgniter 1.7.2 загруженного из SVN и HMVC библиотеки для модульности (вы же надеюсь её используете если работаете с CI?) при РУЧНОЙ загрузки и подключении к базе данных есть баг, просто не грузится класс и не создается подключение.
Как показало «расследование» с пристрастием, ошибку содержит именно HMVC.
Давайте исправим. Открываем наш файл Controller.php из папки application/libraries нашего приложения. находим
public function database($params = '', $return = FALSE, $active_record = FALSE) {и правим на
public function database($params = '', $return = FALSE, $active_record = <b>NULL</b>) {можно было бы сохранить и всё бы заработало, но всё же код лишний присутствует и пугает своей бредовой старостью и неуважением к типам
дальше уничтожаем строку
if (class_exists('CI_DB', FALSE) AND $return == FALSE AND $active_record == FALSE)
return;и заменяем на вот эти две строки
$CI =& get_instance();
if (class_exists('CI_DB', TRUE) AND ($return === FALSE) AND ($active_record === NULL) AND isset($CI->db) AND is_object($CI->db)) return FALSE;
Всё, можно смело запускать и радоваться загружая свои любимые профили баз как захочется
$this->load->database( 'production' );
05 февраля 2010
Снимаем надоедливую надпись в CKFinder
Это мой перепост из ЖЖ, так сказать для большего народа и чтобы не потерялось.
Что сделано человеком, может и сломать человек :)
CKeditor это новая ветка FCKeditor'а визуального редактора HTML для сайтов.
В почти в стандартной поставке с редактором идёт хороший файл менеджер CKFinder, всегда надо картинки загрузить, вставить в текст, указать выравнивание, обтекание, а может даже вообще просто .DOC файл загрузить и дать посетителю скачать.
Всё бы хорошо, фотки заливаются, превью картинок делаются, но вот надпись позорная, а-дя «это демо версия, купите меня или скройте эту надпись на этот раз» — меня бесит, а я человек спокойный, если меня не дёргать так часто! Потому вот маленькое решение как убрать эту «гнусь».
ищем в папке ckfinder'а
core/js/ckfinder_gecko.js
core/js/ckfinder_ie.js
и удаляем нахрен текст en.call(window,qo); он находится в скобках после условия (не пугайтесь, код обфускачен, но вполне читаем если js_tidy + find_and_replace) и ВСЁ — ВУА-ЛЯ!
Пользуйтесь на здоровье, менеджер ваш!
Что сделано человеком, может и сломать человек :)
CKeditor это новая ветка FCKeditor'а визуального редактора HTML для сайтов.
В почти в стандартной поставке с редактором идёт хороший файл менеджер CKFinder, всегда надо картинки загрузить, вставить в текст, указать выравнивание, обтекание, а может даже вообще просто .DOC файл загрузить и дать посетителю скачать.
Всё бы хорошо, фотки заливаются, превью картинок делаются, но вот надпись позорная, а-дя «это демо версия, купите меня или скройте эту надпись на этот раз» — меня бесит, а я человек спокойный, если меня не дёргать так часто! Потому вот маленькое решение как убрать эту «гнусь».
ищем в папке ckfinder'а
core/js/ckfinder_gecko.js
core/js/ckfinder_ie.js
и удаляем нахрен текст en.call(window,qo); он находится в скобках после условия (не пугайтесь, код обфускачен, но вполне читаем если js_tidy + find_and_replace) и ВСЁ — ВУА-ЛЯ!
Пользуйтесь на здоровье, менеджер ваш!
31 января 2010
Мелочь отладки, а приятно
Знаете, есть же всё же у каждого программиста с опытом свои фишки, свои привычки, свои так сказать маленькие чертики в головах. И порой эти фишки казалось бы маленькие и очевидные, когда ты их знаешь или читаешь, но порой так облегчают жизнь. Предлагаю делиться такими мелкими фишками и не зажимать их от глаз коллег.
Я начну, пока с мелочи, но важной, очень — ОТЛАДКА.
Меня всегда мучила проблема отладки и запуска кода на рабочей (девелоперской) машине и рабочем уже сервере.
Это настройки подключения к базе данных, это другой домен, совершенно не те пути к домашней папке и т.п. Выносить в конфиги, править и править. А когда разработчиков не один или два, у каждого свои данные по базе, свои пути и прочие индивидуальные настройки. Муторно, а мы любим просто, отладил на локальной машине, открыл ftp, залил, вуа-ля — заработало!
Потому моё решение очень простое.
Так как я ставлю на рабочую машину всегда Apache, то просто в корне своего сайта в файле .htaccess создаю строку
например так.
А уже дальше в моих приложениях задаю, по этому параметру если он есть, то какие у меня настройки, какое подключение и где мы в целом работаем.
Пример того же простого конструктора с различными данными подключения
Извините, просто кусок кода из рабочего проекта, вполне такой простой и понятный на мой взгляд, но написанный один раз, будем перезаливать его сотню раз.
В общем, порой «окружение» может нам помочь очень часто, высказывайтесь о своих «фишечках» не стесняйтесь
Я начну, пока с мелочи, но важной, очень — ОТЛАДКА.
Меня всегда мучила проблема отладки и запуска кода на рабочей (девелоперской) машине и рабочем уже сервере.
Это настройки подключения к базе данных, это другой домен, совершенно не те пути к домашней папке и т.п. Выносить в конфиги, править и править. А когда разработчиков не один или два, у каждого свои данные по базе, свои пути и прочие индивидуальные настройки. Муторно, а мы любим просто, отладил на локальной машине, открыл ftp, залил, вуа-ля — заработало!
Потому моё решение очень простое.
Так как я ставлю на рабочую машину всегда Apache, то просто в корне своего сайта в файле .htaccess создаю строку
SetEnv "MPAKENV" "development"например так.
А уже дальше в моих приложениях задаю, по этому параметру если он есть, то какие у меня настройки, какое подключение и где мы в целом работаем.
Пример того же простого конструктора с различными данными подключения
class Mein_Spyder{
protected function database(){
return (!empty($_SERVER['MPAKENV'])) ?
array(
'login' => '{LOGIN_DEV}',
'psw' => '{PAS_DEV}',
'database' => '{DB_DEV}',
'host' => '{HOST_DEV}'
)
:
array(
'login' => '{LOGIN_PROD}',
'psw' => '{PAS_PROD}',
'database' => '{DB_PROD}',
'host' => '{HOST_PROD}'
);
}
public function __construct(){
$db = $this->database();
$this->db = new PDO('mysql:host='.$db['host'].';dbname='.$db['database'], $db['login'], $db['psw']);
$this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$this->db->setAttribute( PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING );
$this->db->query('SET NAMES "utf8"');
$this->db->query("SET sql_mode = default");
}
...
}Извините, просто кусок кода из рабочего проекта, вполне такой простой и понятный на мой взгляд, но написанный один раз, будем перезаливать его сотню раз.
В общем, порой «окружение» может нам помочь очень часто, высказывайтесь о своих «фишечках» не стесняйтесь
26 января 2010
AJAX и история или одна из идей как упростить себе труд
В целом об AJAX написано много. Море фреймворков, библиотек, учебников, уроков вокруг облегчающих работу с этой технологией. Но всегда хочется сделать еще проще, еще удобнее и иногда быстрее чем у других и возможно погоня за оригинальностью. Не скажу, что всё это про мой пост, просто пришла идея и захотелось реализовать.
Потому и набросал этот код чисто для иллюстрации посетившей идеи. Сильно не ругать, с JQuery я не так давно, потому как-то так, но для примера вполне хватит, главное понять идею, а дальше уже можно и другие фишки задавать.
Читать далее →
Потому и набросал этот код чисто для иллюстрации посетившей идеи. Сильно не ругать, с JQuery я не так давно, потому как-то так, но для примера вполне хватит, главное понять идею, а дальше уже можно и другие фишки задавать.
Читать далее →
26 января 2010
Какой WYSIWYG редактор вы используете в своих веб-продуктах?
Проголосовало: 15, Воздержалось: 3
Маленький опрос для того, чтобы узнать ваши предпочтения, разработчики!
10 января 2010
www.TwiMov.ru как это всё случилось?!
Хотелось бы в этом небольшом тексте рассказать о том как зародилась идея, как рождался код и что имеем на данный момент на моём проекте TwiMov.
Я с детства любил кино, этот сказочный и фантастический мир, где полно совершенно нереальных вещей. Мир не ограниченный ничем, только фантазией автора. Мир который заставляет сопереживать, сочувствовать, понимать. Кино это не настоящая жизнь, это и есть виртуальная реальность.
Так как иногда мне просто хочется, что-то сказать о фильме который я посмотрел, например нападает на меня какое графоманство, что аж не могу в себе это держать и нужно обязательно вылить это на клавиатуре, это как памятка для себя на будущее и еще раз возможность проанализировать фильм, я сажусь за компьютер и пишу рецензию. Удачная она получится или не очень мне не известно и мало волнительно, правило 80/20 всегда в уме. Но хорошие, четкие рецензии с большим количеством мыслей, идей и анализа это удел профессиональных авторов и журналистов, к радости или сожалению я ни один из них. Потому в какой-то момент по одному из топиков на нашем уфимском рок-форуме я понял, что люди не всегда готовы писать крупные рецензии, зато с охотностью вставляют свои «пять копеек». Ну а благо я стараюсь следить за всяческими тендециями в сети, хотя с первого раза и не понял к чему мне Twitter, то в этот раз он с точностью подходил к моим задачам!
Читать далее →
Я с детства любил кино, этот сказочный и фантастический мир, где полно совершенно нереальных вещей. Мир не ограниченный ничем, только фантазией автора. Мир который заставляет сопереживать, сочувствовать, понимать. Кино это не настоящая жизнь, это и есть виртуальная реальность.
Так как иногда мне просто хочется, что-то сказать о фильме который я посмотрел, например нападает на меня какое графоманство, что аж не могу в себе это держать и нужно обязательно вылить это на клавиатуре, это как памятка для себя на будущее и еще раз возможность проанализировать фильм, я сажусь за компьютер и пишу рецензию. Удачная она получится или не очень мне не известно и мало волнительно, правило 80/20 всегда в уме. Но хорошие, четкие рецензии с большим количеством мыслей, идей и анализа это удел профессиональных авторов и журналистов, к радости или сожалению я ни один из них. Потому в какой-то момент по одному из топиков на нашем уфимском рок-форуме я понял, что люди не всегда готовы писать крупные рецензии, зато с охотностью вставляют свои «пять копеек». Ну а благо я стараюсь следить за всяческими тендециями в сети, хотя с первого раза и не понял к чему мне Twitter, то в этот раз он с точностью подходил к моим задачам!
Читать далее →
07 января 2010
Коммуникатор GARMIN-ASUS Nuvifone M20 (garmin)
Неожиданно и совершенно не запланировано, я после новогодних праздников устал от своего «старого» телефона. Не то, чтобы моя Nokia E66 купленная всего лишь 4 месяца назад мне кажется уже старой, но нервы она мне потрепала изрядно, но это немного предыстории.
Я немного аскет, очень быстро привыкаю к удобным и простым вещам, что потом сложно меня отучить от такой KISS (keep it simple stupid) простоты, как показатель сложно слезть до сих пор с FAR Manager'а и почти еще пол-года назад я пользовался старым и проверенным временем кирпичом как SonyEricsson K750i, но как бы уже время пришло и пора было сменить немного затрепавшийся мобильный, долгие поиски достойных «сонек» не привели ни к чему хорошему. Мне даже до сих пор кажется, что всё, «сонькиэрики» сдулись. Потому мой выбор кое-как пал на телефон бизнес серии Nokia E66, пугало непривычное меню смартфона думал разберусь и привыкну. Но увы, «глупости» интерфейса финских разработчиков и какие-то безумные выкрутасы по установке софта меня добили и решил, что не любил продукции Нокии, не люблю и уже не заставлю себя её полюбить.
Читать далее →
Я немного аскет, очень быстро привыкаю к удобным и простым вещам, что потом сложно меня отучить от такой KISS (keep it simple stupid) простоты, как показатель сложно слезть до сих пор с FAR Manager'а и почти еще пол-года назад я пользовался старым и проверенным временем кирпичом как SonyEricsson K750i, но как бы уже время пришло и пора было сменить немного затрепавшийся мобильный, долгие поиски достойных «сонек» не привели ни к чему хорошему. Мне даже до сих пор кажется, что всё, «сонькиэрики» сдулись. Потому мой выбор кое-как пал на телефон бизнес серии Nokia E66, пугало непривычное меню смартфона думал разберусь и привыкну. Но увы, «глупости» интерфейса финских разработчиков и какие-то безумные выкрутасы по установке софта меня добили и решил, что не любил продукции Нокии, не люблю и уже не заставлю себя её полюбить.
Читать далее →
06 января 2010
Приложения в моем телефоне
Знаете, мне интересно читать моего друга Андрея, который в последнее время занялся довольно интересным делом! Таким как исследованием софта для своего смартфона Nokia E51. И в какой-то момент я понял, что такое личное исследование не должно где-то пылиться на задворках Интернета. И это не только потому, что мне последнее время так интересна тематика мобильных устройств, а новые веяния в нашей жизни уже вплотную приблизились к той самой миниатюризации компьютеров о которой так давно мечтали фантасты. Еще чуть-чуть и слова как nexus one, android, edge, 3g, umts, мобильный Интернет будут вылетать из уст даже пожилых дам летними вечерами на лавке во дворе.
MpaK
(далее текст авторский, прошу-с)
Читать далее →
30 декабря 2009
PDO и маленькая проблема placeholder'а и мнимых типов в PHP
В целом, как-то неожиданно и совершенно не вовремя всплыла у меня проблема на пару часов, которые пришлось отвлекаться и разбираться с непонятной «фигней».
Читать далее →
Читать далее →