К основному контенту

Сообщения

Сообщения за ноябрь, 2007

Построение деревьев

Небольшое введение . Весь пост написан с оглядкой на MySQL, из-за ее распространенности в web. Конечно, у Oracle возможностей больше, но хостинг с Oracle (или, например, с PostgreSQL) поискать еще надо. Нас же интересует практическое применение в веб-приложениях и обычных сайтах. Для построения сложных систем вообще надо сильно подумать над возможностью применения реляционной БД и рассмотреть другие варианты. Ведь не строчно-табличным видом все БД ограничиваются. Основным посылом к написанию этого поста послужили частые обсуждения темы хранения древовидных структур на различных форумах и комьюнити. Я с удивлением узнал, что многие люди просто не знают методов, отличных от первого, " родитель-дети ". Я точно помню, что в начале 90-х видел статью, посвященную этой проблеме, но уже не помню где. Может, вPC Magazine или в Компьютерпресс? Может даже это было в безруковской Софтпанораме. Так или иначе статья я не нашел, может, плохо гуглил. Родитель-дети Это самый распростране...

CakePHP l10n

Собственно этот пост скорее всего лучше было бы не писать, а просто положить ссылку в del.icio.us. А вдруг еще кому-нибудь пригодится? :-) На данный момент это, пожалуй, самое подробное описание локализации CakePHP 1.2 . Добавить совершенно нечего. :-)

Такая вот история

8 мая 1886 года в небольшом тогда американском городе Атланта, на заднем дворе дома, фармацевт Джон Пембертон сварил в медном тазу не совсем обычный сироп. Джон позвал своего бухгалтера Френка Робинсона и поделился с ним открытием: — Френк, друг, попробуй, что у меня здесь вышло! — А в этом что-то есть, Джон! Запиши быстрее рецепт, а то забудешь! Сироп, был сладким и густым. Джон отнес его в самую крупную в городе "Аптеку Джекобса". В тот же день первые порции сиропа, по пять центов за стакан, были проданы посетителям. Вскоре продавцы в "Джейкобсе" стали смешивать сироп с газированной водой. На протяжении своего первого года существования "Кока-Колу" раскупали в количестве девяти стаканов в день.

Pagination в CakePHP 1.2. Небольшая хитрость

Этот пост устарел! Читайте по ссылке исправленную и сильно переработанную версию ! This is totally outdated article! Follow the link to see a more complete version! Sorry. The newwer post in russian too. Как уже писал , Containable behaivior , который отлично справляется с задачей выборки только нужных для данного действия (action). И при небольшой модификации отлично работает с методом pagination . Однако есть одна неприятная вещь, опять же связанная с тем, что pagination вызывает последовательно 2 метода модели — сначала для подсчета количества записей, а потом для выборки. При попытке подсчитать количество записей у модели с большим количеством связей, paginator делает SQL запрос SELECT COUNT(*) со всеми положенными JOIN'ами, что при больших объемах данных существенно увеличивает время выполнения запроса. Особенно, если при этом еще и сортировку делать надо. Этот факт сильно раздражает, если в итоге нужно всего-лишь количество записей в основной модели. Выход есть. ...

В общественном парижском туалете есть надписи на русском языке

В 70 годах у советских военных, да и не только у них, были очень популярны американские компьютеры. Покупка такого компьютера была настоящей спецоперацией, возможно с участием КГБили ГРУ, потому, что эти компьютеры было запрещено экспортировать в СССР. Понятно, что в промышленных количествах получать американские компьютеры было невозможно и советские инженеры вовсю копировали импортную технику. Продукция компании Digiatal (PDP, VAX), если не путаю, вдохновила на создание серии СМ ЭВМ, а продукция IBM — ЕС ЭВМ. Американские разработчики, конечно, были в курсе, что их компьютеры пользуются повышенным спросом за "железным занавесом" и активно там копируются. Создатели процессора CVAX, который использовался в компьютерах VAX 3000 и VAX 6200 даже оставили на кристалле послание для русских инженеров, которые будут копировать их чип. Написано: «СВАКС... Когда вы забатите довольно воровать настоящий лучший» У известной компании Hallmark , выпускающей открытк...

Ругайтесь по-русски

Картинка из раздела "юмор" бортового журнала испанской авиакомпании Vueling Airlines . Взято у schreibikus .

Модели в CakePHP

Беда какая-то с реализацией моделей в Cake. Не то, чтобы совсем уж плохо, или не то, чтобы их совсем нет, как в Zend Framework , но реализация пока хромает. Особенно с рекурсией туго. Т.е. если 1 уровень рекурсии, то все хорошо, но если нужно 2 уровня, то уже плохо. Например, есть у нас модель "Лекарство", связанная с моделями "Производитель" и "Цена", а "Цена" связана с моделью "Валюта". Связи примерно такие: Лекарство belongsTo Производитель Производитель hasMany Лекарство Лекарство hasOne Цена Цена belongsTo Валюта Обратная связь от Производителя — чтоб можно было получить все продукты, ему принадлежащие. Однако при попытке получить данные о лекарстве получается полная фигня — либо, при recursive=1 не получаем Валюту, либо при recursive=2 получаем на втором уровне все продукты от Производитель. Для этого есть несколько решений. как для версии 1.1, так и 1.2. Чаще всего предлагается сде...

Гугл раздает бесплатный офис

Это старая новость, конечно. Просто я не слежу за изменениями в составе набора Google Pack. Но тем не менее, с удивлением обнаружил, что в Google Pack входит еще и StarOffice 8. У этого офисного пакета длинная и непростая судьба. Он всю дорогу был, насколько я помню, платным. Платным остается, вроде бы и до сих пор, но Google раздает его за так. Теперь StarOffice это практически то же самое что и OpenOffice, но с добавлением дополнительных bells & whistles вроде дополнительных шаблонов, шрифтов и т.п. Альтернативные офисные пакеты, наверняка, в скором времени получат большшое распространение, особенно, если MS продолжит свою борьбу с нелицензионным ПО. Уж больно недешев ее офис. Я знаю по крайней мере одну фирму, не компьютерную, в которой OpenOffice — корпоративный стандарт. Загрузить StarOffice можно по ссылке: Основные отличия StarOffice от OpenOffice.org: улучшенная проверка орфографии и более полный тезаурус. Вот уж неизвестно, как у него  с русским яз...