25 Aug 91 20:57:08 GMT
Hello everybody out there using minix -
I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them :-)
Linus (torvalds@kruuna.helsinki.fi)
PS. Yes - it’s free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(
— Ядру 19 лет.
Шпоры по регулярным выражениям, HTML, CSS, MySQL и т. п. -
Да и вообще сайт полезный. В прошлом он был ILoveJackDaniels.com
Здесь мы вынуждены столкнуться с очень распространенным заблуждением (даже среди пользователей UNIX), которое является в основном следствием того, что ссылки, как мы видели ранее (незаслуженно называемые «жесткими» ссылками), ассоциируются только с обычными файлами (и мы видели, что это не повод —— так как даже символические ссылки являются «связанными»). Но для этого требуется, чтобы мы сначала разъяснили, что же представляют собой символические ссылки (часто называемые «мягкими» ссылками или даже еще чаще «симлинками»).
Символические ссылки — это файлы особого типа, единственным содержанием которых является произвольная строка, которая может указывать (а может и не указывать) на существующий файл. Когда вы обращаетесь к символической ссылке в командной строке или в программе, на самом деле вы обращаетесь к файлу, на который она указывает, если он существует. Например:
$ echo Hello > myfile
$ ln -s myfile mylink
$ ls -il
total 4
169 -rw-rw-r— 1 queen queen 6 Dec 10 21:30 myfile
416 lrwxrwxrwx 1 queen queen 6 Dec 10 21:30 mylink -> myfile
$ cat myfile
Hello
$ cat mylink
Hello
Как видите, тип файла mylink — «l» (от слова Link), т. е. он является символической ссылкой. Права доступа для символической ссылки значения не имеют: они всегда будут rwxrwxrwx. Вы также можете видеть, что она и файл myfile — это два разных файла, т. к. ее номер inode отличается. Но она ссылается на него символически, поэтому, когда вы вводите команду
cat mylink
на самом деле вы выводите содержимое файла myfile. Чтобы продемонстрировать, что символическая ссылка содержит произвольную строку, мы можем сделать следующее:
$ ln -s “I’m no existing file” anotherlink
$ ls -il anotherlink
418 lrwxrwxrwx 1 queen queen 20 Dec 10 21:43 anotherlink -> I’m no existing file
$ cat anotherlink
cat: anotherlink: No such file or directory
Но символические ссылки существуют благодаря тому, что они преодолевают несколько ограничений, присущих («жестким») ссылкам:
Вы не можете создать ссылку на inode в каталоге, который находится в другой файловой системе. Причина проста: счетчик ссылки хранится в самом inode’е, а последние не могут совместно использоваться в разных файловых системах. А симлинки позволяют сделать это.
Вы не можете создать ссылки на каталоги, во избежание создания циклов в файловой системе. Но вы можете создать симлинк, указывающий на каталог и использовать его так, как если бы это на самом деле был каталог.
Поэтому символические ссылки очень полезны в различных ситуациях, и очень часто люди стремятся их использовать для связывания файлов даже тогда, когда могла бы быть использована обычная ссылка. Одно из преимуществ обычного связывания состоит в том, что вы не потеряете файл, если удалите «оригинальный».
И напоследок, если вы были внимательны, то могли заметить, что размер симлинка — это просто размер строки.
Я поставил матлаб в /usr/local. Но почему-то вот такая ерунда происходит: матлаб не хочет запускаться без консоли, т. е. вызвать его можно только командой, выполненной в эмуляторе термнала. При этом, автодополнение имени команды тоже не оказалось после установки. Эту проблему раньше я решал с помощью добавления такой строки в ~/.bashrc:
alias matlab=’/usr/local/matlab/bin/matlab &’
Теперь автодополнение есть. Амперсант стоит для того, чтобы дальше можно было пользоваться консолью, в которой вводится команда, т. к. дальнейший вывод матлаба в ней я не наблюдал.
Сегодня же ко мне пришло озарение. Я как-то из водуха догадался, что автодополнение можно сделать путем создания ссылки в /usr/bin на исполняемый матлабовский файл:
ln -s /usr/local/matlab2008b/bin/matlab /usr/bin/matlab
Теперь можно вызывать матлаб без ввода полного пути, причем от любого пользователя, чего нельзя было так просто добиться первым способом.
Статья (перевод) отсюда, оригинал — здесь.
Как вам должно быть уже известно, в мире существует огромное количество дистрибутивов Linux (для тех, кто не в курсе — «Linux» — это ядро операционной системы, вокруг которого создают коллекцию утилит и приложений, все это вместе называется «дистрибутив»).
Какой дистрибутив выбрать — зависит от того, что вы собираетесь с ним делать, и хотите ли вы настраивать все сами, чтобы дистрибутив находился по вашим полным контролем. Может быть вы хотите, чтобы все просто работало «из коробки» (в таком случае я рекомендую Ubuntu). Некоторым нужно запустить сервер. Их выбор — Red Hat (или CentOS). Разумеется, существует масса альтернатив, например BSD.
Если вы пользователь, который любит копаться во внутренностях системы и настраивать все своими руками, вам необходимо рассмотреть два нижеописанных дистрибутива. Оба поддерживают 32 и 64-битные платформы и придерживаются правила KISS. Это относительный новичек Arch Linux (создан в 2002 году) и почтенный, проверенный в битвах Slackware Linux (создан в 1993 году и сегодня является старейшим активно поддерживающимся дистрибутивом — дети, которые родились в один год со Slackware, сейчас уже водят машины). Оба дистрибутива подразумевают настройку путем ручной правки конфигурационных файлов, мало графических утилит настройки, много работы в консоли. В итоге вы получите систему с прекрасным графическим интерфейсом: оба дистрибутива официально поддерживают KDE, Arch также официально поддерживает GNOME, который несложно установить и в Slackware. Зачем вам все это? Ответ — для того, чтобы больше узнать о работе системы и научиться самостоятельно администрировать ее.
Ирония дружественных к пользователю систем заключается в том, что повышение дружелюбности к пользователю сопровождается соответствующим усложнением системы. Процесс управления системой от сравнительно умного и сверхмощного человеческого мозга передается относительно тупой части сложного и хрупкого софта для управления системой (я считаю, что именно по причине сложности и хрупкости этих систем администрирование Unix всегда осуществлялось людьми, и они никогда не строились по принципу «выстрелил и забыл»).
Итак, мы избавимся от лишних уровней сложности и вернем людей назад, в итоге мы получим более простую систему в обмен на необходимость больше знать о том как настраивать и поддерживать ее (если вы действительно хотите узнать все о том, как работает Linux, можете собрать свой собственный дистрибутив, используя Linux From Scratch, но не думаю, что вы сегодня так далеко зайдете).
Итак, вернемся к двум нашим дистрибутивам — Arch и Slackware. Оба устанавливаются в текстовом режиме и не запускают X, пока вы им об этом не скажете. Инсталлятор Slackware ведет вас за руку через весь процесс установки, в то время как у Arch он фактически предлагает вам вручную редактировать /etc/rc.conf (который на самом деле очень простой и симпатичный файл).
Установка Арча чуть-чуть отличается вследствие того, что она не включает X — его необходимо загрузить и установить с помощью менеджера пакетов, только тогда можно будет работать в графическом режиме.
В обоих дистрибутивах после установки попадаешь в консоль, графическая сессия по умолчанию не стартует. Оба дистрибутива имеют софт для пакетного менеджмента и оба используют пакеты формата tarball. Менеджер пакетов Арча — «pacman» быстрее, чем у Slackware, но вряд ли это будет заметно на практике. Самое существенное отличие — использование в Arch системы контроля зависимостей пакетов в отличие от Slackware, где она до сих пор не используется. Пользователи Slackware не застрахованы от конфликтов, которые часто называют «адом зависимостей». Может ли система быть стабильной без автоматического контроля зависимостей? Да, может, и Slackware подтвердил это на практике. Пользователи просто обновляют пакеты, когда это необходимо. С другой стороны, работу с Arch можно назвать раем зависимостей, где все просто работает и все нужные зависимости скачиваются и устанавливаются автоматически.
Стабильность Slackware общеизвестна. В дистрибутив включают только проверенные версии пакетов, обновление которых, за исключением обновлений безопасности, происходит достаточно редко. Вы устанавливаете систему и она просто работает.
Arch не ставит во главу угла стабильность, в основном система включает самые последние версии приложений (хотя девелоперские версии как правило отсутствуют). Как только выходит новый релиз программы, значит она очень скоро появится в Arch (часто задержка связана с тем, что новые пакеты сначала попадают в «тестовый» репозиторий, к которому обычные пользователи не подключены, однако вы можете к нему подключиться, если хотите помочь в тестировании программы. Пользователи Арча обновляют свою систему чаще всего с помощью команды «pacman -Syu», чтобы обновить все пакеты. Обычно несколько пакетов обновляются каждый день после выхода новых версий.
Хотя это звучит как кошмар в плане стабильности, который должен постоянно приводить к нарушениям, обычно обновление работает без сучка и задоринки. У меня была одна проблема, когда майнтайнер Арча забыл включить один из пакетов KDE, являвшийся частью общего обновления, но ошибка была очень быстро исправлена. Другая проблема появилась, когда nVidia переместила драйвер для моей видеокарты в другой пакет, а старый оказался несовместим с последней версией Xorg — установка собственного пакета драйвера от Arch решила и эту проблему. Эти две неприятности случились за восемь месяцев практически ежедневных обновлений.
Если вы хотите придать Slackware немного больше свежести, можно использовать репозиторий «-current». Эти пакеты не очень хорошо протестированы (так как их пользователи являются тестерами), но в итоге они станут частью следующего релиза и будут нерушимы как скала.
Если говорить об обновлениях безопасности, Slackware предоставляет обновления безопасности как для текущего, так и для нескольких более старых релизов. Вы можете быть уверены, что поддержка обновлений безопасности будет доступна длительное время, и я нигкогда не видел, чтобы обновления безопасности каким-либо образом повредили систему. Что касается Арча, он не предлагает отдельных обновлений безопасности, они просто являются частью политики, направленной на обновление всех пакетов до последних версий. Arch не обеспечивает отдельного отслеживания обновлений безопасности.
Один из примеров, где действительно видна разница между этими двумя концепциями обновлений — это серверы. Со Slackware вы можете быть уверены, что обновления обеспечивают только повышение безопасности, и все. Но вам вряд ли понравится, если обновление postfix до последней версии «просто, чтобы было» нарушит работу пользователей. Поэтому я не рекомендую использовать Arch в качестве сервера, хотя некоторые используют его в таком качестве (единственное послабление в этом вопросе сос стороны разработчиков дистрибутива — версия ядра с долгосрочной поддержкой, которая обновляется не часто и поэтому больше подходит для машин, работающих в течение долгого времени без перезагрузки.
Вы можете подумать: «Если Арч постоянно обновляет все пакеты до последних версий, почему я каждый раз должен скачивать DVD с последним релизом?» Вы не должны! После установки вам никогда не нужно будет переустанавливать его или устраивать большое обновление каждые шесть месяцев. Вы просто всегда будете получать из сети последние версии пакетов. Такая модель называется «инкрементный релиз». Slackware использует обычную модель разработки с нумерованными релизами.
акой из дистрибутивов имеет больше пакетов? Ответ однозначный — Arch. Slackware 13.0 включает около 1000 пакетов, в то время как Arch более 4000. Это например, означает, что Inkscape есть в Archlinux, но отсутствует в Slackware. Не поймите меня неправильно — 1000 это много, однако вы можете не найти в этом списке что-что из того, что вам нужно (конечно вы всегда можете самостоятельно собрать для себя нужный пакет).
Если вам нужен пакет, которого нет в официальных репозиториях, можно поискать его в сторонних репозиториях. Для Slackware наиболее популярный — slackbuilds.org (SBo), где представлены около 1700 созданных пользователями шелл-скриптов для сборки пакетов Slackware, которые затем можно установить. Например, здесь есть скрипт Inkscape Slackbuild, так что вы можете просто установить его, не изучая, как собрать пакет самому. Кроме того, обычно имеется файл README, где описываются зависимости, которые необходимо установить. В духе легендарной стабильности Slackware все скрипты SBo рассматриваются и проверяются администраторами сайта.
Для сравнения, Arch имеет « Arch User Repository» (AUR), который содержит около 18000 загруженных пользователями скриптов для сборки. Арч не предоставляет никаких гарантий для этих скриптов и предупреждает, что пользователь использует их на свой страх и риск. При обновлении программ сценарии устаревают и пользователь, поддерживающий скрипт сборки, должен обновить его. Для скриптов, оставшихся «бесхозными» может найтись другой майнтайнер. Система работает сама и администраторы AUR не склонны вмешиваться в этот процесс. Хотя теоретически скрипты сборки могут быть опасными, на практике я не встречал такого ни разу, к тому же такие пакеты будут быстро удалены администраторами.
По сравнению со скриптами Slackware, сборочные скрипты Арча базируются на bash и запускаются с помощью программы makepkg. Эти скрипты проще, чем слаковские, так как большую часть черновой работы берет на себя makepkg, кроме того они могут использовать преимущества bash, такие как массивы. Недостаток — зависимость от bash и от makepkg, тогда как скрипты Slackware зависят только от sh. Для пользователя работа с обеими типами скриптов выглядит практически одинаково: запуск скрипта и затем установка собранного пакета.
Суммируя все вышесказанное выделим основные черты сходства и различия дистрибутивов.
И Slack и Arch: базирование на принципе KISS, поддержка 32 и 64-битных архитектур, пакетная система, основанная на тарболлах, текстовая установка, администрирование с помощью редактирования конфигурационных файлов, KDE в качестве рабочего стола по умолчанию.
Основные особенности дистрибутивов.
Slackware: полная стабильность, хорош для серверов, относительно небольшое (но достаточное) количество отлично протестированных стабильных программ, обновления безопасности, GNOME официально не поддерживается, стандартная модель релизов.
Archlinux: хорошая (но не гарантированная) стабильность, большое количество передового софта, хорош для десктопов, все пакеты обновляются постоянно, GNOME поддерживается официально, модель инкрементных релизов.
Какой из них лучше? Решать вам!
Сразу после открытия smokespots.ru, мы столкнулись с одной “очень серьезной проблемой”. Я получил следующий е-мэйл:
Уважаемый администратор сайта www.smokespots.ru
Я, почетный член арбитражной комиссии, электронной платежной системы WebMoney, login - FrichX, заявляю Вам, как представителю Интернет-ресурса smokespots.ru, о том, что располагаю компрометирующими материалами, относительно Вашей деятельности в сети Интернет, которые нам любезно предоставил Ваш хостинг-провайдер ****.com.
Мною, на сайте WebMoney, уже была создана персональная страница претензий http://arbitrage.webmoney.ru/asp/claimsurl.asp?procurl=http://smokespots.ru/ , предназначенная для публикации жалоб на Ваш ресурс, и я предлагаю Вам, добровольно внести пожертвование, направленное на развитие платежной системы WebMoney, для приостановления этого негативного процесса.
Деньги от Вас, должны быть переданы лично мне на мыло FRICHX@meta.ua (удалите все пробелы), в виде реквизитов Паймер-чеков, на общую сумму 900 WMZ, не познее 8 июня 2010 года, в противном случае, помимо публикации на вышеуказанной странице претензий, всех поданных нам претензий на Ваш сайт, я опубликую этот компромат также и в своих личных, многочисленных блогах, таким образом помимо блокирования вашего WM ID, вместе со всеми Вашими электронными деньгами, я могу Вам гарантировать существенный отток Ваших клиентов, а может быть и вовсе полное блокирование домена smokespots.ru, его регистратором.
Вот ссылка на всего одну из многочисленных моих работ (множество аналогичных документов найдете через поиск ключевых слов “FrichX” и например “gullon”):
http://cripo.com.ua/?sect_id=7&aid=89293&nv=gullon&fe=eu
Здесь, как видите, фигурирует ставший вдруг скандальным сайт gullon.eu, раньше безупречной и процветающей испанской кондитерской фирмы Gullon, который был полностью блокирован арбитражным сервисом WebMoney и лично мною, теперь его место вполне может занять SMOKESPOTS.RU!
Так что не тяните, потому что потом это будет гораздо дороже, а может быть и вовсе станет уже не возможно остановить негативный процесс, инициированный мною.
Также хочу Вас предупредить о том, что я не намерен вступать с Вами в переговоры, и в виде ответа на данное предупредительное сообщение, Вы можете отправить мне только реквизиты Paymer-чеков в выше оговоренной сумме, на выше указанный адрес, и ничего больше!
FrichX
P.S. Любителям пошуметь, и тем, кто желает обвинить меня в мошенничестве или вымогательстве, советую объективно взвешивать аргументы и свои возможности, с учетом того, что у меня хорошие связи не только в WebMoney, электронных СМИ, доменных регистраторов и хостерах, но и в силовых структурах Украины!
Я читал и катался по полу. “компрометирующими материалами, относительно Вашей деятельности в сети Интернет, которые нам любезно предоставил Ваш хостинг-провайдер ****.com” - этож просто ппц! ****.com - это вообще не провайдер, тем более, это сайт, принадлежащий ITRuns. И если бы товарищ додумался хотя бы на него зайти, то все что он бы увидел - огромную обоину с огромными сиськами :-D
На фоне этого тааак ржачно читать все остальное :-D Однако, создается впечатления, что многих это действительно может напугать. Люди! Не ведитесь на всякую хуйню и шантаж!
Конец.
Поставил на ноут (Lenovo B450-4TK-B) Debian Lenny. Первая проблема - обе сетевухи не заработали. Лановская вообще не определилась, а вайфайная не захотела находить беспроводные сети. Помогла статья, которую привожу далее.
У обладателей таких ноутбуков, как: Asus X51RL, Fujitsu-Siemens s6420, Toshiba a201, Samsung NC10, Amilo Mini 3520, Acer Aspire 5315 и еще многих других, есть одна общая проблема - Wifi карточка Atheros AR5007EG / AR242x, работоспособность которой после установки Linux-системы, как правило, оставляет желать лучшего. Благодаря проекту madwifi, установка драйверов Atheros не доставляет много проблем.
Диагностика оборудования: наличие Atheros AR5007EG /AR242x
В первую очередь необходимо убедиться, что в системе действительно установлена Wifi карта Atheros AR5007EG /AR242x:
$ lspci | grep Atheros
18:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)
Установка пакетов для сборки драйверов для Atheros AR5007EG /AR242x
Следующим шагом, необходимо установить пакеты для успешной компиляции драйвера:
$ sudo aptitude update
$ sudo aptitude install build-essential linux-headers-$(uname -r)
Установка MadWifi драйверов для для Atheros AR5007EG /AR242x
Далее, необходимо скачать драйвер для Atheros AR5007EG /AR242x:
$ mkdir ./mad-wifi
$ cd ./mad-wifi
$ wget http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6/madwifi-hal-0.10.5.6-r4103-20100110.tar.gz
После того, как драйвер скачан, его необходимо разархивировать и скомпилировать:
# Разархивируем драйвер
$ tar zxvf madwifi-hal-0.10.5.6-r4103-20100110.tar.gz
$ cd madwifi-hal-0.10.5.6-r4103-20100110
# Компилируем драйвер
$ make
$ sudo make install
Теперь драйвер скомпилирован. Необходимо проверить работу wifi-карты с новым драйвером:
# включаем модуль ядра
$ sudo modprobe ath_pci
# включаем wifi-интерфейс
$ sudo ifconfig ath0 up
# проверяем настройки wifi
$ iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wifi0 no wireless extensions.
ath0 IEEE 802.11g ESSID:"XXXXXXXXXXXXX" Nickname:""
Mode:Managed Frequency:2.437 GHz Access Point: XX:XX:XX:XX:XX:XX
Bit Rate:6 Mb/s Tx-Power:17 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=21/70 Signal level=-74 dBm Noise level=-95 dBm
Rx invalid nwid:848 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Если вывод последней команды похож на приведенный, то можно констатировать, что wifi карта работает. Остается лишь включить модуль ядра в загрузку и перезагрузиться:
$ sudo su
$ echo "ath_pci" >> /etc/modules
# блокируем загрузку альтернативного драйвера
$ echo "blacklist ath5k" >> /etc/modprobe.d/blacklist
# перезагрузка
$ reboot
Единственным недостатком такого метода является необходимость пересобирать драйвер после каждого обновления ядра. Благо, теперь это просто.
Удаление MadWifi драйверов для для Atheros AR5007EG /AR242x
В случае, если что-либо не получилось, либо появилось желание установить более свежий драйвер, то текущую установку можно без труда удалить:
$ cd ./mad-wifi/madwifi-hal-0.10.5.6-r4103-20100110
$ sudo make uninstall
Нужно заставить Wordpress автоматически постить ссылку в твиттер каждый раз когда добавляется новый или редактируется старый пост. Казалось бы, очень простая функция! Надо всего лишь найти плагин, который это делает и дать ему свой логин-пароль от твиттера! Но нет, 7 плагинов из 8 которые я попробовал не могли справиться с этим элементарным заданием!! Названий всех уже не помню. Но хочется отметить тот самый восьмой, который работал:
Хочется обнять и расцеловать автора этого замечательного плагина (кстати, он забавный :-D). Вот полный список его настроек:
все. Идеально просто и идеально работает. Почему остальные, более популярные и навороченные аналоги не могут осилить такой простой процесс - загадка.
DPI Calculator / PPI Calculator -
Вот эта считалка количества точек (пикселей) на дюйм важна, к примеру, для того, чтобы этот параметр правильно выставить в иксах и ожидать более внятного и чудесного отображения шрифтов.
Часто возникает необходимость восстановить удаленный файл в Linux. Многие «эксперты» говорят о том, что это невозможно для ext2/ext3. Не верьте — в этом может помочь программа Sleuth Kit.
Программа умеет работать с сырыми (raw) данными; поддерживает файловые системы NTFS, FAT, UFS 1, UFS 2, EXT2FS, EXT3FS, ISO9660; работает под операционными системами Linux, Mac OS X, Windows, CYGWIN, OpenBSD, FreeBSD, Solaris.
Загрузить Sleuth Kit | Документация по Sleuth Kit | http://www.sleuthkit.org/
Если покупка товара на amazon.com вызывает у Вас затруднения с доставкой товара (а некоторые товары доставляются только по США), то предлагаю Вам воспользоваться немецким отделом Амазона - amazon.de.
У них не такие дикие ограничения, как на английском или американском, где не каждую книгу или двд шлют в Россию.
Плюс на .de - доставка почтой (с предоставлением трекинга!) и стоит всего 6 евро на заказ любой величины. при доставке почтой таможенный лимит - 10 тыщ рублей (а пошлина будет всего 30% от суммы, превышающей 10000). А еще немцы благородно вычитают величину НДС (19%!) из стоимости товара для граждан стран, не входящих в Евросоюз (т.е. для россиян, например (: ).
Но что делать, если вы не нашли товар на немецком аналоге amazon.com?
на amazon.com можно покупать, используя посредников. например, shipito.com. таким образом можно брать вещи, которые продаются только в сша или у которых доставка только по сша.
Сам не пробовал, но юзерам с форума respectfamily.com доверяю.
Последние два дня прошли за авторизацией через OpenID. Задача традиционная: позволить юзеру регистрироваться и авторизоваться как парой логин-пароль, так и идентификатором OpenID.
В первую очередь, хочется сказать пару слов о том, зачем вообще это нужно. Все мы, будучи юзерами привыкли к парам логин-пароль, которые создаем на каждом новом сайте. OpenID заменяет их все всего-лишь одним. Стоит девелоперу сайта добавить эту опцию, и тебе не надо придумывать новый логин-пароль - вместо него ты просто используешь уже существующий, например, от Яндекса, или от ЖЖ. Это упрощает жизнь пользователя в сотни раз, т.к. ему не надо придумывать ничего нового, в 50й раз подтверждать свой e-mail, заходить в почту и т.д. Он просто вводит свой идентификатор, и все готово! Умники утверждают, что большинство пользователей рунета зарегистрированы на Яндексе. У остальных, наверное, есть почта на mail.ru или на гугле. Проблема только в том, что большинство юзеров живут в неведении, и не догадываются, что могут авторизоваться с помощью этих аккаунтов на других сайтах, а тупая надпись “OpenID” им совсем ни о чем не говорит. Поэтому задача немного расширяется: сообщить юзерам, что они могут не регистрироваться, а использовать уже имеющиеся у них аккаунты.
Сразу скажу, что если самим заниматься этим неблагодарным делом лень, то есть замечательный сервис, который предоставляет виджет для этого дела: http://loginza.ru/index
Но я выбрал путь посложнее. Итак, для начала мы качаем библиотеку OpenID: http://www.oneid.ru/info/openid-php/
кладем все, что скачалось в вебрут, и запускаем файл examples/detect.php, который нам кратко описывает совместимость нашей системы с библиотекой. Далее нужно подогнуть систему так, чтобы на этой странице все было хорошо.
Все, все должно работать. Заходим запускаем в браузере examples/consumer/ и наблюдаем вполне живой пример.
Возможно, вы захотите убрать все файлы, кроме папочки examples/consumer куда-нибудь назад, чтобы они не болтались в вебруте. В скрипте examples/consumer/common.php видно, как реализован импорт этой библиотеки в использующие ее скрипты - с помощью ini_set. Редактируйте эти строчки, и кладите файлы куда хотите. Хотя я просто положил их в один из include_path’ов.
Итак, мы имеем самую элементарную авторизацию с помощью OpenID. Теперь задача усложняется: сделать так, чтобы юзеру не надо было перенаправляться с вашей страницы, т.е. чтобы сайт провайдера открывался в поп-апе. Схема такая: пользователь вводит свой OpenID у нас на странице(1), шлется AJAX-запрос к нашему серверу. Сервер обрабатывает идентификатор так же, как страница try_auth.php из примера, и либо возвращает URL провайдера, либо ошибку. Далее ызывается поп-ап, в котором грузится тот самый URL провайдера, где юзер подтверждает доверие к ресурсу, и отправляется обратно к нам, на некую промежуточную страницу(2), цель которой вызвать функцию на странице, ее породившей (странице номер 1). Функция на странице 1 шлет AJAX-запрос к нашему серверу, который обрабатывает данные аналогично странице finish_auth.php из примера, и либо возвращает ошибку, либо регистрирует юзера, либо просто его логинит.
Вот и все. На всякий случай, приведу код промежуточной страницы (номер 2):
<html><head></head>
<body onload=”window.opener.handleOpenIDResponse((window.location+”).split(‘?’)[1]);window.close();”>
</body>
</html>
просто вызывает функцию handleOpenIDResponse, передает ей в качестве аргументов присланную ей строку запроса, после чего закрывает само себя.
Дальше дело за тем, под каким соусом это подать. На большинстве сайтов, само собой, сделано просто отдельное небольшое поле, рядом с которым надпись OpenID, которая почти никому ничего не говорит. Более-менее светлую идею нашел на одном форуме:

Идеей обязан вот этому: http://xekc.com/
Конец.
Вчера возникла необходимость обрабатывать событие paste. Т.е. пользователь скопировал что-то в буфер и вставляет это что-то в <input> при помощи одной только мышки. События keyup, keydown не возникает, ибо они срабатывают только на клавиатуру. Событие click не подходит, ибо оно не срабатывает по правому щелчку мышки, да и вообще это не то, что нужно. Событие change - вообще сакс, ибо оно срабатывает только после того как с текущего объекта будет перенесен фокус на другой объект (т.е. пользователь нажимает “вставить”, переключается на другое поле, и только тогда срабатывает change), а нам необходимо проверять ввод пользователя “на лету”, т.е. сразу после того, как он нажал кнопку “вставить”.
Что же делать? Оказывается в некоторых браузерах существуют события paste, cut и copy. Поскольку jQuery вся из себя такая кроссбраузерная, в ней нет стандартных функций для слушания этих событий. Тем не менее, их можно слушать с помощью bind.
Создаем <input>:
<input id=”someinput” type=”text” />
Создаем обработчик:
$(“#someinput”).bind(‘paste cut copy’, function(event){
alert(event.type);
});
Надо только учесть, что события срабатывают непосредственно перед тем, как производится соответствующее действие. Т.е. если пользователь нажимает “вставить”, сначала срабатывает событие, а потом текст вставляется в форму. Чтобы проверить текст, который пользователь вставляет в форму, нужно добавить несколько миллисекунд задержки (достаточно даже одной, но лучше добавить 100, ибо это почти незаметно для пользователя, но убережет от багов на медленных машинах) :
$(“#someinput”).bind(‘paste’, function(event){
setTimeout(function(){
alert($(“#someinput”).val());
}, 100);
});
Остался один ньюанс: оно не рабоает в Opera. Opera просто не создает эти события, и все. Там пришлось прибегать к использованию события change, что не очень красиво, но меньшинства сами виноваты. Также, обещают какие-то баги в Firefox 3.0-3.1. Я тестил в Chrome, Firefox 3.6 и IE - paste везде работает отлично. Собственно, вот подробности, поддержка этих событий в браузерах:
http://www.quirksmode.org/dom/events/cutcopypaste.html
и тестер для этих событий:
http://www.quirksmode.org/dom/events/tests/cutcopypaste.html
[video]
Уже второй раз приходится делать такую штуку. Я пользуюсь XFCE. Но схватываются “из коробки” не все комбинации клавишь Fn+key, как минимум изменение громкости добавлять приходится вручную. Для этого нужно открыть настройки клавиатуры. переключится во вкладку “Горячие клавиши”, и там уже добавлять комбинации одну за другой. Вообще, возможно кто-то уже решил эту проблему, написав скрипт, но пока я довольствуюсь самым малым. В будущем планирую дополнять и автоматизировать изменение комбинаций.
Итак, для клавиш изменений громкости можно на нужные биндинги посадить команды
aumix -v -3
aumix -v +3
или
amixer set Master 3%-
amixer set Master 3%-
для уменьшения и увеличения уровня громкости соответственно (вместо тройки можно поставить нечто свое в пределах очевидного разумного). Так как я пользуюсь exaile (даже когда он не входит в набор штатных приложений), настроил под него мультимедийные клавиши. Стоило просто набрать в терминале
exaile -h
Получится что-то такое:
