Проблемы с Google App Engine

написал rilian - October 13, 2008 – 13:20

Прежде чем организовывать сервисы на основе Google App Engine, примите во внимание следующие ее ограничения:

  • Лимит 1МБ на структуры данных. Включая файлы. То есть если вы хотите положить на хостинг вашу PDF презентацию размером 1.1МБ, позаботьтесь о том чтобы она была разбита на куски.
  • Лимит на 1000 смещений в запросах. И это при уже существующем лимите на 1000 элементов в выдаче. Теперь, максимальный элемент выдачи который можно получить, это 2000й (смещение на 1000 + ограничение в 1000 элементов)
  • Ограничение на кратковременную высокую загрузку процессоров. Помимо того что вычислительные запросы не могут превышать 10 секунд, если в этом запросе будет кратковременный скачок вычислений, запрос будет прерван.
  • Квоты, в общем. Представьте что вы сообщаете 1000 друзьям в Твиттере о вашем новом проекте, они в свою очередь сообщают своим 1000 друзьям, и все ломятся на ваш сайт чтобы его заценить. И вместо нового уникального интерфейса все видят сообщения типа “Квоты исчерпаны”. Больше на ваш сайт никто не заходит.
  • Отсутствие SSL. Вы не сможете отправлять уведомления через SSL. Даже на Google Checkout.
  • Отсутствие средств администрирования. Если вы хотите управлять проектом, базой и прочим - напишите панель администратора сами и учтите что права и ограничения на выполнение администраторских скриптом абсолютно такие же как и у всех других скриптов проекта.

Подробнее, если вы владеете английским, читайте тут.

Спеки от Intel

написал Владимир Кириллов - October 10, 2008 – 23:11

Заказал вчера на сайте Интела спеки (печатные копии) по x86.

Сегодня прислали ответ, что приняли заказ и сказали ждать нотификейшена об отправке.

Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 1: Basic Architecture
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3A: System Programming Guide, Part 1
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3B: System Programming Guide, Part 2

оперативно.

кто заинтересован: сайт Intel

Инсталляция любви

написал rilian - October 9, 2008 – 22:02

Техподдержка: — Слушаю вас.

Клиент: — Э-э-э-э-э… после некоторых раздумий и сомнений, я решил опять инсталлировать «Любовь». Могли бы вы мне помочь?

Техподдержка: — Разумеется. Если вы готовы, то начнем прямо сейчас.

Клиент: — Ну… Я не очень разбираюсь в процессе, но думаю, что готов. С чего начинать?

Техподдержка: — Прежде всего, откройте «Сердце». Вы знаете, где у вас «Сердце»?

Клиент: — Да. Но можно ли инсталлировать «Любовь», если запущены другие программы?

Техподдержка: — Какие программы в работе?

Клиент: — Э-э-э-э… — у меня включены «Прошлые Обиды, «Низкая Самооценка» и «Разочарование и Уныние».

Техподдержка: — С «Прошлыми Обидами» проблем быть не должно. «Любовь» постепенно выгрузит их из оперативной памяти , чтобы они не мешали работе других програм, но сохранит их в виде временных файлов. «Любовь» также сама постепенно вытеснит «Низкую Самооценку» при помощи собственного модуля «Более Высокая Самоценка», однако, вы должны сами стереть «Разочарование с Унынием» полностью, так как они препятствуют инсталляции «Любви». Вставьте скрываемое содержимое внутрь блока!

Клиент: — Но я не знаю как их стереть. Вы можете меня научить?

Техподдержка: — Конечно. Идите в стартовое меню и попробуйте включить «Прощение». Кликайте столько раз сколько потребуется, пока полностью не сотрутся «Разочарование с Унынием».

Клиент: — ОК, все получилось. Спасибо …ой… «Любовь» сама начала инсталлироваться… А это нормально?

