Wednesday, December 31, 2008

the beatles

некоторое время назад, благодаря постоянным «новостям» о том, что битлы наконец проложат свой путь в itunes music store, я решил таки послушать что и как они поют. и это оказалось для меня потрясением — большинство песен с точки зрения звука оказались беспомощным говном. я был в шоке от этого феномена и решил не обращаться к этой теме больше. но недавно услышал как fiona apple поет их песню и понял, в чем дело.

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

например — битлы:



и fiona apple:



второй по звуку для меня на порядок приятнее.

Tuesday, December 23, 2008

restore data from broken hdd

сохранность данных

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

восстановление данных

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

дальше уже все было просто — подключаем в powermac, запускаемся, с трудом грузимся, монтирование диска происходит в течении десятка минут. на диске у меня два раздела и если второй смог показаться в finder и я спокойно смог начать копировать с него данные, то первый не мог ни подключиться, ни пройти верификацию в disk utility. тут я вспомнил, что были две программы, которые могли бы помочь мне скачать информацию даже с такого раздела. этими программи оказались TechTool Pro 4.6.2 и Data Rescue II.

кратко о том, каков у них принцип работы.

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

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

TechTools Pro — это такой небольшой комбайн для тыканья ответкой в разные чувствительные части вашего мака. он вроде может определить неисправность основных узлов и сказать, что с вашим алюминием в порядке, а что — не совсем. заодно может создать специальный скрытый раздел на диске с собой любимым и как–бы восстанавливает данные.

программа проработала около 14 часов и прогресс остановился. я нажал кнопку отмена и она (о чудо!) и вывела список директорий, которые она думала, что могла бы восстановить. спустя три часа после копирования одного из файлов я решил прервать этот процесс, потому как у меня было ощущение, что это не закончится никогда. результат: около 20 часов работы, около 20 восстановленных файлов из нескольких каталогов в домашней директории. вернуться к списку директорий мне не позволили и это полностью определило дальнейшую судьбу программы — она отправилась в корзину. если остальные функции этой программы реализованы также хорошо, то она не стоит своих денег и … вообще ничего не стоит.

Data Rescue II «умеет» только восстанавливать файлы. но функциональность в целом схожа с восстановлением у TechTools Pro. то есть софт чрезвычайно долго мурыжит диск, потом выдает список «восстановимых» файлов и при выборе мучительно пытается их восстановить. завершения процедуры я не дождался, на часах уже были третьи сутки с момента падения диска.

эти программы дали мне довольно много информации о том, как вообще живет софт восстановления данных на mac os x. его просто нет. бэкапьтесь почаще!

как показал гугл, восстановление данных с диска формата hfs+ стоит от 250 евро. в моем случае нужно было бы еще и убирать гермоблок, то есть еще около 100 евро. данные, которые у меня были не сохранены, столько не стоили и я решил попробовать сам все скопировать.

закат солнца вручную.

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

подготовка

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

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

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

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

допустим, вам повезло

стоит понять, какая вероятность того, что ваши данные восстановимы. если диск монтируется и с него даже худо–бедно что–то копируется, то вам повезло. точно также вам повезло, если вы сможете подмонтировать диск с помощью команды mount_hfs -j (это значит, что вы просто проигнорировали журнал при монтировании). это и было степенью моего везения. после этого я с помощью команды cp в терминале (Finder перестает копировать файлы после первой ошибки) получил все важные данные (некоторые не скопировались, конечно, но основное я получил). при этом я скопировал всего 3 гигабайта из 45 в течении часа. это одна из причин, почему план спасения данных, расписанный вплоть до файлов с директориями — хорошая идея. при этом начало диска оказалось безнадежно испорчено — 200 мегабайт из начала копировались 4 часа. но тут уж как повезет.

возможно, не повезло

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

dd bs=4096 if=/dev/disk2s2 of=/Volumes/vert/tristane.dmg conv=noerror,sync

где 4096 — размер блока, /dev/disk2s2 — это ваше отвалившееся устройство, /Volumes/vert/tristane.dmg — место и файл, куда будут сбрасываться полученные данные. эта процедура может длиться очень долго. может даже недели. так что озаботьтесь доставкой пиццы и кока–колы для себя и бесперебойным питанием для компьютера, на котором вы будете переливать все из пустого (все непрочитанные блоки dd забивает нулями) в порожнее. кроме того, за этим компьютром вам будет сложно работать, потому что иногда система перестает отвечать. еще раз повторю, что, возможно, ждать придется долго.

допустим, у вас спустя время создался образ вашего диска. вот теперь вы можете напустить на него Data Rescue II. есть вероятность, что он даже найдет в образе несколько файлов.

ну и в последний раз повторюсь — не хотите производить эти все операции — делайте backup.

Sunday, November 30, 2008

Friday, November 28, 2008

http://www.ibm.com/developerworks/ru/library/os-whistle/index.html

напоминает анекдот:

«В одной деревне жил старичок, который мог напердеть любую мелодию. И вот
узнали об этом телерепортеры. Приехало к нему телевидение, берут,
значит, интервью.
Журналист: А правда, что вы можете напердеть любую мелодию?
Старик: Да, конечно.
Журналист: А "Калинку-малинку" можете?
Старик: Могу.
И напердел мелодию.
Журналист: А " Во саду ли в огороде" слабо?
Старик: Нет.
И тоже напердел песенку.
Журналист: А что-нибудь из классики вы могли бы напердеть?
Старик: Например?
Журналист: Ну, например, Моцарта?
Старик: Не знаю, давайте ноты.
Ему дают ноты, он около 10 минут пристально смотрит на них.
Журналист: Ну так что, сможете?
Старик: Нет, не смогу.
Журналист: Почему же?
Старик: Да тут в 2 местах обосраться можно»

Wednesday, September 3, 2008

и это снова я про mysql



новыя знания — новыя печали

