Архив ‘Программирование’ Category

Сортировка миллиона 32-битных integer в 2МБ памяти используя Python

Sunday, November 9th, 2008

Кто-то шутя спросил меня, как бы я сортировал миллион 32-битных integer-ов на Python, используя не больше 2МБ памяти? Принимая вызов, я изучил кое-что о буферном вводе-выводе (buffered I/O). Очевидно, это шуточный вопрос - ведь все данные будут сами занимать до 4 мегабайт в бинарном виде! Но есть еще возможная интерпретация: допустим, ...

Cocotron под Linux, пишем эффективный код

Thursday, November 6th, 2008

После того, как я написал сценарий сборки Cocotron для Linux, я задумался над тем, что Objective-C можно успешно применять и в повседневных Linux-задачах, там где я раньше думал бы над использованием C. Что же делает Objective-C таким удобным? Быстрое прототипирование (не на уровне питона конечно, но близко к этому), высокая эффективность, ...

Размышления на тему сериализации

Saturday, November 1st, 2008

Работая над FOW я столкнулся с вопросом сериализации данных (для предоставления приложению постоянных сессий). Этот очерк ни в коей мере не претендует на полноту, я просто рассматриваю те пункты, которые уже изучил по этому вопросу буквально за пару часов. Возможно я дополню этот пост более конкретными руководствами позже.

Передача параметров в Django-форму

Monday, October 20th, 2008

Типичный пример: есть интернет магазин. Юзеры создают свои категории, и добавляют в них товары. Нужно создать форму которая принимает новый товар в одну из этих категорий. В форме выводятся категории только этого юзера

Динамические древовидные меню на iPhone

Friday, October 17th, 2008

Эта статья по идее должна была бы идти перед "Динамической подгрузкой xib интерфейсов на iPhone", но вышло так, что я забыл описать эту методику. Что сейчас и исправляю. В описанном ниже коде содержится методика загрузки меню по XML-описанию, и обработка вызовов элементов.

Динамическая подгрузка xib интерфейсов на iPhone

Thursday, October 16th, 2008

Программам общего назначения может быть полезен механизм подгрузки скомпилированных xib прямо из сети. Я уже проводил эксперимент с динамическим меню (где в plist-файле описывалось древовидное меню и действия, вызываемые по разным пунктам). Сейчас захотелось попробовать полноценный динамический интерфейс.

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

Monday, October 13th, 2008

Прежде чем организовывать сервисы на основе Google App Engine, примите во внимание следующие ее ограничения: Лимит 1МБ на структуры данных. Включая файлы. То есть если вы хотите положить на хостинг вашу PDF презентацию размером 1.1МБ, позаботьтесь о том чтобы она была разбита на куски.

PyObjC, repr, str, и unicode

Thursday, September 25th, 2008

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

wchar_t и Cocoa

Wednesday, August 6th, 2008

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

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

Wednesday, July 2nd, 2008

Странно, почему такой полезной вещи, как регулярные выражения, нет в Cocoa. Работая на своим веб-фреймворком мне пришлось перебрать несколько вариантов, пока я на нашел оптимальный. RegexKit. Ну очень крутая вещь. Встроенное кеширование регулярок, встроенные категории для многих базовых классов из Foundation: NSArray, NSData, NSDictionary, NSSet, NSString. Можно собрать с поддержкой GNUstep. Из ...