Техподдержка: — Да, но помните, что у вас есть только базовое программное обеспечение. Окончательный апгрейд обеспечат «Другие Сердца».

Клиент: — Ой… выскочило сообщение «Ошибка! Программа не работает с внутренними компонентами». Что это значит?

Техподдержка: — Не беспокойтесь. Это не технический термин и означает, что «Любовь» уже работает с внешними компонентами, но еще не загрузилась в «Ваше Сердце». Чтобы это произошло, надо прежде всего полюбить себя.

Клиент: — Что же мне сейчас делать?

Техподдержка: — Кликните на «Самоодобрение», а затем включите следующие файлы: «Самопрощение» и «Осознание Своих Достоинств», а так же «Признание Своих Недостатков»

Клиент: — ОК, сделано.

Техподдержка: — А теперь скопируйте это в «Мое Сердце», и система сама уничтожит несовместимые файлы. Однако вам придется вручную стереть «Многословную Самокритику» из всех меню, а так же очистить Корзину. Убедитесь, что «Многословная Самокритика» уничтожена навсегда, и никогда, ни при каких обстоятельствах больше не загружайте этот файл.

Клиент: — Все получилось! «Мое Сердце» наполняется новыми файлами! На мониторе возникли «Улыбка» и «Душевное Равновесие»! Так всегда бывает?

Техподдержка: — Не всегда… Иногда это занимает гораздо больше времени… Итак, «Любовь» установлена. Еще одна деталь: «Любовь» — это бесплатное программное обеспечение. Для нормальной работы ее необходимо дарить другим и они взамен подарят вам свою.

Клиент: — Спасибо!

PyObjC, repr, str, и unicode

написал Владимир Пузанов - September 25, 2008 – 15:55

Питон прекрасно подходит для прототипирования. Особенно через интерпретатор ipython. К сожалению попытки поработать с PyObjC показали, что биндинги очень косячные.

Основная проблема в том, что __repr__ объекта должен возвращать короткое его описание (во внутреннем формате), а PyObjC возвращает вывод -[description], что напримаер для NSXMLElement - весь внутренний XML. В unicode.

И так, будем фиксить.

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

Mac OS, пол-года спустя

написал Владимир Пузанов - September 22, 2008 – 22:33

Хочется отдать дань уважения софту (и авторам), которым я пользуюсь каждый день. Или не каждый день, но когда надо - он очень полезен. Большинство программ из списка стоит премлемые деньги. Ну а если нет - то KCNScrew и iSerial вам в помощь ;)

Ссылки на софт мне опять же искать лень, но по названию на MacUpdate все находится сходу. Читать дальше »

Это все биз

написал Владимир Пузанов - September 20, 2008 – 23:10

Пока я ковыряюсь с налоговой США, кто-то снимает по $15000 в месяц с Trism. iPhone показал себя отличной платформой для бизнеса, модель AppStore себя оправдала. Конечно прием программ идет куда медленнее чем хотелось бы, а сами программы могут в любой момент “выставить за ворота” без объяснения причин…

iPhone OS - вполне себе самостоятельная платформа. Под которую готовы писать программисты. Под которую готовы писать и “быдлокодеры”, в глаза до этого не видевшие OSX, Cocoa и Objective-C. И их темпы показывают, что Objective-C совсем неплох.

Сейчас в русском аппсторе 172 страницы ПО. Это несколько тысяч программ, из которых информационных хлам - около 60%. Начиная с $3 количество хлама резко падает почти к нулю и мы получаем качественные приложения. Качественные и не очень, ибо когда для программиса новая не только платформа, а и UNIX-way/POSIX-API вообще, то косяков более чем хватает.

К чему я все это веду? Да просто MacJournal поставил и тестирую :) На самом то деле вывод сводится к тому, что пора вскакивать на разгоняющийся поезд, пока он не уехал совсем далеко.

MacOS и кириллица

написал Владимир Пузанов - August 11, 2008 – 22:56