теперь я использую mysql таким образом:


"DBI:mysql:database=regru_auction;mysql_multi_statements=1;mysql_enable_utf8=1;mysql_auto_reconnect=1"


тогда есть надежда, что можно сразу несколько statements в do напихать, но я уже этим не пользуюсь. парсить sql оказалось проще, чем договориться с mysql.

причем, как показывает опыт, последний флаг не работает вообще. как был morning bug, так и остался. Apache::DBI отдыхает.

но это не все. после ошибки DBD::mysql становится нестабильным и может порождать ошибки типа таких:


DBD::mysql::st bind_columns failed: bind_columns called with 1 values but 10 are needed [for Statement "select count(*) from `auction` "]


для тех, кто в танке: иногда имеет смысл запустить возможно ошибочное sql выражение, чтобы не трясти базу лишний раз. а именно, вместо проверки, есть ли пользователь с таким username/password просто попытаться пользователя туда вставить. тогда, в случае ошибки, мы можем сказать: «э нет, чувак, такое как ты уже есть». ха. не в случае mysql. случай mysql:


eval {
$dbh->do (…);
};

if ($@) {
$dbh->disconnect;
Core::make_new_dbh ();
}


ну и сладкое напоследок.

есть вероятность не выйти из транзакции. то есть после commit или rollback есть вероятность остаться в транзакции со всеми вытекающими. в мануале предлагают дисконнектиться и соединяться заново. а, ну и autoreconnect в таком случае отключается -)

P.S.: совсем забыл. если создать mysql dbh и форкнуться, то есть вероятность чрезвычайно круто попасть впросак, потому что как–то оно очень хуево после этого работает.


мудаки.

Tuesday, July 15, 2008

migration postgresql => mysql



есть достаточно большое количество statements, которые после запуска не могут быть rollback. список: для 5.0, для 5.1, то есть mysql не является ACID compliant, хотя оно заявлено.


drop table if exists temp_test_one, temp_test_two;

begin;
create table temp_test_one (a int, b int);
rollback;

-- fail here, create table caused implicit commit
create table temp_test_one (a int);


begin;
alter table test1 drop b;
rollback;

-- fail here, because alter table also caused implicit commit
alter table test1 drop b;


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


-- fail here, error: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause (WHY?)
create table temp_test_two (created timestamp default now(), updated timestamp default now());

-- fail here because first timestamp column have default now()
create table temp_test_two (updated timestamp, created timestamp default now());

create table temp_test_two (updated timestamp, created timestamp);

-- now updated column being updated on any update


триггеры может создавать только пользователь с правами super (вроде, в 5.1 они это поправили)


-- fail here if you don't have super privilege (5.0)
create trigger temp_test_two_bcreate before insert on temp_test_two for each row set new.created = now();


чюваки из mysql до сих пор не смогли написать нормального парсера, чтобы разграничивать внутренности процедур от остального sql кода.


-- fail because you don't set delimiter (stupid mysql parser can't recognize trigger end without separation delimiters inside trigger and outside)
create trigger contact_aupdate after update on contact
for each row begin
if new.contact_auth = 'ok' then
update domain set domain_authenticated = true, domain_state = 'auth' where auth_contact_id = new.contact_id;
end if;
end;


теперь про перл

mysql не может запускать сразу два statement в одном do; если сделать fork, то придется создавать новое соединение, так как старое привязано к process id.


my $dbh = DBI->connect;

my $pid = fork;
if ($pid) {
# failed because you can't launch two statements at same time
$dbh->do ('drop table if exists temp_test_one; drop table if exists temp_test_two; ');
} else {
# failed because cloned dbh doesn't work
$dbh->do ('drop table if exists temp_test_one, temp_test_two;');
}


короче, если нет возможности использовать что–то другое, то можно, иначе — нужно как можно быстрее избавляться от mysql в пользу postgresql и/или sqlite.

Sunday, July 13, 2008

perl death is postponed

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

меня больше тянет к ruby, потому что по архитектуре java меньше подходит в качестве web языка. но, судя по последним данным, вряд ли я стану ruby или java специалистом.

давайте посмотрим на вот эту картинку:


по ней явно видно, что перл держится молодцом между enterprise level java и активно продвигаемым одной небезызвестной компанией ASP.NET.

как всем уже давно известно, perl не развивается. но не в том смысле, что не появляется чего–то нового. а скорее в том плане, что без большого объема общения сложно выяснить, что же стоит использовать и для каких целей. для тех же accessors в перле есть не один десяток модулей. то же касается web frameworks, ORM. короче, трендов нет, есть одна глобальная помойка под названием cpan. нет инструментов и удобных frameworks. но есть куча перлового кода, который был написан и будет написан и все это барахло нужно поддерживать.

волшебные слова типа Catalyst и Moose оставьте при себе. в реалиях сегодняшнего дня у них нет достаточного уровня производительности: http://www.alrond.com/en/2007/jan/25/performance-test-of-6-leading-frameworks/ . если охота более свежих тестов, то в компании, где я сейчас работаю, используется Catalyst и при потреблении памяти в 500 мегабайт он умеет обслуживать не более 10 простых запросов в секунду. Moose же работает в 10 раз медленнее моих самописных accessors, и это в самом простом случае, когда они не типизированы. простите, но это лажа.

Tuesday, July 1, 2008

memory organization and management in mac os x

только для 10.5



некоторые из указанных здесь данных справедливы только для 10.5. то есть я предполагаю, что, как минимум в 10.4 inactive память не могла быть помещена в swap.

чипы и диски


