Search
Write a publication
Pull to refresh
7
0
Вадим @DWSVad

User

Send message

Эта бесконечная гирлянда

Reading time2 min
Views28K

Удивительно, что такая книга, как эта, до сих пор не была замечена на Хабре. Не могу не попытаться исправить этот недочет.
Итак, хочу представить вам книгу американского информатика Дугласа Роберта Хофштадтера «Гедель, Эшер, Бах: эта бесконечная гирлянда».

Ахилл: Вот если бы книга называлась «Гориллы, серебро, золото» или «Эму, золото…» — тогда бы я еще мог понять…
Черепаха: Может быть, вы предпочли бы «Медь, серебро, бабуины»?


Будучи написано более тридцати лет назад, это невероятное произведение ничуть не утратило своей интересности.

Читать дальше →

Codeigniter: делаем сессии наконец стабильными (прежде всего для авторизаций)

Reading time2 min
Views15K
Сессии в Codeigniter хороши всем. Правда, очень удобно сделаны, особенно когда вы храните сессии в БД (что я считаю единственно верным). Куки шифрованные, в куках ничего, кроме идентификатора нету. Они привязываются к user_agent и, опционально, к IP. Красиво, безопасно.

Но есть у них очень существенный недостаток: жизнь сессии считается от поля last_activity. Это значит, что если у вас стоит expire сессии в двое суток, то при обращении к сессии, у которой last_activity < time()-172800, она ликвидируется и начинется новая. Следственно, для того что бы пользователям не приходилось каждый раз логиниться на сайт, last_activity нужно поддерживать в акутальном состоянии.
Поле last_activity обновляется в двух случаях: когда вы записываете что-то новое в сессию, либо когда сессия обновляется (по-умолчанию каждые 5 минут, опять же, относительно last_activity; указывается в конфиге). И вот главная проблема в том, что при обновлении сессии меняется session_id и текущая сессия у пользователя сессия прерывается, стартует новая.

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

Проблема «животрепещущая», о ней часто вспоминают на форумах Codeigniter, но толкового решения там нигде я так и не увидел.

Но голь, как известно, на выдумки хитра, поэтому простое решение таки нашлось.
Читать дальше →

Как сделать FULLTEXT поиск в CMS на CodeIgniter

Reading time10 min
Views6.3K
На Хабре в последнее время появляется все больше постов посвященных набирающему популярность framework'у CodeIgniter. Это довольно простой и удобный фреймворк с помощью которого можно быстро начать делать нормальные приложения на PHP. Под катом пример реализации FULLTEXT поиска в CMS на CodeIgniter.
Читать дальше →

Доработка стандартного механизма обработки ошибок в CodeIgniter

Reading time5 min
Views3.7K
CodeIgniter предоставляет неплохие возможности по обработке ошибок, но мне они показались недостаточными по следующим причинам:
  • отсутствует возможность обработки исключений
  • отсутствует возможность уведомлять администратора сайта о возникающих ошибках через почту
  • довольно скудная информацию о возникающих ошибках (в фреймворке с которым я работал раньше текст ошибки дополняется дампом глобальных переменных, что очень сильно облегчает процесс отладки, хотелось бы подобную схему увидеть и в CodeIgniter)

Будем это исправлять =)
Читать дальше →

CodeIgniter Debug Toolbar

Reading time1 min
Views4.6K
CodeIgniter Debug Toolbar
Многие видели девелоперский тулбар для фреймворка Kohana (слизанный, в свою очередь, с Symfony), который недавно выкладывали на хабре. Мне он очень понравился — захотелось поиметь такой и для себя.

Немножко поколдовав, получилось нечто похожее…
Читать дальше →

Grocery CRUD, или как я облегчил себе жизнь на неделю

