11 окт. 2009 г.

Про базы данных

Потребовалось мне для одного проекта определиться с выбором СУБД для хранения данных. Предполагаемая структура БД крайне примитивна, но существует требование высокой производительности не только на извлечение данных, но и на их запись, т.к. по первым прикидкам запись в базу будет производиться не намного реже, чем чтение из нее.


Ввиду отсутствия хоть какого-бы опыта применения баз данных на реальных задачах, было принято решение взять MySQL, PostgreSQL и SQLite и потестировать скорость интересующих меня операций.


В каждом случае была заведена таблица из трех колонок: целочисленный id, являющийся первичным ключом и трех строк по 180 символов.


Тестировались:


  1. скорость добавления одной отдельной записи в базу;

  2. скорость извлечения одной записи из базы;

  3. и скорость обновления записи.



Меня интересуют скорости операций с отдельными записями, т.к. предполагается что БД будет использоваться именно в таком режиме.


Для тестирования использовался перл-скрипт, производящий все операции и засекающий время их исполнения


Результаты. В таблице указано количество операций в секунду:


insertselectupdate
MySQL InnoDB45498942
MySQL MyISAM977451099539
PostgreSQL122317891181
SQLite12759012

Скрипт запускался несколько раз, указаны скорости, близкие к средним. MyISAM не поддерживает транзакций и тестировался просто для сравнения.


Результаты меня весьма удивили, такой низкой скорости записи я не ожидал. В ближайшее время я попытаюсь перепроверить результаты на другом компьютере.


Использовались следующие версии ПО:


  • MySQL 5.1.39 x64

  • PostgreSQL 8.4.1 x86

  • SQLite, шедший в комплекте с ActivePerl 5.10.1 x64


Тестировалось все на Windows Vista x64, на компьютере с процессором Core 2 6750 2.66 ГГц, 2 ГБ памяти.


Update: Проверка на Linux'е показала такие результаты:

insertselectupdate
MySQL InnoDB8901891690
MySQL MyISAM316218612995
SQLite1582997201

Компьютер с линуксом не первой свежести (Sempron 2800, 512 МБ памяти), этим, вероятно, объясняется снижение производительности MyISAM и других вариантов на чтение

На третьем компьютере с 32-битной вистой и конфигурацией, аналогичной первому компьютеру, результаты были таковы:

insertselectupdate
MySQL InnoDB3795793432
MySQL MyISAM914557839641
SQLite34690374

18 мая 2009 г.

КРИ 2009

Съездил в очередной раз на КРИ. Выставка, в целом, помельчала, доклады были оккупированы интелом. Докладчики от интела, судя по некоторым из них, были туда загнаны чуть ли не насильно и делали доклады не по тем темам, в которых разбираются. Микрософт с их XNA тоже был весьма уныл. Запомнившихся докладов было два: «Teamwork» Дениса Вайханского и "Геймдизайн для всех, кроме нас" Павла Епишина, затянувшийся на 20 минут.

Выглядело все так:

Если придти пораньше, можно побродить по пустым стендам

OG Games оформили свой стенд, посвященный игре Nova online, под лабораторию:

Народ завлекался широким спектром средств:

Стенд 1С помельчал с прошлого года, и показывал оказуалившийся Ил-2: штурмовик, Fallout 3 и еще что-то:

Бука показывала свои игры, некоторые из которых были сыроватыми альфами:


Нивал ненавязчиво зазывал поработать:


Kraken Games представлял «MMORPG по мотивам игры Soldat» Warside:


Девушки, завалившие всех своим спамом:


Autodesk проводил конкурс и давал планшет Wacom в качестве приза:


Обнаженные девушки рекламировали, как и в прошлом году, Mass Effect:


GSC, по всей видимости, поставила производство сталкеров на поток и показывала очередную серию «Зов Припяти»:



Пьер Гийод на своем докладе рассказывал про игры Gobliiins, для которых он рисовал; про то, чем занимался после выхода третьей части; про то, что сделал четвертую. Ролик про четвертую часть меня что-то не порадовал, игру по причине любви Пьера к трехмерной графике сделали в 3D, что как мне кажется, было лишним. Сам доклад оказался весьма сумбурным.

NVidia показывала "новую стереотехнологию", первые варианты которой я видел лет 6 назад у того же производителя, только очки тогда были проводными и втыкались в видеокарту, сейчас они беспроводные и передатчик втыкается в USB. Поступить это добро в продажу должно в июне по цене примерно в $200 (нужен еще монитор, способный выдать развертку 100 Гц).