системе доступны кэш память процессора (cpu cache), физическая или оперативная память (ram) и память подкачки (swap). кэш память процессора — самая быстрая из имеющейся памяти. она напрямую отдает данные процессору, но за все приходится платить: она же самая дорогая и поэтому размер ее чрезвычайно мал. управление ею возможно, но при программировании под mac os x скрыто, можно лишь сравнивать насколько архитектура процессора соответствует размеру кэш памяти — что является темой для отдельной статьи. в обозримом будущем интел обещает сильное увеличение объемов процессорного кэша, так что посмотрим, может все сильно поменяется. физическая память - это микросхемы оперативной памяти, память подкачки же - это файлы на диске. также система может показывать виртуальную память, но она настолько виртуальна, что не имеет отображения ни в оперативной памяти, ни на диске. не стоит путать память подкачки и виртуальную память - они не имеют вообще ничего общего. суть виртуальной памяти в том, что она выделяется по запросу приложения. но отображаться в реальной памяти начинает только тогда, когда приложение начинает операции с выделенной памятью.

так получилось, что чем медленнее сама память, тем дешевле запихать побольше ее в компьютер. поэтому кэша у процессора в пределах нескольких мегабайт, оперативной памяти в макбук можно поставить 4 гигабайта, а более медленной дисковой — аж 300 гигабайт.

приложения потребляют память при запуске и своей работе. чем интенсивнее приложение работает с объектами и чем больше количество объектов используется, тем больше потребляет памяти данное приложение. когда активное приложение перестает помещаться в оперативную память, то часть данных неактивного приложения сбрасывается на диск, в файл подкачки. впоследствии, при переключении на такое неактивное приложение вы почувствуете, что оно совсем небыстро отвечает в течении небольшого промежутка времени - это данные, попавшие в файл подкачки, возвращаются в физическую память, а другое неактивное приложение помещается в swap. привет, пляжный мячик!


системная память


система различает в оперативной памяти несколько секций: wired, active, inactive и free. обычно, пользователь, замечая, что у него почти не осталось свободной (free) памяти, начинает выгружать приложения. количество свободной памяти после данной процедуры увеличивается, но несильно. система с двумя гигабайтами памяти, в которой запущен один только finder, может иметь свободной лишь 100 мегабайт. и это нормально.

wired память - это, зачастую, лишь память ядра системы (ну и WindowServer). wired память не имеет шансов попасть в swap. больше она ничем не интересна.

active память - это память всех приложений. то есть если приложение загрузилось, то оно «отъело» кусок active памяти. если приложение загрузило файл и держит содержимое в памяти, то оно отъест еще кусок. возможно, часть такой памяти превращается в inactive, но условия, при которых это происходит и что именно становится «неактивным» — мне неизвестно.

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

free - это память, которую не использует ни одно приложение. количество свободной памяти не может опуститься ниже некоторого предела, поэтому вы вряд ли сможете увидеть значения типа 500 килобайт памяти свободно. но если значение опустилось менее 5 мегабайт, то скорее всего либо у вас уже все тормозит, или вы очень скоро это почувствуете.

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

вообще–то есть довольно сильная зависимость от профиля вашей работы. если вы работаете с небольшим количеством файлов, но с приложениями, которые перелопачивают большое количество данных, то, с большой вероятностью, у вас будет больше занято active памяти. в случае копирования и чтения множества файлов — inactive память вырвется на первое место.

приоритеты



память подчиняется определенным приоритетам, которые выглядят как (у всех так нарисовано):

wired > active > inactive > swap

это не совсем верно. wired не имеет шансов попасть в swap. кроме того, я за много попыток не смог добиться (или не смог увидеть) попадания active памяти в inactive.

так что схема примерно такова:

inactive > swap, active > swap

то есть в случае нехватки памяти, active и inactive могут быть помещены в swap, причем сначала помещается inactive память, а потом active. если насчет active все понятно, то почему inactive, которая (фактически) является файловым кэшем, помещается в swap? этого я понять не могу, но результаты тестов показывают нам именно это.

волшебная inactive память



поработав за компьютером некоторое время я наблюдаю следующую картину:



для того, чтобы определиться с inactive памятью, я решил скопировать 1 гигабайт данных с помощью команды «cp» в терминале («Finder» не использует кэширование при копировании файлов):



все параметры в норме, полет нормальный, inactive память подросла на гиг. давайте посмотрим, что будет, если я попрошу у системы 2 гига памяти и запишу в них данных, а потом освобожу эту память. на первой картинке — процедура отъедания памяти, а на второй — после того, как я покликал по активным GUI приложениям и проверил, что они не залезли в swap:





вроде бы все в норме, только там есть волшебная строчка, на которую стоит обратить внимание: swap used. если сравнить с начальной картинкой, то в свопе оказалось полгига inactive памяти. фигасе, сказал я себе, когда это увидел. может, у меня скриншоты неправильно скриншотятся? я выгрузил все приложения и увидел следующую картину:



то есть в свопе находится inactive память, которая не была нужна ни одному из загруженных приложений. дальнейшие мои опыты не смогли вытащить эту память из swap. она осталась там до перезагрузки. естественно, после перезагрузки памяти у нас до фига:



еще одно наблюдение, которое я сделал по мере тестов — mach_kernel и WindowServer кушают память (wired память). причем, в случае выгрузки приложений, они ее не возвращают системе, а в силу того, что это wired память, то и в swap ее не отдают. а это значит, что в случае, если они выросли слишком сильно (у меня бывало и по полгига на каждого), никаким образом, кроме перезагрузки, нельзя вернуть память, сожранную этими двумя процессами, в систему.

inactive, active => free


в случае необходимости, вы можете освободить большую часть inactive и active памяти. как показывает вышеприведенный эксперимент, часть inactive памяти действительно освободится, часть же перейдет в swap. для этого вы можете воспользоваться программой ifreemem или волшебным скриптом, который просто нужно запустить в терминале или сделать action в automator:


perl -e 'my $a = []; $a[5*10**8] = 1;'


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

