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

Сообщения

Архив фотографий журнала LIFE

Google договорился с журналом и оцифровал фотоархив. Архив содержит фотографии начиная с 1750 года. Николай Второй, Ленин, Гагарин, Черчилль, Хрущев, Кеннеди, Ельцин. Фтографии в свободном доступе, ищутся поиском по фотографиям. Можно искать конкретно по фотоархиву, тогда надо написать в поисковой строке, в конце запроса, source:life . Фотки о компьютерах: Практически один из первых программистов, 1947 год. Это не на PHP код лабать, тут нужна физическая сила, чтоб ручки крутить ;-). ENIAC перепрограммировался очень оригинально. Для этого нужно было установить вручную связи между полупроводниками, т.е. фактически перекоммутировать веь компьютер. Т.е. программа задавалась механически. Ввод данных для программы компьютера ENIAC, 1948 год. ( ENIAC, IBM's electrical problem-solving machine, clerk registering informationon with banks of dials, at Aberdeen Proving Ground. ) А вот и советский компьютер в АН СССР, апрель 1959 ( Academy of Sciences Computer Center in USSR. ). Это...

Заходи, кто хочет

Забавное объявление на двери магазина вчера увидел. Остаются пара вопросов: “А с мороженым можно?” и “Можно-ли с чем-нибудь одним – с животым или просто на роликах?” :-)

Частичный переезд

Я решил оживить домен handmadesite.net и переношу все посты про Shop-Script, Cake, ZendFramework, PHP и т.п. туда. А то мой “уютный дневничок” стал похож непойми на что. :-) Ну и еще там можно подписываться на каменты, да и вообще… Счас потихоньку все более менее свежие тематические посты дублирую туда, а здесь запрещаю их комментарии. Вот. Велкам всем, кому интересна эта тематика. :-)

Пара пятничных анекдотов

Спасибо “Юридическому блогу” , повеселил. Кстати, рекомендую сам блог к прочтению и подписке. Москва. Стоит мужик в пробке. Вдруг стук в окно. Опускает стекло и спрашивает: - Что надо? - Понимаете, террористы взяли министра финансов в заложники и требуют 10 миллионов долларов выкуп, иначе они обольют его бензином и подожгут. Мы решили пройти по машинам, кто сколько даст. - Ну… Я - литров 5 могу дать. <тук-тук-тук!> - Кто там? - Это мы — топ-менеджеры! - А ну пошли на хер отсюда!! - <топ-топ-топ-топ-топ…> В бразильскую деревню приехал бизнесмен и объявил что покупает местных обезьян по 10 песо/штука. Обезьян вокруг море, жители рады - все сдают обезьян в розницу и оптом по 10 песо. Обезьян стало меньше, тогда бизнесмен сказал, что повышает цену до 20. Жители напряглись, изловили последних обезьян, принесли-сдали по 20. Самых последних забрал за 25, а потом объявил что хочет еще! - и уже по-50! Но сам уехал и оставил управляющего. Управляющи...

Пессимисты учат китайский

Так, на всякий случай: заголовок взят из старого советского анекдота. Полностью это выглядит так: “Оптимисты изучают английский язык, пессимисты китайский. А я реалист – я изучаю автомат Калашникова.” Парой забавных китайских фраз поделился в своем дневнике Илья Яшин : Фраза «Не могли бы вы вернуться на профсоюзное собрание?» по-китайски: «Ни хуйбухуй хуй дао гунхуй дахуй?» . Фраза: «Шаг за шагом идем мы к цели» звучит по-китайски так: «И бу и буде дадао муди» .

Ой, как некрасиво!

Фраза “Опубликованные в блоге статьи защищены авторским правом РФ” в нижней части сайта Программируем на CakePHP , конечно, производит впечатление, но какое-то странное. В основном из-за того, что опубликована вместо копирайта автора бесплатного шаблона . :-) Скриншоты на всякий случай. Кликабельны. Оригинальный шаблон: Творческая переделка:

Административный ресурс

Отличный пример использования административного ресурса. Догадываюсь, какого рода телефонограммы и распоряжения получают руководители перед настоящими выборами. Картинка и обсуждение в посте kimmiracer.livejournal.com

Кошачьи

This post has been permanently moved to my standalone blog Этот пост навсегда перемещен в мой блог

Кэшируй, кэшируй, кэшируй запрос назло буржуазной Европе!