Reading time2 min
Views16K
Добрый день, ХабраСообщество!
Уже почти месяц веду разработку проекта на CodeIgniter 2.0 и к середине написания столкнулся с проблемой при написании администраторской части. Так сложилось что с «CI» знаком уже более 2-х лет, и еще не разу CodeIgniter меня не подвел в своих возможностях.
Сам проект у меня исчисляется 35 таблицами и писать администраторскую панель мне необходимо для «хомячков». Подсчитав приблизительные человеко-часы необходимые на разработку интерфейса + программной части, я пришел в дикий ужас. Энтузиазм немного поутих (проект мой личный). Вспоминая добрым словом хоть какой-то CRUD в старых версиях, я рискнул «спросить Гугл», авось повезет… И повезло!
Читать дальше →

Завершён перевод книги «Pro Git»

Reading time1 min
Views198K
Что может быть лучшим подарком на день знаний для программиста? Конечно, полезная книга ;) Поэтому команда переводчиков «Pro Git» поднапряглась и доделала перевод книги на русский язык.

«Pro Git» — это довольно обширная обучающая книга о Git от Скотта Шакона — активного участника разработки проектов Git и GitHub. Автор рассматривает в тексте всевозможные аспекты работы с Git'ом, начиная с установки программы и базовых принципов работы децентрализованных систем контроля версий, и заканчивая рассмотрением внутреннего устройства Git'а и созданием валидных объектов в базе Git'а собственными руками. Несмотря на довольно обширный материал и затрагивание довольно специфических тем, книга написана довольно простым языком, содержит массу примеров и иллюстраций, и поэтому должна быть понятна и новичкам, только начинающим знакомиться с системами контроля версий.

Последняя версия перевода книги доступна в форматах pdf, epub, mobi.
Также доступна онлайн-версия перевода, но она, к сожалению, не обновлялась с мая.
Читать дальше →

Почему важно делать эскизы, прежде чем переходить к прототипу

Reading time5 min
Views56K
Вольный перевод статьи о том, почему важно делать эскизы-зарисовки, прежде чем приступать к проектированию интерфейсов. Мне, как менеджеру проектов и, частично, проектировщику интерфейсов — статья показалась очень полезной. Крайне рекомендуется к прочтению всем участникам проектных команд.



Читать дальше →

Принцип цикады и почему он важен для веб-дизайнеров

Reading time6 min
Views236K
Пару лет назад я прочитал интересные факты о жизненном цикле периодических цикад. Обычно мы не видим вокруг себя много этих насекомых, потому что бóльшую часть своей жизни они проводят под землёй и тихо сосут корни растений.

Однако, в зависимости от вида, каждые 7, 11, 13 или 17 лет периодические цикады одновременно массово вылезают на свет и превращаются в шумных летающих тварей, спариваются и вскоре умирают.

Хотя наши странные цикады весело уходят в иной мир, возникает очевидный вопрос: это просто случайность, или числа 7, 11, 13 и 17 какие-то особенные?
Читать дальше →

Разделение конфигураций в Yii по взрослому

Reading time2 min
Views13K
Вместо предисловия
Занялся я с недавних пор Yii «по производственной необходимости». До этого сидел на ZF. Некоторые вещи в Yii кажутся неудобными или негибкими. В частности отсутствие раздельное конфигурации и работа с frontend/backend. Правда AR порадовал )). Но о чем это я?!

Ближе к делу
Начнем с самого начала, с удобной и гибкой конфигурации. Разумеется что перед решением по разделению конфигурации для паблик сервера и разработчика я полазил по форумам, посмотрел что пишут на хабре… Но все решения сводятся к определению имени хоста и решения на его основе о нужной конфигурации. Но увольте, есть же тестеры, есть команды разработчиков, есть много еще чего. В общем предлагаемый подход мне не нравится. Предлагаю свое решение по примеру ZF. Все очень просто. Я использую apache, поэтому решение для него. Весть секрет заключается в определении серверной переменной APPLICATION_ENV, а все остальное как везде.

Читать дальше →

Способ конфигурации проектов Yii от ГлавВеб

Reading time3 min
Views12K
Привет всем любителям фреймворка Yii!

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

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

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity