Сайт переехал на новую платформу. Вопросы, предложения можно тут в комментариях.
ProblemK, Алгоритм и структуры данных
Типовой способ расчета электронной таблицы заключается в том, что в памяти строится таблица, содержащая выражения ячеек, а затем все эти ячейки рекурсивно вычисляются. То есть, если ячейка A1 ссылается на другую (скажем, C2), чтобы получить значение C2 из поцедуры вычисления A2 вызывается вычисление C2.
Несмотря на все достоинства, у такого метода есть очевидные недостатки.
Watcom vs Gcc
Для удовлетворения любопытства, скачал openwatcom 1.8 (такой бывший когда то известным компилятор c/c++), исходники под линукс. собрал, и попробовал тестовую задачку, вот эту вот
Резуьтаты:
Couchdb Benchmark II
Однако не все так плохо..
Если запустить 50 программ, каждая из которых пытается вставить по 200 записей (те же 10000 записей, что и в прошлом тесте), то вставка всех записей укладывается в 220 сек. Значит – суммарно скорость вставки при 50 процессах – 45 записей в секунду.
Кстати – база couchdb с 10000 записями (структура в предыдущем сообшении блога) занимает 54.3M.
На компьютере Intel 3.2GHz, RAM 1G, ubuntu 8.04
Couchdb Benchmark еще раз
Попробоавл тот же тест, но 10 процессов по 10000 записей. Суммарные цифры – 100_000 записей за 2308 сек. То есть 43 записи/сек. Примерно так же как и в прошлом тесте. Похоже, быстрее уде не разогнать.
Размер базы при 100000 записях – 0.6G
Couchdb Benchmark
Захотелось попробовать новую couchdb. Выглядит она хорошо, и все сделано удобно. Однако прежде чем ее использовать в каком-нибудь проекте, хотелось бы оценит ее возможности более точно.
Прежде всего посмотрим скорострельность. Для этого напишем мелкую программу на питоне, которая вставляет ну.. 10000 записей. и пусть пишет сколько секунд прошло с начала теста.
Превращение
Марк Твен
“Если вам понадобится подвергнуть молодого человека тяжелому и мучительному наказанию, возьмите с него слово, что он в течение года будет вести дневник.”
Erlang & Postgresql Auth
Для прямого доступа из эрланга в postgresql (минуя odbc) есть хорошая библиотечка, написанная Martin Carlsson из Erlang Training & Consulting ltd Здесь.
У нее есть один недостаток – она рассчитана только на md5 authentication в постгресе.
Если приложение разрабатывается с нуля, то md5 auth – не представляет проблемы, как захотим, так и настроим, но в нашем случае уже есть большой и толстый postgresql сервер, со своими админами и правилами выделения учетных записей. В этом сервере метод доступа у большинства аккаунтов – password. И никак это не поправишь. В отличие от технических проблем – административные проблемы плохо поддаются решению..
Пришлось прочитать хорошенько документацию postgresql, раздел где описан протокол, и поправить erlang-овскую библиотеку.
Вот, чтобы не забыть, что я там наисправлял, и
выкладываю diff
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Erlang Snmp Client
Вот понадобилось опрашивать некоторые железные switch через snmp из erlang. Первая попытка понять что для этого нужна (наскоком, по Буденновски) – не удалась. На erlang.org полно документации как писать и управлять snmp сервера, но вот информация по клиентам – разбросана по крупицам.