Обсуждение и дальнейшее развитие темы смотрите в блоге "WEB рукоделие" . Комментируйте там же. Простите за неудобства. Это опять пост про Shop-Script. Давно обещанная на форуме WebAssyst практика кэширования запросов многострадального ШопСкриптаПро. Предыстория этого вопроса такова: одно время магаз на ShopScript работал у меня на довольно хилом VDS и посещения поисковых ботов практически клали сервер на обе лопатки. Типичная, так сказать, DDOS атака :-) Поэтому я озаботился производительностью самого скрипта. Предпринял следующие логичные, как мне кажется, шаги: Добавил недостающие индексы в разные таблицы с товаром, параметрами товара, категории, валюты и т.д. Убрал подсчет запросов категорий и товаров . Во-первых это оказалась бесполезная фича, во-вторых это было просто. Закэшировал несколько запросов. Эти три пункта помогли решить проблему. Не знаю, какой оказал бОльшее влияние, но первого точно было недостаточно. Объяснять как установить PEAR, доба...

Анатомия финансового кризиса

По-моему очень познавательный пост в блоге Антона Антича “Воскресные баксы” . Мне понравилось. …Чтобы совсем проще, поясню на примере. Вася, плохой заемщик, занял у меня 1000 рублей и выплачивает мне по 100 рублей в месяц в течение года, а Петя, хороший заемщик - 5000 рублей и выплачивает мне по 500 рублей в месяц в течение года. Я выпускаю десять бумажек, по каждой из которых обязуюсь выплачивать 60 рублей в месяц, и продаю их десяти своим друзьям по 700 рублей за штуку. Таким образом: — я сразу зарабатываю 1000 рублей чистой прибыли (7000 за бумажки - 6000, которые я дал взаймы) — друзья счастливы, потому что получат 720 рублей вместо вложенных 700 равными ежемесячными платежами — риск невозврата магическим образом исчезает, потому что я объединил платежи от плохих заемщиков с хорошими и про мои бумаги Иван Семенович, мнению которого все доверяют, сказал, что они очень надежные. Читать полностью .

Отключаем у Shop-Script показ погоды на Луне

Обсуждение и дальнейшее развитие темы смотрите в блоге "WEB рукоделие" . Комментируйте там же. Простите за неудобства. Сначала обоснование. Счетчик показов информации о товаре и показов категории – обычное целочисленное поле в БД. Каждый раз когда запрашивается категория или просмотр информации о товаре, Shop-Script прибавляет к значению единицу. В теории должна получиться статистика просмотров и распределение товаров по популярности. Но кроме людей сайт посещает еще много разной живности, да и, скажем троекратный, просмотр товара одним пользователем не может считаться тремя просмотрами. В итоге такие сомневающиеся пользователи вместе с шумной и прожорливой толпой поисковых ботов накручивают эти счетчики. Как следствие — наиболее точно эти самые счетчики показывают погоду на Луне. Сэкономить миллисекунды на 1 запросе – тоже хлеб. — Как же так, Родион, старушку – всего за 20 копеек!!! — Ну не скажите, Порфирий Петрович… Пять старушек – уже рупь… Отк...

Уломали :-) Улучшаем URL в Shop-Script

Обсуждение и дальнейшее развитие темы смотрите в блоге "WEB рукоделие" . Комментируйте там же. Простите за неудобства. Идея в общем-то простая – с помощью апачевского модуля mod_rewrite преобразовать “красивые” URL в такой набор параметров, которые понимает скрипт. Самые частые пути: www.shopscripsite.ru/index.php?productID=nnnn www.shopscripsite.ru/index.php?productID=nnnn&discuss=yes www.shopscripsite.ru/index.php?categoryID=nnnn Создадим в корне сайта файл .htaccess, если, конечно, его еще нет. И добавим в него такие строчки: <IfModule mod_rewrite.c>     RewriteEngine On     RewriteRule ^product/([^/]*)/discuss /product/$1/?discuss=yes [QSA,NE,L]     RewriteRule ^product/([0-9]*) /index.php?productID=$1 [QSA,NE,L]     RewriteRule ^category/([0-9]*) /index.php?categoryID=$1 [QSA,NE,L] </IfModule> Скажу честно – я не профессионал в составлении правил для mod_rewrite и Perl-овые рег...

Новый мем родился

О фильме “Адмирал”: …Конец немного предсказуем. Где-то с середины фильма было такое чувство, что в конце Колчака растреляют. Так и вышло… Отсюда . Похоже мем займет достойное место в коллекции Луркоморья .

Почитать о CakePHP

Некоторое время назад наткнулся на хороший и полезный русскоязычный блог посвященный CakеPHP. Можете добавить к себе в закладки и/или RSS-ридер: Программируем на CakePHP . Мне понравилось. Посты достаточно разноплановые, но все в той или иной степени полезные. Самое важное – автор не забросил свое начинание после 2-3 постов, так что есть надежда, что проект будет жить и дальше. Еще интересный проект, правда неоконченный. Марафон MVC фреймворков . Автор пытается создать проект на разных фреймворках и оценивает различные особенности каждого. Участвуют ASP.NET MVC, CakePHP 1.2RC2, Catalyst 5.7, Django 0.96 и RoR 2.1. Мысль давно сидящая в голове : а не пора-ли мне с Blogger’а съехать на standalone? :-)

