Архивы категории «?php single_cat_title(); ?>»
Do it satchmo way нет откликов
Недавно потребовалось быстро развернуть более-менее универсальный магазин для нашего нового проекта торговли велотоварами. PHP-системы мне как-то не нравились и из симпатии к python начал было писать проект на django, но вскоре понял, что скорее всего получается велосипед, и начал искать что-то готовое. Оно пришло в виде Satchmo, весьма универсального и накручиваемого решения для электронной торговли. Что понравилось – немало настроек, в которых поначалу можно запутаться. Есть тонкости в адаптации под себя, но они описаны в документации (один отсутствующий момент – это как обновлять sitemaps, пришлось додумывать и доделывать самома). Но главное, магазин развернулся из коробки и через пару часов в нём уже можно было добавлять товары. А вот допиливания мелочей происходят уже по ходу, и зачастую незаметно для посетителей
Получение приватного SSL-ключа без пароля нет откликов
Защищать приватный ключ SSL-соединений паролем в большинстве случаев очень хорошая идея, но некоторое ПО (в частности некоторые классы PHP) не всегда нормально воспринимают такие файлы, особенно в формате PEM. Чтобы дать им счастье и умиротворение достаточно с помощью openssl провести пару простых операций импорта-экспорта и получить желаемый файл без паролей:
cat my.crt my.key > my.pem openssl pkcs12 -export -in my.pem -nodes -out my.pfx openssl pkcs12 -in my.pfx -out my-nodes.key -nodes -nocerts
В примере из файлов my.crt и my.key получаем незащищенный файл my-nodes.key. Взято отсюда.
Задание разрешения экрана в VirtualBox нет откликов
На рабочей системе я держу Kubuntu под VirtualBox в которой провожу основную разработку (привык к bash, да и gvim там как-то симпатичнее). Но вот проблема: разрешение рабочего стола у меня 1280×800, но при запуске виртуальной машины в полный экран при загрузке получаю всего 1024×768. Помогало переключение в оконный режим и возврат в полноэкранный. Но оказалось есть более удачный способ. Нужно зайти в каталог где установлен VirtualBox и запустить команду вида:
VBoxManage setextradata global GUI/MaxGuestResolution 1280,800
где последний параметр — это собственно и есть желаемое разрешение. Работает, сохраняется после выключения и новой загрузки. Такая вот магия командной строки
Unknown SSL protocol error нет откликов
При запросе из PHP с помощью HTTPRequest к интерфейсу одной серьёзной биллинговой системы получал постоянно ошибку «Unknown SSL protocol error in connection to xxx.xxx.xxx.xxx:443». Быстрый взгляд в гугл подсказал только перебирать параметры, что оказалось вполне верной догадкой: оказывается хост нормальное работал с SSLv2, который не использовался при соединении. Пришлось указать принудительно строкой:
$req->setOptions(array('ssl' => array('version' => SSL_VERSION_SSLv2)));
Потом правда всплыли и другие прелести, вроде отдачи XML в UTF-8 с типом «text/html; charset=ISO-8859-1», но такие шутки находятся быстрее и решаются проще.
Чудны дела нет откликов
Удивительно, но совсем рядом с теми людьми, кто проводит конференции разработчиков высоконагруженных систем находятся довольно забавные люди. Кто-то сравнивает непонятно что, непонятно с чем, а кто-то, видимо, начитавшись подобного пишет платёжные системы на ASP.NET, сталкивается с проблемами нагрузки и, вместо того чтобы заниматься оптимизацией БД, репликацией, установкой load balancer’а, делает такой финт: ставит несколько серверов, обслуживающих веб-запросы, которые за собой лезут к единой базе. Клиентам предлагает самостоятельно искать, какой-же из серверов сейчас доступен. Но даже, если ты счастливо находишь этот доступный сервер, это не значит, что ты совершишь свою операцию: база то одна на всех, и задержка ответов у неё дикая, и, например, список доступных провайдеров выдать быстро уже не может. Ну хорошо, отвечают они, вот вы действительно не можете получить этот список, так попробуйте увеличить время ожидания ответа. Но, максимальный таймаут прописан уже на их стороне, в обслуживающем веб-сервере и увеличить его никак! Задаюсь теперь вопросом: сколько же должно быть записей, чтобы для их получения и форматирования в SOAP-ответ требовалось более 3 минут? Вопрос почему же нельзя сделать простейший master (read/write) — slave (read) и брать статусы, списки и т.п. со второго сервера, а так-же почему бы не сделать простейший скрипт распределения нагрузки самим уже отпал
Дополнение: В процессе работы выяснился момент, что у ребят в WSDL были указаны неверные адреса сервиса, из-за этого и происходили проблемы с получением списка. Но перебор серверов всё-равно требуется.
Ассиметричный ответ нет откликов
Компания «Доктор Веб» сделала генератор ключей к вирусу Trojan.Winlock.19
Совместимость на уровне Microsoft нет откликов
Имеем: Vista x64 и Outlook 2007. Оба наших друга имеют честные лицензионные ключи из MSDN. Последний причём нужен для единственной цели – синхронизации с КПК (поэтому ставиться отдельно от Офиса). Но, сделав нормальную установку без всяких подвохов получаем сообщение «Microsoft Outlook не был установлен для текущего пользователя». Явно дело нечисто. Начинаю поднимать форумы – в русскоязычной части никакого определённого решения нет (да и не поднимали особо вопрос, хотя видно, что у него уже давняя история). Ставим все обновления к Outlook на всякий случай. Переставляю, меняю права на файлах – одна ерунда. Решение находится странице на второй странице забугорного форума. Нужно скачать программу SetACL – Windows permission management, и с её помощью сбросить права администратора у компонент командой, выполненной от администратора:
setacl -ot reg -on "HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components" -actn setprot -op "dacl:np;sacl:nc" -rec yes
Итог: несовместимость между широко распространёнными продуктами Microsoft побеждается с помощью open source утилиты.
Болезнь велосипеда в криптосредствах откликов: 5
Насколько мне известно, у нас в стране официально признан только криптопровайдер КриптоПро, и это всерьёз касается серьёзных банков и т.п. организаций. Недостаток его в том, что он сделан в виде COM-объекта, но решение как к нему подключиться, если потребуется, можно найти. А для всех остальных случаев, есть надёжный и удобный GPG/PGP с интерфейсами под кучи языков программирования, отлаженными библиотеками, и поддержкой всех платформ. Но вот как понять очередных «гениев», создающих свои библиотеки шифрования с какими-то бредовыми наворотами? Уже в третий раз за короткий срок сталкиваюсь с необходимостью прикрутить поделку неизвестных творцов и на этот раз это вообще шедевр — используются RSA ключи и нормальная PGP подпись, только в начало добавлены хэши и идентификатор ключа, да чуть изменены строковые разделители. Почему нельзя было обойтись обычной armor-записью и вытаскивать данные прямо из подписи? И ведь не поленились, написали версии под разные платформы и к тому же под C, C++, Delphi и Java.
Болезнь придумывания своего, походу, поражает только российские умы. Работали с британскими аутсорсерами одних наших партнеров — сразу предложили GPG. А наши всё пытаются или какую-то .NET DLL пропихнуть, или ещё какое-нибудь чудо, которому из настроек можно только адрес сервера дать и гадай какие у неё таймауты на соединение и логика запроса. А могли бы упростить работу по поддержке и себе. Но, пока им удобнее сотворить некое Windows DLL, а вы там уж сами разбирайтесь.
Бесплатная виртуализация нет откликов
Сегодня ещё один бесплатный (с недавних пор) продукт заслужил свое место на моем рабочем столе. Новая версия Sun VirtualBox наконец оказалась той самой системой виртуализации, которая мне действительно по душе. Шустрая, умеет прокидывать USB устройства (из-за чего были отвергнуты многие альтернативы, так как виртуальная среда мне нужна ещё и для нормальной работы с моим сканером, но это другая история), и компактная – всего 27Мб инсталлятор и 59Мб в установленном виде. Сравните с объемом VMWare – 485Мб. Но самое вкусное – интеграция дисплеев, когда все окна виртуальной машины висят на одном рабочем столе с базовой! А для аскетов доступна и версия под GPL! В-общем можно считать, что этот пост – реклама
Введение в z3c (англ.) нет откликов
Совершенно случайно нашел симпатичный и полезный учебник по основам z3c, внятно разъясняющий идею этой коллекции пакетов, и как легко и быстро приступить к их использованию.