четверг, 26 мая 2011 г.

Разработчики — гады

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

Я тоже разработчик, кстати. Ко мне это тоже применимо.

вторник, 10 мая 2011 г.

Flash в Firefox 4 на FreeBSD 8.2

Открываем /etc/make.conf и добавляем следующие строки в конец файла:
OVERRIDE_LINUX_BASE_PORT=f10
OVERRIDE_LINUX_NONBASE_PORTS=f10
Сохраняем и выходим. Далее если у вас уже установлен linux_base любой версии, то переименовываем его директорию
# mv /usr/compat/linux/ /usr/compat/linuxold1
Затем, обновляем linux_base до последней версии, если он уже стоит или устанавливаемпереуснавливаем linux_base-f10.
# cd /usr/ports/emulators/linux_base-f10/ && make deinstall install clean
Далее устанавливаем официальный Flash Player от Adobe:
# cd /usr/ports/www/linux-f10-flashplugin10/ && make install clean
Добавляем в /etc/fstab следующие строки:
linproc /usr/compat/linux/proc linprocfs rw 0 0
linsys /usr/compat/linux/sys linsysfs rw 0 0
Далее устанавливаем nspluginwrapper:
# pkg_add -r nspluginwrapper
и монтируем наши linprocfs и linprocsys:
# mount /usr/compat/linux/proc
# mount /usr/compat/linux/sys
Затем добавляем в /etc/rc.conf строку linux_enable=»YES» и проверяем загружен ли linux.ko модуль
# kldstat | grep linux
если не загружен то загружаем:
# kldload linux
Дале запускаем некоторые дополнительные linux сервисы:
# /etc/rc.d/abi start
# /etc/rc.d/sysctl start
Затем:
# rehash
и выполняем уже под своим пользователем
% nspluginwrapper -v -i /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so
чтобы посмотреть подключенные плагины набираем
% nspluginwrapper -l


От себя добавлю, что если Firefox загружен, надо рестартовать. Кроме того, мне манипуляции с make.conf не потребовались, я ставил сразу /usr/ports/www/linux-f10-flashplugin10/

Оригинал

среда, 4 мая 2011 г.

Рисование путей в Qt

Странное дело, при рисовании путей в Qt при помощи scene.addPath(QPainterPath) путь, нарисованный по часовой стрелке отличается визуально от пути, нарисованному против часовой стрелки. С чем это связано, пока непонятно, однако есть подозрение, что это связано с antialiasing.

вторник, 12 апреля 2011 г.

Проблема с сетью в Ubuntu

Инсталлирую на ноутбуке Ubuntu 9.10. Сеть не хотела подниматься ни в какую.
Два вечера провел в поисках, поэтому сделаю запись.

Задача:
Имеется wi-fi роутер, к которому коннектится ноутбук. FreeBSD с этого же самого ноутбука прицепилась с первого раза (даже удивительно было).
На Ubuntu вручную прописаны настройки сети (т.е. в /etc/network/interfaces), как, например, в этом материале.
Нужно добиться работоспособности сети.

Симптомы:
ping идет нормально, страницы размером менее 1 кб (примерно) грузятся, больше – нет. Начинается загрузка, появляется заголовок и все. Как будто DNS на пол-дороге отваливается.
apt-get не может определить имена сайтов, куда стучаться надо и ничего не сгружает.

Решение:

объяснение проблемы:
линуксовые системы сначала пытаются получить ipv6 адрес, а железка вместо ответа «я тебя не понял», как должна бы по стандарту (после этого линукс попросит ipv4 адрес и всё благополучно завершится), отдаёт 1.0.0.0. ping работает, потому что он никогда не просит ipv6 адрес (для этого есть ping6). после удачного пинга некоторое время будет работать всё остальное, т.к. ответ dns кешируется.

итак, существует два способа пофиксить баг, пока linux-сообщество не включит фикс в следующие релизы:

проверенно, работает:
1. вручную прописать dns-серверы провайдера в /etc/resolv.conf
2. запретить изменения dns-конфигурации командой: chattr +i /etc/resolv.conf

сам не проверял, но видимо работает:
1. sudo apt-get install bind9
2. в файле /etc/dhcp3/dhclient.conf раскомментировать строчку "prepend domain-name-servers 127.0.0.1;"

всем спасибо.
Я сделал вариант «проверено, работает». Действительно, работает.
Спасибо http://cybotoy11.livejournal.com/.

Windows и FreeBSD нормально работали потому, что у них нет IPv6.


понедельник, 11 апреля 2011 г.

Взгляд на безопасность

Почему в Windows в обязательном порядке надо использовать антивирус и не нужно этого делать в *nix системах?
Ответ прост – в этих системах разные подходы к обеспечению безопасности.

