Latest Publications

Буквари

Накануне Нового года решил сделать себе небольшой подарок, заказал себе пару книг на «Озоне». Первая:  Никлаус Вирт – Построение компиляторов. Это как говорится классика, не мешает ознакомится каждому, кого интересует не только быдлокодерство программирование на php. Вторая: Брайан Керниган, Деннис Ритчи – The C PROGRAMMING LANGUAGE, «Белая Книга», книга которая просто обязана стоять на полке компьютерной литературы. В свете того что я решил потихоньку переходить на системное программирование, решил начать именно с нее, ибо по всем отзывам, книга из разряда «Библия для…». Многие считают, что читать компьютерную литературу в бумажном варианте – нынче моветон, ну да и пусть их, имхо, нет ничего приятнее, сесть вечерком с чашкой горячего чая/кофе/глинтвейна и на пару-тройку часов углубиться в чтение именно «книги», а электронные варианты использовать как справочник, в который можно нырнуть во время работы…

How fanboys see operating systems

How fanboys see operating systems

How fanboys see operating systems

©тырено отсюда

Радость нового железа. Печаль Wi-Fi.

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

  • Intel Core 2 Duo E7500 2.93GHz LGA775
  • Patriot 4Gb DDR3 SDRAM (PC3-10600) 1333Mhz
  • Asus P5P43TD PRO (Intel P43+ICH10R) Socket775
  • Palit GeForce 9600 Smart TC 1024Mb DDR3 (550/1800MHz/256bit) DVI HDMI D-Sub
  • Western Digital SATA II 500Gb WD5000AAKS 16Mb
  • D-Link DWA-510 PCI (Wireless)

Машинка получилась на заглядение, по сравнению с ноутбуком (Lenovo G530), на котором установлена аналогично сконфигурированная Slackware 13, скорость работы просто космическая. Но не все так гладко как хотелось бы. Подкачал wi-fi.

Девайс  D-Link DWA-510 PCI позиционируется как отлично работающий под управлением Linux, но, увы и ах. Ни официальные драйвера Ralink под чипсет, ни свободный форк, ни набор от D-Link собираться не захотели. После ряда экспериментов пришел к выводу, что данные драйвера просто не совместимы с ядром 2.6.29. После копирования bin файлов из архива в /lib/firmware стала определяться точка доступа, но без скомпилированного модуля ядра цепляться к ней карточка наотрез отказывается. Остается ждать милости производителей и надеятся на то, что в скором времени выйдет новая версия, ну или хотя бы патч.

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

Мобильный Спам.

Дожились. Сегодня получил смс от неизвестного номера с текстом «Ka4ai podarok!» и ссылкой. Любопытства ради открыл страницу по указанному адресу, правда в Midori на ноутбуке, от греха подальше. Оказалось, что это просто wap-сайт, каких море-океан, на котором предлагают прослушать и скачать mp3, скачать «клевые» картинки и т.п.

Спамеры совсем уже обнаглели, имхо.

Кратко о BashStyle-NG.

Вчера закончил локализацию очередной версии BashStyle-NG. В новой версии немало изменений, доступна тут ( Кристофер пока не обновил информацию, так что напротив моего имени по прежнему гордо красуется индикатор процесса 0% :) ).

P.S. Всех коллег поздравляю с Днем Программиста =)

Perl, Curl, Gmail

8 утра. Пришел на работу, выпил кофе, покурил. В голове каша, на работу не настроен. Не есть хорошо. Делаем разминку для мозгов опираясь на статью на Habrahabr. Напишем-ка простенький прикладной демон, который будет оповещать нас о новой почте на Gmail.

(далее…)

Обновление блога.

Итак, пришла пора обновляться. Во-первых, блог переехал на новый домен, точнее поддомен, во-вторых, поменял имя, ну и в-третьих, обновился дизайн и да и сам движок блога тоже обновился до последней версии. Через пару месяцев англоязычную версию блога можно будет увидеть по адресу http://gwinnblade.blogspot.com

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

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

Домашняя сеть на базе Linux.