Как говорили люди, представлявшие эти очки, батарейки в них хватает примерно на час, после чего надо 15 минут заряжать аккумуляторы, во время зарядки играть нельзя. При наличии залмановских стереомониторов по сносным ценам с поляризационными очками, которым вообще электричество не нужно (и вывод на которые также поддерживается драйверами nvidia), эта "технология" мне кажется будет не очень востребована.

В общем, все достаточно уныло. В прошлом году и выставка была побольше/поинтереснее, хороших докладов было больше. Если тенденция продолжится, вероятно, в следующем году ехать смысла не будет.

7 мая 2009 г.

Про линупс и телевизор

Есть у меня телевизор с HDMI входом и компьютер с нвидиевской видеокартой с двумая видеовыходами. Использовать его для просмотра фильмов кажется весьма заманчивой идеей.

Целью является получение системы позволяющей за минимальное время и усилия смотреть видео на телевизоре из произвольного исходного положения. Кроме того, во время использования телевизора на него не должна убегать мышка ни при каких обстоятельствах, но иметь возможность переместить мышь между мониторами должна быть (хоткеем, например).

Добиться требуемого удалось ознакомившись с двумя документами: X.Org/Dual Moniors на gentoo-wiki и NVIDIA Accelerated Linux Graphics Driver README and Installation Guide.

Итак, сначала учим систему думать, что телевизор всегда подключен: для этого добавляем строчку

Option "ConnectedMonitor" "DFP,DFP"

в секцию Device файла /etc/X11/xorg.conf. У меня два DVI выхода, поэтому написано DFP,DFP. Если один из выходов — обычный VGA DSUB, то надо писать CRT, вместо одного из DFP, если TV out, то, соответственно, TV.

После этого, иксы думают, что оба монитора всегда подключены и начинаются две проблемы: мышка убегает на на второй монитор, который выключен и иксы неверно определяют видеорежимы телевизора, т.к. не могут запросить EDID у него (т.к. реально он не подключен).

Проблема с мышкой решается добавлением строчек

Screen 0 "Screen0" 0 0
Screen 1 "Screen1" 2000 0

в секцию ServerLayout файла /etc/X11/xorg.conf. Этого достаточно, чтобы мышка перестала убегать на второй монитор, но следствием этого становится то, что на второй монитор теперь совсем невозможно попасть. Это решим позже.

Теперь с видеорежимами. Иксы при запуске запрашивают из монитора EDID — запись с данными о поддерживаемых монитором видеорежимах. Т.к. в нашем случае, монитор в момент запуска иксов отключен, иксам эту информацию брать неоткуда. По идее, решить это можно добавив строчки ModeLine в секцию Monitor соответствующего монитора или Option "metamodes" в секцию Device соответствующего видеовыхода, но мне это, по неизвестным мне причинам, не помогло. Решением было считать EDID из монитора когда он был подключен в момент запуска иксов и заставить иксы использовать EDID из файла вместо запроса его у монитора. Сохранить EDID можно либо утилитой read-edid, которая работает только в 32-битном линуксе, либо nvidia-settings, которая работает везде, но только при наличии видеокарты nvidia. Получив файл с требуемой информацией, необходимо подсунуть ее иксам. Этого можно добиться добавив

Option "CustomEDID" "DFP-1:/etc/X11/myedid.bin"

в секцию Device. Естественно, DFP-1 и путь к файлу с данными надо поправить на свои. Эта опция добавляется драйвером nvidia, и с другими драйверами скорее всего не заработает. На этом конфигурация X-сервера завершена.

Теперь настроим KDE так, чтобы он не пытался использовать второй монитор для рабочего стола. Для этого находим файл ~/.kde/share/config/kcmdisplayrc и добавляем в него строчки

[X11]
disableMultihead=true

Перезапускаем сеанс KDE и теперь на втором мониторе рабочего стола не будет.

Переключение между мониторами можно организовать установив утилиту switchscreen, и добавив хоткей для ее вызова, с помощью, например, xbindkeys.

Запускать приложения на втором мониторе можно установив переменную окружения DISPLAY в значение :0.1 перед запуском приложения. Например, так:

$ DISPLAY=:0.1 smplayer ./somevideo.avi

В моем случае, я завел скрипт для запуска smplayer'а на втором мониторе, который берет специальные настройки плеера из нестандартного места, чтобы "телевизионный" вариан вел себя несколько иначе, чем "стандартный". В частности, телевизор подключен ко второй звуковой карте, соответственно звук надо выводить на нее, а не на основную.

1 мая 2009 г.

Мишени №8 для стрельбы из пневматической винтовки с расстояния 10 м. Пусть тут полежат.