В Windows доминирует подход «разрешили все, потом что-то ограничили». В *nix используется другой подход – «все запрещено, то что нужно – откроем».
Когда вы работает в свежеустановленной Windows, да еще и с правами администратора, то у вас в системе много мест, которые легко повредить. Понятно, что существуют условности в виде предустановленных политик, которые меняются от дистрибутива к дистрибутиву, понятно, что можно всех пользователей загнать в группу гости и т.д. Речь не об этом. Простой пользователь Windows может нанести системе очень серьезный урон даже не обладая администраторскими правами. А учитывая наличие брешей в системе (хоть и оперативно закрываемых, но кто держит WSUS или Automatic updates включенным?), часто даже администраторскими правами обладать не надо.
В *nix все ровно наоборот. Создаваемый пользователь настолько бесправен, что надо сильно постараться, чтобы как-то навредить системе. Для того, чтобы пользователь мог нанести ощутимый урон системе, его надо или внести в большое количество групп, или сделать суперпользователем. Да, работая под root'ом, можно сильно дров наломать. Система рута не переспрашивает. Сказал том удалить, значит удалить. А то, что это была живая база данных или файловое хранилище, ну так это не проблемы системы, это проблемы пользователя.
Строго говоря, и в Windows, и в *nix можно обеспечить очень высокий уровень безопасности. Для этого есть множество технических и организационных способов. Но уровень безопасности «из коробки» в *nix намного выше, чем в Windows.
Поэтому-то и нет необходимости держать антивирус для *nix систем.

Бонус: статья Криса Касперски о том, как можно жить без антивируса на Windows.

понедельник, 4 апреля 2011 г.

iPhone в качестве usb-модема на FreeBSD

Оригинальная статья (англ.)

FreeBSD 8.2

iPhone в качестве usb-модема использовать можно.
Порядок действий такой (предполагается, что iPhone умеет выходить в интернет по 3G или Edge):
  • На FreeBSD устанавливаете из портов comms/libimobiledevice, по зависимостям ставится также comms/usbmuxd.
  • Строите программу сцепки:
git clone git://github.com/dgiagio/ipheth.git
$ cd ipheth/ipheth-pair
$ cc -Wall -O2 ipheth-pair.c -o ipheth-pair -L/usr/local/lib -I/usr/local/include -limobiledevice
  • Включаете режим модема на iPhone (Настройки-Основные-Сеть-Режим модема, при запросе выбрать USB).
  • Подключаете iPhone к usb.
  • Выполняете последовательность команд (от root):
kldload if_ipheth
usbmuxd -U root
./ipheth-pair
dhclient ue0
Первая команда загружает модуль ядра, создающий интерфейс ue0, вторая запускает мультиплексор, связывающий ОС с iУстройствами. ipheth-pair отвечает за использование режима модема (собственно, после запуска этой программки на экране iPhone начинает плавно мигать синяя надпись "Режим модема"). Ну а последняя назначает IP-адрес на интерфейс ue0.

Если все сделано, то сразу после этого появляется интернет-соединение.

Заметка, собственно, сделана через iPhone.

вторник, 29 марта 2011 г.

Чего мне на Windows не сидится?

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

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



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

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

Это сложно. Честное (легальное) пользование Windows весьма проблематично. Правда!

Кто-нибудь читал лицензионные соглашения? Я читал. Лицензия на Windows написана так, чтобы можно было сойти с ума до того, как ты минуешь середину текста. И после покупки ты обязан это соблюдать. Любое нарушение влечет за собой потерю лицензии, как следствие, копия становится нелегальной. Домашнему пользователю с одной-одвумя инсталляциями это, быть может, не очень заметно, а вот когда счет на лицензии идет сотнями, да еще и пересортица, тогда поддерживать банк лицензий ой как не просто. И это только Windows. А ведь еще и другие программы используются. Антивирус, бухгалтерии всевозможные с CADами.

Это дорого. Стоимость честного владения Windows высока. Постоянно меняются версии операционных систем, выводятся одни, вводятся другие (не устаревая, как это утверждают маркетологи, морально!) Хроническая необходимость upgrade у меня вызывает неприязнь. Нет, конечно, поначалу эффект новизны интересен. Но когда производишь обновление парка компьютеров да переписываешь внутреннюю документацию только потому, что Win2k не работает на новом железе, это знаете ли, утомляет. Другие ОС тоже надо обновлять, но за это, по крайней мере, не платишь! Мне еще не доводилось обновлять парк техники под Linux или BSD (надеюсь, что пока). Но я знаю, что проблем с покупкой уж точно не будет.


И, наконец, последнее.

Может несколько пафосно, но операционная система — это еще и философия.

За Windows стоит философия торговца. Это ни хорошо, ни плохо — это факт. Все в Windows прямо или косвенно крутится вокруг денег.

За *nix системами стоит философия свободы кода. Свобода доступа к коду, свобода использования кода, свобода изменения кода. Именно из-за своей философии есть сторонники у обеих систем. У Windows пока больше. Подозреваю, что так будет и дальше, но буду надеяться, что это не будет продолжаться вечно.