после запуска подобного скрипта в системе с небольшим количеством свободной (free) памяти, фотошоп начинает грузиться и работать быстрее, потому что ему не приходится биться за каждый килобайт оперативки с неактивной памятью. но за все нужно платить. в случае, когда у вас действительно немного неактивной памяти, а большая часть памяти активна, то активная память уйдет в своп и вы получите однозадачную операционную систему — переключение на другие приложения будет исключительно мучительным (конечно, если у вас не mac pro с raid 5 из 8–ми дисков).

Saturday, June 21, 2008

modding

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

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

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

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

Monday, June 9, 2008

wwdc 2008

техника молодежи



я отфильтровал лог по хитам с учетом исключительно «картинок с выставки».

цифры:

сервер стоял раком с 21:05 по час ночи


811 430 хитов
4 022 уникальных ip адреса
35.6 гигабайт трафика
197 842 799 байт в лог файле

ояебу

про, собственно, выставку




Пункт приема устаревших айфонов.


беременным пенсионерам и за 100 баксов можно без очереди.


Thursday, June 5, 2008

snow leopard?

снова о леопарде



на днях вышла версия 10.5.3 — которую я склонен считать стабильной и подходящей для каждодневного использования. если вспомнить, что леопард был выпущен 26 октября, то до конца мая, когда было выпущено последнее стабильное обновление, прошло ни много ни мало, а целых 7 месяцев. немало для отлаживания на пользователях, не правда ли? можно сказать, что и другие версии, начиная с 10.5.0 были стабильны, но позволю не согласиться. леопард явно был глючный с самого начала и новость о том, что билд 981 будет выпущен на рынок — меня просто шокировала.

кроме того, часть функциональности просто осталась за бортом — в обновлениях не появилось запоминания раскладок, address book навсегда попрощался с bluetooth. мои ожидания что они все–таки добавят эту функциональность, потерпело фиаско — «вы чё, чуваки, у нас тут айфоны, тайм машины в капсулах — а вы нам насчет ваших паршивых проблем с раскладкой клавиатуры. мы же америкосы! нам похер ваши раскладки, учите английский!»

леопард добавил не так уж много нового, но это новое не то, чтобы нормально не отлажено, оно просто скрипит по швам. небольшой пример — поставьте в настройках файрволла «только необходимые сервисы» и попробуйте расшарить интернет на айфон по wifi. ну как? работает?

грустно, но леопард — явно неудачное детище эппла, рожденное в муках и муки эти не закончились до сих пор. ну что ж, посмотрим насколько правдивыми окажутся слухи, которые предрекают 10.6 с возможным именем snow leopard.

с другой стороны, леопард — это сильная заявка на совместимость с сторонним железом и широкое тестирование под PC. начиная с бета версий, леопард сильно проще устанавливался на обычное железо, чем тигр и обновление 10.5.2 прошло практически безболезненно. некоторая фирма даже решила продавать openmac, который в других кругах называется попросту «хакинтош». но эппл тоже не лыком шита и обновление 10.5.3 сильно расставляет точки над I. последнее обновление неприятное для владельцев хакинтошей. потестировали, ребятки, и хватит.

теперь немного о intel-only составляющей возможной новой системы. если честно, процессорные мощности последних PPC машин вполне приемлемые для сегодняшнего дня. G3 уже маловато, а вот G4 800+ вполне хватает для каждодневного использования. правда есть небольшая проблема — часто на таких машинах серьезно не хватает памяти, потому что (по моим ощущениям) леопарду для шустрого шевеления нужен как минимум гиг памяти. но тут скорее вопрос политический — для отладки и разработки приложений сразу на 4–х архитектурах нужно много усилий. и было бы круто взять и отказаться сразу от трех архитектур, оставив только 64bit x86. плюсов масса да и многие современные программы не имеют в принципе PPC составляющей — даже эппловский iMovie 08 не умеет импортировать AVCHD файлы с видеокамер, используя PowerMac G5. intel only, понимаете ли! сразу можете дополнить список играми, которые вышли в intel–only, vmware fusion & parallels. считайте, почти весь системный софт.

но давайте посмотрим пристально — при отказе от 32 bit библиотек сразу перестают работать два мастодонта платформы — adobe photoshop и microsoft office. перестает работать флэш в браузере, для системы требуется больше памяти. в принципе, такое тоже возможно, но я надеюсь, что это не произойдет.

Friday, May 16, 2008

king's bouny and russian gamedev

о российском игродеве и местных продуктах.

вообще мне пофигу игродев и все, что с ним связано. но недавно вышедший king's bounty заставил меня написать. можете рассматривать это как крик души.

играю я нечасто и поэтому игр–то особо не видел. но года два назад собрал железку специально для игр и поддерживаю ее конфигурацию в актуальном состоянии. поэтом за последний год через мои руки прошло небольшое количество продуктов, которые давали мне возможность тряхнуть стариной. переводные игры я отказываюсь покупать по вполне объективной причине — перевод на редкость уёбищный. а здесь, в москве, очень сложно купить продукт с оригинальной локализацией. поэтому до недавних пор я все скачивал из сети и все было замечательно. fallout 1/2, heroes of might and magic IV, psychonauts, orange box, gta: san andreas, bioshock, guitar hero 3 — отличные игры, хотя некоторые и довольно старые.

сказ о «продуктах».