Вот уж не знаю, проблема это леопарда или это мне хакинтош такой попался, но русский в консоли принципиально не работал.
Оказалось, что ситуация исправляется достаточно просто. Для начала в конец /etc/profile добавляем:

export LANG="ru_RU.UTF-8"
export LC_ALL="ru_RU.UTF-8"

LC_NUMERIC=”C” у меня не заработал, да и фиг с ним, жить можно.
Второй этап - это libedit леопарда. Это такая гадость, которую сунули в питон вместо GPL’ного Readline. Лечится еще проще:

sudo easy_install readline

Все, питон тоже разговаривает на русском, да и ctrl+r начал работать, что не может не радовать.

Мировой Чат

написал rilian - August 9, 2008 – 00:09

Не знаю реализовал кто-то уже подобную вещь, но вот такая идея

Есть чат в котором общаются люди с разных стран. Один пишет на русском, другой на английском, третий на китайском. И причем все понимают друг друга!

Как это реализовать:

Юзер логинится в чат и выбирает себе основной язык общения. Все его фразы отправляются на сервер, и дальше рассылаются другим участникам с переводом на лету (например юзая google translate) на ИХ язык

отаке

wchar_t и Cocoa

написал Владимир Пузанов - August 6, 2008 – 13:07

Пару дней назад мне пришлось интеграчить C++ код в проект на Cocoa. Помимо всех прелестей плюсов, целевая либа еще и использовала wchar_t для хранения строк. По идее, при sizeof(wchar_t)==4 там должен быть UTF32 (NSString внутри оперирует UTF16 через unichar). Конечно в Cocoa есть методы для конвертации кодировок, но, почему то, они не захотели работать ожидаемым образом.
Читать дальше »

Регулярные выражения в Cocoa

написал Владимир Пузанов - July 2, 2008 – 14:30

Странно, почему такой полезной вещи, как регулярные выражения, нет в Cocoa. Работая на своим веб-фреймворком мне пришлось перебрать несколько вариантов, пока я на нашел оптимальный.
RegexKit. Ну очень крутая вещь. Встроенное кеширование регулярок, встроенные категории для многих базовых классов из Foundation: NSArray, NSData, NSDictionary, NSSet, NSString. Можно собрать с поддержкой GNUstep.
Из минусов: габариты. Под макосью надо танцевать ну с очень крутым бубном, чтоб включить в проект не на базе Xcode. Хочет зависеть от AppKit. Но для pure-OSX разработки одно из самых лучших решений. В качестве бекенда использует PCRE.
re_format. Регулярные выражения по POSIX 1003.2. В макоси из коробки. Больше ничего хорошего, сказать то и нельзя. Основной минус - нельзя получать группы (структуры вида “(\w+)” для захвата кусков строки). Кроме того ман указывает на то, что regcomp() может быть медленным.
GTMRegex из Google Toolbox for Mac. Не более чем Objective-C враппер к re_format. Все минусы и плюсы сохраняются.
OgreKit. Используется в TextMate. В целом, вещь красивая. Но все доступные доки - на японском, что основательно затрудняет использование библиотеки. Дальше HelloWorld я уйти не смог (наверно просто и не хотелось, ибо от чтения манов голова ощутимо заболела), но вроде бы все базовые функции выполнять умеет.
AGRegex. Вполне неплохой функционал, но в отзывах жалуются на медлительность. Так и не понял, можно ли там получать группы, но объявлена как перл-совместимая.
ObjPCRE. Припасенная напоследок мини-библиотека. Является Objective-C враппером вокруг PCRE. Исходники - всего два файла, которые легко включить в уже существующую структуру проекта. Функционально достаточно гибкая, хотя после RegexKit не хватает категорий к NSString. Главный плюс - это компактность.

PS: для своего проекта, я выбрал ObjPCRE, поскольку интегрировать ее в существующее дерево CMake было действительно проще всего.