Киянкой по голове – лекарство от болезни роста

Окончание о болезнях роста баз данных . Как и предсказывали друзья , переход на InnoDB и шаманство с типами связующих полей двух больших таблиц в MySQL не дали сколько-нибудь приемлемого результата. После размышлений о непредсказуемом результате, смысле жизни, затратах на смену СУБД, от перевода всего на PostgreSQL решил отказаться. Против лома нет приема и построчный перебор результатов запроса решил сделать обычными методами PHP, в обход Cake. Тоже, скажем прямо, не Cake way :-) Первым делом поискал гугловской группе сообщения на аналогичную тему. Таки да, есть люди со схожими запросами . Более того, во глубине сибирских руд классов CakePHP есть метод fetchRow, но он неинтересен совершенно. При выполнении запроса Cake хранит ссылку на результат последнего запроса у себя в свойстве и перебирать построчно результаты можно, только если при этом не выполнять никаких других запросов. В противном случае результат запроса, естественно, будет перезаписан. Поэтому задача перебора строк...

Болезни роста

Две таблицы в БД. Обе примерно по полмиллиона записей, а в рабочем виде будет и больше, миллиона 2-3. Таблицы не сами по себе, а связанные Один-ко-многим. При LEFT JOIN все это безбожно тормозит, невзирая на тип ключей, по которым идет связка, пробовал и INT вместо VARCHAR, который там изначально. Думаю над тремя вариантами. Обработку связей унести в код модели/контроллера Cake. т.е. SELECTить все по одельности. Попробовать InnoDB вместо MyISAM Перенести на PostgreSQL Пока обдумываю варианты, как буриданов осел, работа не движется. Буду пробовать на выходных сначала пункт 2, как наиболее простой в реализации, потом 3, потом 1-й как самый, на мой взгляд, идеологически неверный :-)

Неочевидное поведение метода updateAll

Как неожиданно выяснилось, методу Model::updateAll совершенно наплевать на указания contain, усли подключен ContainableBahavior , а также на значение свойства Model::recursive. Несмотря ни на что, при вызове Model::updateAll все равно подключались все зависимые модели. Вылечилось жесткой командой (дело было в методе модели): $this->unbindModel(array( 'belongsTo'=>array_keys($this->belongsTo), 'hasOne'=>array_keys($this->hasOne), 'hasMany'=>array_keys($this->hasMany) )); Но осадочек в душе остался. :-)

Если у вас нету капчи

Развитие Shop-Script Pro и Premium остановлено, вместо них теперь WebAssyst Shop-Script. Спору нет, обновка хороша, но особых причин переводить уже работающие проекты на новый движок я не вижу. Раз нет поддержки, то дорабатывать старые версии придется самостоятельно. Спамеры, похоже, отлично умеют распознавать старый движок и спамить по формам описания и обсуждения товаров. Поэтому нужно к ним приделать капчу. Вся эта операция займет 10-15 минут. Первым делом, надо скачать отличный скрипт KCaptcha . Из архива надо извлечь полностью папку ‘fonts’ и файлы kcaptcha.php и kcaptcha_config.php. Сложить их в отдельную директорию на сервере, я, например, поместил их в ‘/kcaptcha’. После этого на основе примера надо написать маленький скрипт, который будет по запросу генерировать картинку и записывать код, отображенный на ней, в переменную сессии. Я сделал вот такой: <?php include('kcaptcha.php'); session_start(); $captcha = new KCAPTCHA(); $_SESSION['captcha_keystring...

Докатились

С сайта РБК : Федеральная служба по финансовым рынкам (ФСФР) приняла решение о запрете с 18 сентября проводить на биржевом рынке маржинальную торговлю, а также заключать короткие продажи с ценными бумагами без обеспечения, сообщил журналистам глава ФСФР Владимир Миловидов. "То есть мы запретили основные нервозные сделки, которые влияют на фондовый рынок", - отметил он. Глава ФСФР не исключил, что в ближайшее время эти запреты могут быть распространены и на внебиржевой рынок. Кроме того, в среднесрочной перспективе будут разработаны ограничения и по срочным сделкам, в частности это коснется опционов. Наиболее точно отображает ситуацию выражение “это – пиздец”. Это значит, что у правительства просто нет никаких идей и реальных рыночных рычагов воздействия. Премьеру пора подумать об отставке.

Форум WebAssist

Articus явно зашевелился. Выпустив кучу полезных и не очень сервисов и скриптов, а также новую версию своего ShopScript, наконец-то открыли форум для общения пользователей их продуктов. Это радует. :-) Поправлю по-человечески скрипт Sitemap для Shop-Script а также напишу про то, как я сделал кэширование в Shop-Script PRO и выложу там ссылки. Народу пока немного, но и форуму всего неделя. Присоединяйтесь! :-)