PNG, 1200 dpi (473k)

Inkscape SVG (24k)

Adobe PDF (10k)

Adobe Illustrator (37k)

Набор из шести мишеней, для печати на A4:

PNG, 1200 dpi (2836k)

Inkscape SVG (134k)

Adobe PDF (14k)

Adobe Illustrator (213k)

7 февр. 2009 г.

Про ебей, пейпал и почту россии

Однажды, долгим декабрьским (или ноябрьским) вечером меня посетила мысль, что пора бы мою старую цифромыльничку заменить на что-то посерьезнее, благо грядущий отпуск, получение отпускных и некоторая годовая премия благоприятствовали наличию некоторого количества свободных денег. Было решено купить какую-нибудь зеркалку. Из наличия в нашем мухосранске во всяких эльдорадах, технопарках и мвидиях можно найти за приемлемые деньги только олимпусы, которые начинают косить под мыльницы своими крохотными размерами (и потому мной нежелаемы), из остальных нашлось некоторое количество кенонов, но за совершенно неприличные, даже по сравнению с московскими ценами, деньги.

Наличие интернета, пластиковой карты и аккаунта в пейпале ненавязчиво так подталкивало обратить внимание на покупку через интернет. Российские интернет-магазины по непонятным мне причиным вызывают у меня отторжение и всяческие подозрения, потому они были сразу исключены (единственное исключение из этого списка: болеро, где я давно закупаюсь книгами, но они фотоаппаратами не торгуют :). Из буржуйских мне известны два сайта: амазон и ебей (естественно, их больше, но эти самые монструозные монстры, и изучения только их хватит за глаза и за уши). Причем первый он магазин, а второй пополам: магазин и аукцион. Так как внутренняя жаба во мне живет и здравствует, а слово "аукцион" подразумевает возможность купить каких-то вещей ненужных владельцу за относительно небольшие деньги, то отправился я на поиски по второй ссылке.

Дабы не искать абстрактных фотоаппаратов, мной было потрачено некоторое количество времени на его выбор, который пал на Canon EOS 400D (или его американский вариант — XTi): фотоаппарат не очень новый, что подразумевает несколько более низкие цены и для меня вполне подходящий. Также имело смысл не забывать, что сильно дорогую покупку из-за рубежа придется растамаживать, что может повлечь весьма серьезные незапланированные расходы ввиду совершенно грабительских тарифов нашей родной таможни (два года назад это было, если не ошибаюсь, 20% от стоимости покупки, включая стоимость доставки(!), превышающей 10000 рублей, курс конверсии валюты в рубли выбирается по неизвестным мне принципам). Учитывая все это покупка нового фотоаппарата была также исключена: с учетом стоимости доставки в Россию и растаможки по деньгам выходило не намного дешевле чем в магазинах, а посылка идет весьма долго. Покупка б/у аппарата тоже имеет мало смысла, особенно для любительских моделей зеркалок: затвор фотоаппарата весьма механический и имеет ограниченный ресурс, причем размер этого ресурса производителем не гарантируется (как это делается для более серьезной фототехники), и сами фотоаппараты зачастую не имеют счетчика отснятых кадров, что не позволяет оценить степень изношенности механики.

Учитывая все вышеприведенное оставался, как мне кажется, один вариант: покупка "восстановленного" (refurbished) устройства, т.е. устройства, не прошедшего проверку качества при производстве и затем отремонтированного там же. Такие девайсы продаются по заметно более низким ценам, имеют ограниченную гарантию (90 дней, обычно, плюс зачастую продавец предлагает сыграть в лотерею и продать за 30-40 баксов годовую гарантию на восстановленное устройство), и, судя по отзывам покупателей, вполне пригодны к эксплуатации.

После утрясания всех вариантов выбора начались поиски подходящих торгов. На выигрывание интересующего меня фотоаппарата ушло почти три недели. Стоит отметить, что надо внимательно читать описание товара и при любых сомнениях задавать вопросы продавцу. В частности весьма часто ушлые продавцы продавая только один фотоаппарат (body, без объектива) пытаются создать впечатление, что объектив в комплекте есть (но нигде, естественно, прямо этого не указывают: кладут стоковые фотки фотоаппарата с объективом; указывают характеристики китового объектива, но не пишут, что объектив входит в комплект поставки и т.д.), также надо обращать на возможность доставки в Россию, т.к. зачастую самые интересные вещи к нам не доставляются. Кроме того, в момент оплаты поджидает вторая засада (о которой я знал, но все равно неприятно): пейпал с прошлого года стал сам заниматься конверсией валют при оплате, т.е. если счет, к которому привязана карточка, рублевый, то пейпал сконвертирует валюту платежа в валюту счета по своему весьма нехорошему курсу, и в выписку по счету попадет запись об оплате в валюте счета (раньше пейпал брал с покупателя деньги в баксах, а конверсией занимался банк покупателя и курс был куда более вменяемым).