кучу лет назад моей девушкой был куплен диск с игрой «казаки». не знаю, какой версии и модификации, но после проверки компьютера на вирусы, оказалось, что папка с казаками заражена. переустановка системы и установка на чистую систему только игры дала тот же результат. судя по тому, что в интернет (http://playingworld.0pk.ru/viewtopic.php?pid=2113) есть аналогичные отзывы, проблема касалась не только моего диска. диск не был пиратским, была лицензия, книжица с кодом, которую нужно было куда–то послать. нафиг такое дерьмо, диск был выкинут. в саму игру я не играл — меня такие не интересуют.

совсем недавно, после очередной смены «железа», мной был скачан дистрибутив разрекламированного сталкера. время игры составило 15 минут. после orange box игра кажется пресной. суперэффектов на максимальных настройках я не разглядел. то есть может дальше будет интереснее, но как–то уже не хочется. соответственно, хорошо что не купил.

две недели назад был приобретен диск с king's bounty. игра хорошая, затягивает. то есть если уж сел, то оторваться будет сложно. но есть ряд нерешенных проблем, которые, по всей видимости и не будут решены. для начала расскажу о баг–трекинге этой игры. есть ее форум, где люди оставляют сообщения о багах соответственно патчам игры. патч 1.2 породил ветку на 35 страниц (на момент моего последнего просмотра). я оставил сообщение о проблеме, но не получил никакого подверждения о том, что мои проблемы будут учтены. у меня возникло подозрение о том, что они ничего и не исправят. так и оказалось. патч 1.3 не учел проблем, которые были описаны в ветке 1.2; например http://kingsbounty.ru/forum/index.php?showtopic=496&st=60&p=12190&#entry12190.

дополнительно к таким клевым условиям для разработчиков и игроков на форуме есть некоторое количество долбоёбов–модераторов, которые закрывают и удаляют ветки, которые им не нравятся.

теперь от поддержки плавно перейдем к игре.

во–первых игру на машине без русской локали установить сложно, потому что разработчики инсталлятора не знают слов «юникод» и «многобайтовая кодировка». к тому же, после инсталляции, игра не сохраняется через меню, зато автосохраняется и быстросохраняется. так и приходится играть в три сохранения на всю игру. к тому же, если под одним аккаунтом пользователя два игрока, то у второго не будут работать вообще никакие сохранения. эту часть кода писал мудак.

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

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

ссылку на еще один баг я давал выше, при описании системы баг–трекинга.

если честно, то все четыре приведенных бага я считаю критическими и релизный продукт не должен такого содержать. то есть я, как покупатель, заплатил денег чтобы стать бета–тестировщиком? почему ни одна из приведенных в начале текста игр не содержала такого количества багов? почему я играл в версии 1.0 безо всяких проблем, пожеланий, предложений и багов? с таким подходом идите–ка нахрен. я понимаю, что типа бабло, сроки, еще раз бабло, российский продукт, бла-бла, но почему это должно касаться меня? ответов на этот вопрос я не нашел.

сказ об издателях.

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

небольшое отступление. многие зарубежные издатели выпускают так называемые hybrid iso, на котором содержится версия под PC и для Mac. ни один из продуктов, которые поставляются в росиию, не содержит мак секции. возьмите fallout 1/2 из старого или guitar hero 3 из нового — как минимум эти продукты поставляются в hybrid iso. но нет, зачем пользователям маков играть, решают мудаки в новом диске и 1c. пускай купят себе PC для игр. ведь известно же, что маки — унылое говно.

Monday, April 7, 2008

apple quality

вот вам и хваленое качество операционки от эппл.

система 10.5.2, все обновления, свежеперезагруженная, генерирует на каждый запуск приложения такими записями в лог:


Apr 8 00:06:56 flo Console[380]: Console(380,0xa0301fa0) malloc: *** error for object 0x200022: Non-aligned pointer being freed\n*** set a breakpoint in malloc_error_break to debug
Apr 8 00:06:56 flo [0x0-0x41041].com.apple.Console[380]: Console(380,0xa0301fa0) malloc: *** error for object 0x200022: Non-aligned pointer being freed
Apr 8 00:06:56 flo [0x0-0x41041].com.apple.Console[380]: *** set a breakpoint in malloc_error_break to debug
Apr 8 00:10:39 flo Adobe Lightroom[384]: Adobe Lightroom(384,0xa0301fa0) malloc: *** error for object 0x220020: Non-aligned pointer being freed (2)\n*** set a breakpoint in malloc_error_break to debug
Apr 8 00:10:39 flo [0x0-0x43043].com.adobe.Lightroom[384]: Adobe Lightroom(384,0xa0301fa0) malloc: *** error for object 0x220020: Non-aligned pointer being freed (2)
Apr 8 00:10:39 flo [0x0-0x43043].com.adobe.Lightroom[384]: *** set a breakpoint in malloc_error_break to debug


причем, это характерно для любых приложений, Console и Lightroom - это не единственные приложения, подверженные такому поведению

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

Sunday, April 6, 2008

macbook air

каков?



macbook air - отличный ноутбук. он отнюдь не самый лучший, не самый быстрый, не самый легкий. он отличный от других и при этом хорошо сбалансирован.

air - прямой наследник powerbook 12". и если «двенашка» была младшая модель в линейке, то air - это отдельная модель, которая сильно отошла от своих больших братьев размером 15" и 17". это настоящий мобильный компьютер. если двенашка отличалась от своих собратьев pcmcia слотом и подсветкой, то эйр приобрел подсветку, зато лишился всего того, что могло бы его тянуть к земле. поменьше проводов и разъемов, нет dvd драйва, вес как можно легче.

вообще, самые-самые ноутбуки обычно выпячены в одну сторону. можно, например взять совренный asus eeepc. он легкий и маленький, но при этом очень убогий по своим техническим характеристикам. работать за ним каждый день? увольте. или alienware m15x. он оснащен самым быстрым процессором и видеокартой из возможных. но при этом он греется и шумит как паровоз при играх; батарея тоже не ахти. ну и 3.5 килограмма веса не вдохновляют. зато можно по ночам с таким ноутбуком ходить без опаски - им можно жестоко повредить грабителя/насильника. правда только один раз, корпус-то пластиковый; на сайте alienware даже промо-ролик есть на тему того, что отец купил своим дочерям по такому ноутбуку. air тоже выпячен. в сторону легкости и отказа от проводов. но не настолько, чтобы это было в ущерб чему-то.

в air стоит вполне современный процессор, 2 гигабайта памяти, диск на 80 гигабайт. если опять сравнить air c «двенашкой», то можно обнаружить, что процессор и память подросли, а диск остался такого же объема (и, чуть меньшей производительности, но не настолько меньшей, чтобы это сильно напрягало). в принципе air по производительности аналогичен macbook самой первой серии, но при этом в нагруженном состоянии сильно меньше греется. точнее, греется там только один небольшой пятачок на днище, чуть левее центра. то есть, его производительность вполне достаточная для современного компьютера. сразу после загрузки вы будете видеть, как air пытается прочитать данные программ со своего небольшого и небыстрого диска, но когда все загрузится, он достаточно быстр.

многие обозреватели сетуют на отсутствие множества usb, firewire, dvd. я считаю, что такая аскетичность впору для мобильного компьютера. если я в городе, то я соединюсь с интернет по wifi или через мобильный телефон с bluetooth. если я пришел на работу, то там есть wifi. если нет - не проблема купить единожды - такое устройство стоит полторы тысячи рублей и весит менее 50 грамм. клавиатура и мышь у меня подсоединяются через bluetooth. dvd приводом я пользуюсь редко и в основном дома; в рабочей обстановке или где-то на встрече flash drive значительно удобнее dvd, а стоит немного. единственное, что меня огорчает - это моно динамик. все звуки как из старого радио.

вкратце: беспроводных интерфейсов хватает при теперешнем развитии технологий. если вам обязательно нужен проводной ethernet, который свяжет ваш старенький домашний pentium 133, который до сих пор звонит провайдеру по dialup с помощью модема usr sportster, то этот ноутбук не для вас. лучше подождите еще лет десять, загоните свой pentium и купите десятилетней выдержки air.

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

для кого?



тут все просто. если вы не возите каждодневно сумку всякого барахла, которое стремится занять порты вашего любимого macbook pro, а также если у вас сломался ваш старый ноутбук apple, то air - хороший выбор на замену. эйр - это не тот ноутбук, который все время стоит на рабочем месте и остается на работе, когда вы с нее уходите. он скорее для людей, которые утром читают новости с компьютера за завтраком, а вечером перед сном переписываются с друзьями.

веб-сервер и база данных, виртуализация и разработка - не самые сильные стороны этого ноутбука. в случае, если вы разработчик или вам нужен windows в виртуальной машине - сильно подумайте. скорость работы в таком случае будет сильно меньше, чем на macbook /pro.

то же самое касается скорости работы в любых тяжелых средах. photoshop и microsoft office загружаются мучительно долго и время от времени так же мучительно работают. в случае одновременной загрузки safari с множеством вкладок, photoshop и excel, lightroom уже лучше не загружать, 2 гигабайта памяти недостаточно для таких монстров.

80 гигабайт - не такой уж большой объем диска по сегодняшним меркам. если у вас есть ipod с коллекцией музыки на нем, то это здорово, моя коллекция в 80 гигабайт просто не поместится на air.

может, подождем?



air - отличное железо для тех, кто умеет ждать. я все время перемещаюсь и ноутбук у меня с собой, но я подожду, пока появится следующая ревизия этих ноутбуков. не останавливайтесь, если он вам нужен здесь и сейчас, идите и купите его, но если вам не горит, то читайте дальше (beware: много технической шелухи).

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

pata - умирающий стандарт. и в то же время диски в air именно такие. для них нет возможности найти замену. остается надеяться, что в следующей ревизии там будут уже sata диски.

в том случае, если у вас в air хоть что-то сломается (жесткий диск, батарея), то вы полностью полагаетесь на сервис apple в россии, который, мягко говоря, не из лучших. в случае macbook /pro вы просто можете купить еще одну батарею или диск и забыть об этой неприятности. с эйром это исключено.

2 гигабайта памяти для 10.5 - это совсем немного. хватает на посмотреть почту, полазить в сети, посмотреть фильм, загрузить iphoto. то есть для обычного применения вполне. но мне например, мало и четырех гигабайт. будем надеяться, что в будущем apple напаяет еще нмного памяти.

intel сконструировал процессор для air в так называемом sff (small form factor или небольшой размер упаковки). теперешние процессоры в macbook и macbook pro производятся по нормам 45nm, в air же используется пока что 65nm чип. что это значит? это значит то, что когда у air появится 45nm чип, то он станет меньше греться и будет быстрее работать. в википедии указывается, что возможный выход sff процессоров для техпроцесса 45 nm ожидается в мае 2008 года.

посмотрим на год вперед: не за горами (2009 год) выход новой платформы intel, с памятью ddr3 и новой архитектурой процессоров, с отказом от северного и южного мостов по отдельности и с видеоядром, интегрированным в процессор.

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

с учетом выпуска ноутбуков от apple с учетом появления новых intel'овских платформ, совсем неудивительно, если через год эйры будут сильно интереснее. так же, как было с macbook core duo и core 2 duo.

gigabit and airport express test

что такое гигабит и пару слов о airport express


когда сети были небольшие, коаксиальные и витые, то было сразу же понятно, сколько это - пропускная способность 10 мегабит или 100. 10 мегабит - это порядка 900 килобайт в секунду, 100 мегабит - это порядка 9-ти мегабайт в секунду. что же такое гигабит? казалось бы, что это 90 мегабайт в секунду. а вот нет.

скорости более 20-30 мегабайт в секунду сложно получить простым копированием файлов с помощью имеющихся ноутбуков. мы воспользуемся самописным решением, которое просто пересылает данные из памяти одного ноутбука в память другого – в таком случае диск не становится узким местом.

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

методика: во всех случаях копируется гигабайт данных, то есть 2^30 байт, замеряется скорость. для потока вычисляется средняя скорость и указывается максимальная (burst).

mbp 2.33 - 19 секунд, 53.9 мегабита
mbp 2.2 - 11.8 секунд, 86.8 мегабита

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

посмотрим на реальную сеть:

mbp 2.33 <=> gigabit hub <=> mbp 2.2
26.4 секунды, средняя скорость 38.8, максимальная 41.4 мегабайт в секунду

ха. гигабит тут тоже какой-то вшивый. он не дотянул дяже до уровня внутренней сети. и да, mtu у обоих адаптеров одинаковый, 4087

не все то золото, что блестит, и не всякий гигабит, который гигабит.

ладно, увеличение скорости в 5 раз тоже прикольно. скачать порно в пять раз быстрее - тоже достижение.

а что у нас с беспроводными сетями?

ведь есть же волшебные 802.11n, которые обещают скорость 300 мегабит. это, как не сложно посчитать почти 30 мегабайт в секунду.

берем свежекупленный airport express 802.11n и подключаем одну железку к его ethernet, вторую соединяем по wifi.

mbp 2.33 <=> airport express 802.11n, 5GHz, WPA2
airport express ethernet <=> mbp 2.2
5 минут 15 секунд, средняя скорость 3.25, максимальная 7.26 мегабайт в секунду

скорость в пике хорошая, даже очень, это значит используется почти весь канал ethernet на все свои 100 мегабит. ой, а что это такое?



это привет от эппла. скорость ethernet соединения снижается после непродолжительной нагрузки. airport express разогревается при использовании соединения ethernet <=> wifi и пытается остудить себя, снижая скорость. видимо, это результат работы над перегревом старых станций airport express, которые отказывали через 14-20 месяцев после использования.

любые применения airport express, которые связаны с ethernet каналом, сильно не радуют, соединения до 20 мегабит он отдает стабильно, а вот больше - может иногда, но достаточно быстро понижает скорость.

проверим, что же будет, если соединить ноутбуки с airport express и передавать данные по wifi:

mbp 2.33 <=> airport express 802.11n, 5GHz, WPA2 <=> mbp 2.2
5 минут 17 секунд, средняя скорость 3.25, максимальная 4.4 мегабайт в секунду

mbp 2.33 <=> airport express 802.11n, 2.4GHz, WPA2 <=> mbp 2.2
12m7s 1.4 2.07 MB/s
12 минут 7 секунд, средняя скорость 1.4, максимальная 2.07 мегабайт в секунду

mbp 2.33 <=> airport express 802.11n, 5GHz, no security <=> mbp 2.2
4 минуты 24 секунды, средняя скорость 3.9, максимальная 4.8 мегабайт в секунду

сильно лучше, скорость постоянна и, в целом, удовлетворительна, хотя до обещанных 150 и даже 300 мегабит совсем недотягивает. скорее, скорость такая же, как и в 100 мегабитном проводном канале. шифрование почти не оказывает влияния на скорость, а вот диапазон 5 гигагерц увеличивает скорость в два раза.

в угоду дизайну, компактности и небольшому нагреву здесь принесли в жертву важные особенности экстремальной версии. при покупке мне казалось, что это экстремальная версия, но без гигабитного хаба, зато с музыкой; все оказалось сильно по другому. эти устройства дополняют друг друга, но не являются аналогами. в простейшем случае, когда вам нужно просто создать беспроводную сеть с выходом в интернет по кабельному модему, то airport express вам в этом отлично поможет. если вы захотите большего, как то проводная сеть или жесткий диск, который удобно разделить между беспроводными клиентами - вам придется купить airport extreme.

Thursday, February 28, 2008

DBD::mysql character set

порывшись некоторое время в документации mysql, я понял, что гарантированно выставить кодироку клиента, а именно character_set_client, character_set_results, character_set_connection в какую-то кодировку можно только с помощью «set names utf8». потому как не всегда есть возможность сменить кодировку в конфигурации сервера. теперь о том, если нет возможности использовать «set names».

оказывается, DBD::mysql позволяет использовать некоторые дополнительные переменные при соединении, как то mysql_read_default_group и mysql_read_default_file. как это может помочь мне для установки кодировки данных для клиента:

dbitest.pl:


#!/usr/bin/perl

use strict;
use DBI;

print `mysql -e 'show variables' | grep char`;
print "\n";

my $conn_str = join ';',
'DBI:mysql:database=mysql',
'mysql_read_default_group=perl',
'mysql_read_default_file=/home/apla/my.cnf';

my $d = DBI->connect($conn_str, "***", "***");
my $s = $d->prepare ('show variables like "char%"');
$s->execute;
my $vars = $s->fetchall_arrayref;

foreach (@$vars) {
print "$_->[0] => $_->[1]\n";
}


my.cnf

[perl]
default-character-set=cp1251


соответственно, group это то, что находится внутри квадратных скобок, то есть [group], а file - это если вы не хотите использовать стандартную конфигурацию, то можете использовать свою собственную.

результат:


perl dbitest.pl
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

character_set_client => cp1251
character_set_connection => cp1251
character_set_database => latin1
character_set_filesystem => binary
character_set_results => cp1251
character_set_server => latin1
character_set_system => utf8
character_sets_dir => /usr/share/mysql/charsets/


mysql 5.0.26

Monday, February 25, 2008

good, bad and ugly

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

abn.ru



месяц назад я решил купить себе переключатель монитор/клавиатура/мышь, потому как компьютеров в доме становится больше, а покупать на каждый из них монитор - расточительно и бессмысленно. особенно на тот, который стоит на антресоли. в силу того, что цена на подобные устройства с нужными мне характеристиками (dvi, usb, 4 компьютера) отличаются в разы, то решил попробовать самый дешевый - ведь если будет работать, то какая мне разница, сколько он стоил. поехал в abn.ru. сама фирма занимается сетями, кабелем и всем, что с этим связано. офис сответствующий:







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

sunrise.ru



моя жена работает в том же здании, где находится магазин sunrise. несколько раз, когда я ее провожал, мне было удобно заказать пару железяк поутру и, получив их, поехать на работу. удачно закупился я там всего один раз. вообще, пожалуй, стоит немножко детально рассказать о самом магазине. санрайз - огромный склад. и люди, которые им управляют, наверное, никогда не видели, как санрайз работает с покупателями. купить в санрайзе можно тремя способами: собственно, приехав на склад, через ряд киосков с терминалами, где можно сделать заказ, оплатить его и приехать через несколько дней за покупкой (санрайз-лайт) и online-shop санрайза.

все эти три способа заказа между друг другом не связаны. и если санрайз-лайт отделен от склада по понятным причинам, то совершенно непонятно, почему нельзя сделать резерв в онлайн магазине, а потом забрать его в санрайз лайт или на складе. такой возможности просто нет. ха, а в ultra-online.ru, fcenter.ru, oldi.ru все это есть! так нафиг нам сдался санрайз? особенно с учетом того, что если хочется купить что-то, что появляется в продаже не очень часто, и после появления находится недолго, то вероятность купить это в санрайзе близка к нулю.

в результате получается такая ситуация - либо ты должен приехать в санрайз-лайт, заказать, оплатить и ждать пару дней, пока все доедет (если доедет - тот, кто принимает заказ, тоже не может зарезервировать товар; в некоторых случаях звучит волшебная фраза «эту позицию заказать нельзя, потому как тут всего две штуки осталось»). либо нужно приехать на склад, зарезервировать (теперь новые условия - не меньше 1000 рублей в заказе), оплатить, и через час-три ожидания получить вожделенную железку. либо заказать через интернет магазин, из которого придет пеший ходок через три-четыре дня и оплатить сверх стоимости заказа 400 рублей за доставку (это больше примерно раза в два, чем в других компьютерных магазинах).

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

ultra-online.ru



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

Sunday, February 24, 2008

traveler laser: part II

в целом, как оказалось, мышь вполне приличная, и вполне прилично слизана с apple mighty mouse. но не без неприятностей:

1. верхняя часть не разбита на кнопки, поэтому часто при нажатии нажимаются обе кнопки, одна за другой.
2.1. скролл работает горизонтально и вертикально, но по диагонали - не работает. горизонтальному скроллу для работу нужна mac os x 10.5.2 или драйвера под windows.
2.2. скролл в силу его оптической сущности не имеет тактического отклика. кроме того, палец не скользит по прозрачному пластику скролла, поэтому при прокрутке на несколько строк палец тормозит, при быстром же движении помех нет. результат - промотать на половину страницы не удается - либо на пару строк, либо на пару страниц. привыкаешь, но неудобно. так и не смог привыкнуть за две недели 
2.3. светодиод в скролле разместили неудачно, в некоторых положениях он светит рямо в глаза. несильно, но неприятно. если бы он светил от пользователя, нареканий не было бы.
3. мышка обладает оптическим разрешением в 1600 dpi. это значит, что я за ней не успеваю. есть режим 800 dpi, включаемый долгим нажатием на кнопку с сенсором скролла, но режим не сохраняется между перезагрузками. 
4. неудачный, чрезвычайно тонкий кабель. при моей аккуратности такие кабеля рвутся «на раз». поменял со старым genius netscroll, теперь вроде оторвать будет сложно.
5. драйвера в windows ставятся в папку c:\Genius и нет возможности выбрать другую папку. к счастью, не все производители так делают, потому как иначе было бы пользоваться диском c: невзможно.

сравнивать traveler laser с mighty mouse глупо - это две похожие мышки, но похожи они лишь внешне. стоимость mighty mouse вполне компенсируется удобством пользования; в то же время, . genius traveler laser - дешевая имитация с прикольным оптическим скроллом, которым неудобно пользоваться. если на скроллинг наплевать (я на работе использую apple wireless mouse), то мышь вполне комфортная.

поэтому genius следут сделать несколько простых вещей для того, чтобы мышью было бы пользоваться удобно:
1. разделить кнопки
2. переместить светодиод оптического скролла от пользователя
3. сделать пластик на скролле другим, так чтобы движению пальца не было помех
4. сделать переключатель dpi на дне мыши
5. заменить провод на менее хлипкий
6. доделать софт

Tuesday, January 29, 2008

traveler laser with 4d scroll against apple wireless mouse

или мышь-батискаф против мыши-мыла



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






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




Tuesday, January 22, 2008

antibacterial waterresistant keyboard

решил себе купить клавиатуру для компа с вирусами и играми. я помню, что клавиатуры были сначала mitsumi и chicony, потом появились виндовс кмопки, мультимедия, беспроводность, идиотская ноутбучная раскладка, скроллер для мыши и вот теперь новый шик - антибактериальная, не боящаяся воды клавиатура. я вот все думал, зачем. все же просто - это клавиатуры специально для дрочеров - подрочил, помыл клавитуру.

leopard persistent vpn

в принципе, по сравнению с тигром ничего не поменялось разительно, но в силу отсутствия /etc/rc нужно поместить в крон суперюзера строчки, которые будут поднимать vpn при загрузке системы. в терминале:


sudo crontab -e

вводим административный пароль;
потом две строчки



*/10 * * * * /etc/ppp/check-and-reconnect.sh
@reboot /usr/sbin/pppd plugin PPTP.ppp remoteaddress vpn.corbina.ru logfile /var/log/ppp.log user USERNAME password PASSWORD defaultroute usepeerdns persist maxfail 0


еще по умолчанию в леопарде не работают правила для ipfw, поэтому единственный способ расшарить интернет соединение - это использовать IPNetRouterX; будем надеяться, что в 10.5.2 они все это починят. natd зачем-то сбрасывает значение net.inet.ip.forwarding, посему следует изменить внутренности скрипта /etc/ppp/ip-up, если вы им пользовались в моей редакции, согласно обновленной инструкции для тигра.