Некоторое обилие компьютерной техники дома сподвигло на покупку wi-fi роутера для  устройства домашней сети. Что требовалось? Да в общем-то самый минимум: единое файловое хранилище (музыка, фильмы), торрент клиент с общим доступом, сервер для web-разработки (apache, mysql, perl, php, svn), терминальный доступ к операционным системам, установленных под VirtualBox, ну и ряд разных плюшек в довесок. Итак, у нас дано:

  • Wi-fi роутер D-link
  • Старенький компьютер (Slackware 12.2)
  • Ноутбук Acer Aspire 5100 (Slackware 12.2)
  • Субноутбук Asus eeePC 901 (Xandros)

Поехали. (далее…)

Broadcom wireless и Slackware 12.2

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

1. Скачиваем и устанавливаем драйвер

$ mkdir /usr/src/hybrid_wl && cd /usr/src/hybrid_wl
$ wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_32-v5_10_79_10.tar.gz
$ tar -xzf hybrid-portsrc-x86_32-v5_10_79_10.tar.gz
$ make -C /usr/src/linux M=`pwd`
$ cp wl.ko /lib/modules/$(uname -r)/kernel/
$ depmod && modprobe wl

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

2. Настройка
По вышеупомянутой ссылке рекомендуется в случае неработоспособности внести в блек лист модуль b43, в Slackware этого делать не нужно, в противном случае интерфейс wlan просто перестанет определяться.
Правка /etc/rc.d/rc.inet1.conf особых результатов не принесла, разбираться с /etc/rc.d/rc.wireless.conf было лениво, поэтому просто прописал в /etc/rc.d/rc.local следующее:

/sbin/iwconfig wlan0 essid имя_точки_доступа
sleep1
/sbin/iwconfig wlan0 key wep_ключ
sleep1
/sbin/dhcpcd wlan0

Тут маленькое замечание, при вызове dhclient wlan0 получение ip почему-то не происходит, тогда как dhcpcd wlan0 срабатывает на ура. Собственно все, теперь подключение интерфейса и получение ip происходит при загрузке.

Индикатор батареи для Slackware.

Намедни озадачился отсутствием индикатора заряда батареи в xfce-4.4.3, который идет в стандартной поставке Slackware 12.2. Плагин, который можно скачать с офф. сайта проекта xfce мне не понравился хотя бы только потому, что тянет за собой ряд зависимостей, захламлять которыми машину как-то не хочется, плюс установить удалось только одну из версий, которая толком и не работала. С другой стороны, на машинке уже установлена libnotify, которая позволяет выводить всплывающие уведомления, так почему бы не вспользоваться ей. Решение и реализация заняли всего 10 минут.

1. Определяемся, где у нас лежит информация о батарее.

$ cat /proc/acpi/battery/BAT1/state – информация о состоянии, отсюда будем брать текущий заряд.
$ cat /proc/acpi/battery/BAT1/info – общая информация, отсюда будем брать общую емкость, для вычисления процентов.
Возможно у Вас путь будет немного другой, например /proc/acpi/battery/BAT0/state

2. Пишем скрипт.

Первое что пришло на ум, это perl, хотя уверен, реализовать такое легко и на bash

1. #!/usr/bin/perl -w
2. my ($file1,$file2,@data,$damage,$current);
3. #читаем файл с информацией о батарее
4. open F1, '/proc/acpi/battery/BAT1/info'; while (<F1>) { $file1 .= $_; }; close F1;
5. open F2, '/proc/acpi/battery/BAT1/state'; while (<F2>) { $file2 .= $_; }; close F2;
6. #выбираем интересующие нас данные
7. return unless @data[0] = $file1 =~ /design\scapacity\:\s+(\d+)\s\w+/;
8. return unless @data[1] = $file1 =~ /last\sfull\scapacity\:\s+(\d+)\s\w+/;
9. return unless @data[2] = $file2 =~ /remaining\scapacity\:\s+(\d+)\s\w+/;
10. #считаем проценты
11. $damage = 100-(@data[1]/40);$damage = sprintf("%.1f",$damage);
12. $current = (@data[2]*100)/@data[1];$current = sprintf("%.1f",$current);
13. #вызываем внешнюю программу для отображения данных
14. `notify-send -u critical -t 7000 -i battery "
15. \tТекущий заряд батареи $current%
16. \n\tИзнос батареи $damage%
17. "`

Вот собственно и все, при вызове этой программки получаем нечто подобное:

всплывающее уведомление

При желании можно вызывать скрипт посредством bash скрипта, а если сделать симлинк на этот скрипт в /usr/local/bin, то можно, в добавок, повесить вызов уведомления на хоткей.