Итак, торги выиграны, деньги уплачены. На следующий день после оплаты я получил извещение на емейл о том, что посылка выслана и стал ждать.

Пока ждал, надумал прикупить буржуйскую книгу. Зная, что книги у буржуев стоят совершенно грабительских денег, я отправился на тот же ебей, оценить выбор, и достаточно быстро нашел интересующую меня книгу за 10 баксов + 10 баксов за доставку (596 рублей, вышло даже дешевле, чем новая в русском варианте: сравните c ценами на болере и уж тем более на озоне). Книга б/у, обещаны были небольшие повреждения обложки, что на качестве самой книги, естественно, сказаться не должно.

Итого, было заказано: фотоаппарат, высланный по словам продавца 24 декабря и книга, высланная 8 января. Все послано на следующий после оплаты день.

В конце января меня начало волновать отсутствие фотоаппарата и я стал ненавязчиво пинать продавца с просьбой узнать судьбу посылки. После предоставления всей затребованной продавцом информации, он перестал отвечать.Подождав еще неделю с лишним до момента когда до истечения срока возможности подачи претензии продавцу через ебей (45 дней) осталось 3 дня, я таки подал эту претензию. Ввиду того, что моя покупка попадала под Paypal buyer protection, меня перекинули на пейпал, где я и оформил соответствующее заявление. Процедура такова, что сначала продавцу с покупателем предоставляется 20 дней на утрясание конфликта без вмешательства пейпала, вариантов разрешения на этой стадии три:

  1. вы договариваетесь с продавцом о разрешении и закрываете заявку;
  2. вы не договариваетесь с продавцом и привлекаете пейпал к разрешению;
  3. вы нифига не делаете и через 20 дней заявка закрывается сама и вы ничего не получаете.

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

На фоне всей этой истории с фотоаппаратом, надо сказать, что книга пришла вчера. Повреждения обложки представляют собой сгиб на одном углу обложки (обложка мягкая), еле заметно испачкан другой угол плюс общая некоторая помятость, которую я склонен относить к последствиям пересылки через полмира и которая легко устраняется. В общем, этим моментом я доволен.

Причем здесь почта россии: во всей этой фигне с совершенно нереальными сроками доставки и потерей посылок я склонен винить именно их. Имея многолетний опыт покупки книг через интернет, могу сказать, что эти товарищи умудряются растягивать доставку посылки на расстояние меньше 400 километров в лучшем случае на две недели, а обычно — на месяц.

Был случай, когда было заказано около 10 книг, одной книги у продавца не оказалось и заказ был разделен на две посылки: сразу были посланы все книги, кроме одной, а последняя была послана через неделю, когда появилась в наличии. Порядок доставки, оказался обратным: книга, которая была послана отдельной посылкой пришла раньше на неделю, чем все остальные.

Еще была покупка стрелковой формы в Германии. Шла посылка 5 или 6 недель, и по получении изобиловала штемпелями мест, где она побывала. По штемпелям было ясно видно, что на территорию России она попала через 5 суток после отправления и все остальное время ползла по территории нашей необъятной родины.

Упаковка доставленной книги информации о пути не содержит, видимо от того, что это простая бандероль без ценности, поэтому достоверно сказать не могу почему так долго, но обоснованные подозреваемые у меня есть.

В качестве итога можно сказать, что что-то относительно недорого на ебее купить можно (также можно купить то, что у нас не продается вовсе: друзьям был куплен зеленый парик, который еще и приехал за рекордные две недели, видимо потому, что был послан письмом, а не посылкой). Надо только обращать внимание на описание покупаемой вещи, т.к. если окажется, что купили не то, что хотели, и продавец согласится принять вещь назад, посылку обратно придется оплачивать также из своего кармана. И надо иметь в виду, что окончательная цена на востребованный товар формируется в последние секунды аукциона, так что ориентироваться на то, что пишут даже за час до закрытия торгов совершенно не стоит.

16 янв. 2009 г.

Привет


Приветствую. Меня зовут Андрей, я работаю программистом. Занимаюсь разработкой компьютерных игр. Пока для Nintendo DS. На картинке мое рабочее место и игры, в разработке которых я принимал участие. Кроме этого, я приложил руку к азиатским версиям 007: Quantum of Solace для DS.