RuNIX.org — планета блогов о *NIX на русском языке

Отныне, не только про *NIX — Linux for All. For users and Geeks » linux

Дорогие читатели моего блога, и планеты блогов о *NIX на русском языке – runix.org. Начиная с этого дня, я планирую писать в свой блог не только о Linux. Буду писать обо всём, что мне самому интересно. В планету будут попадать только посты из категории linux, дабы не захламлять ленту постами, которые возможно не очень интересны читателям планеты. Связано это с тем, что область моих интересов куда больше чем Linux и всё с ним связанное, а писать постоянно только об OSS, тоже докучает. Не знаю почему когда я делал блог, я хотел видеть его таким. Возможно временная слабость, возможно просто старое желание о личном Linux блоге. В любом случае, я буду продолжать публиковать посты на Linux тематику, но возможно их станет чуточку меньше. Все, кто не хочет читать ни о чём кроме Linux (я вас прекрасно понимаю, выбор ваш), могут ничего не делать: я перенастроил RSS ленту, и старые подписчики получают только посты из категории linux, а все кто желает читать весь мой блог, могут подписаться на новую ленту в которую будут поступать все посты блога. Подписаться можно либо нажав на кнопку подписки в правом верхнем углу, либо по адресу «фида» – http://feeds.feedburner.com/bosha.

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

Спасибо всем тем кто читает, и комментирует :)

Похожие записи:

  1. Маленькие хитрости пользовательских скриптов и не только

QtWebKit будет выходить по независимому графику — K Notes

Разработчики QtWebKit приняли решение отделиться от процесса подготовки релизов Qt, чтобы иметь возможность выпускать обновления чаще, чем выходят новые версии основной библиотеки. Первый независимый релиз QtWebKit будет называться QtWebKit 2.0 и выйдет в мае. Эта версия будет совместима с Qt 4.6 и Qt 4.7. Новые релизы Qt будут по-прежнему включать текущую стабильную версию QtWebKit.

В прошлом медленный цикл развития QtWebKit тормозил разработку новых возможностей таких приложений, как Arora, Rekonq и WebKit KPart. Сейчас его сообщество активно растят, и более частый выпуск новых версий поможет динамичному развитию проекта — достаточно глянуть на серию заметок «This week in QtWebKit trunk»

Кроме того, используемая в QtWebKit ветка WebKit всегда синхронизируется с текущей стабильной веткой при выходе значительных релизов Qt (4.5, 4.6), из-за чего новые версии браузеров на основе QtWebKit могли долгое время отставать в реализации поддержки веб-стандартов от других WebKit-браузеров. Теперь же, работая по независимому от Qt графику, разработчики QtWebKit могут легко привязаться к выходу новых версий WebKit.

Выбор web камеры для Linux, Age Star S-PC250 - плохой выбор — Заметки на breys.ru

Вчера довелось протестировать ещё одну вебкамеру которую я не могу порекомендовать. Камера называется Age Star S-PC250 и выполнена в виде плющевого пингвина. Мало того, что крепление из плюшевого пингвина получается очень плохое и не устойчивое, звук подключается через отдельный проводок, так ещё картинка получается весьма отвратительная, судите сами - примеры кадров снятых вебкамерами: Age Star S-PC250, Gembird CAM90U, Genius iSlim 1322AF соответственно

Пример кадра снятого вебкамерой Age Star S-PC250Привет кадра снятого вебкамерой Gembird CAM90UПривет кадра снятого вебкамерой Genius iSlim 1322AF

Мне так и не удалось установить её прямо и получить преемлимый звук, но за то в отличии от Windows эта камера сразу определилась в Linux (но не в Skype), а в виндовс камера не работает даже после установки прилагаемых драйверов

По-моему вывод очевиден - вебкамера Age Star S-PC250 в виде плюшевого пингвина является плохим подарком линуксоиду

Выкладываем тексты и картинки в два клика — K Notes

Продолжая тему предыдущей заметки, Robert Riemann также предлагает использовать Klipper для того, чтобы чтобы отправлять фрагменты текста на сервисы вроде pastebin. Но гораздо проще воспользоваться виджетом Pastebin: просто добавьте виджет на панель или рабочий стол, и кликнув средней кнопкой мыши на нём, вы разместите текст или изображение из буфера обмена на pastebin.ca или imagebin.ca. Кстати, в следующих версиях KDE SC (видимо, в 4.4.2) можно будет назначить быструю клавишу для этого действия (сейчас, к сожалению, назначение клавиши для этого виджета ничего не делает).

Вы также можете переместить текст или изображение из другого приложения на этот виджет — например, вы можете перетащить файл из Dolphin или сделав скриншот, сразу же перетянуть его из окна KSnapshot на Pastebin

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" height="385" width="480"><param name="allowFullScreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="src" value="http://www.youtube.com/v/Rt4kpLlKzFk&amp;hl=ru_RU&amp;fs=1&amp;"/><param name="allowfullscreen" value="true"/><embed allowfullscreen="true" allowscriptaccess="always" height="385" src="http://www.youtube.com/v/Rt4kpLlKzFk&amp;hl=ru_RU&amp;fs=1&amp;" type="application/x-shockwave-flash" width="480"></embed></object>

(Смотреть в OGG)

Использование Klipper для укорачивания адресов — K Notes

Если вы активно пользуетесь микроблогами вроде Twitter или identi.ca, то наверняка знакомы с сервисами bit.ly и tinyurl, которые позволяют создавать короткие псевдонимы для длинных адресов. Robert Riemann предлагает простой способ получать доступ к таким сервисам при помощи механизма действий Klipper — встроенного в KDE менеджера буфера обмена.

Для начала вам понадобится консольный скрипт, который будет отсылать длинный URL на сервис и возвращать в ответ короткий. Роберт предлагает свой скрипт на Ruby, который предоставляет интерфейс к ur1.ca, но можно воспользоваться гораздо более простым рецептом от Григория Бакунова:

$ curl http://clck.ru/--?url=http://ваш-url

Итак, нажмите правой кнопкой на значке Klipper, и выберите «Настроить Klipper». В открывшемся диалоге перейдите на вкладку «Действия». Добавьте новое действие для регулярного выражения

(^(http|https|ftp):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$)

В качестве команды укажите

curl http://clck.ru/--?url=%s

А в колонке Output Handling выберите «Replace Clipboard» (чтобы короткий URL автоматически помещался в буфер обмена, замещая длинный).

klipper-clck

Затем на вкладке «Комбинации клавиш» убедитесь, что для действия «Ручной выбор действия» назначена комбинация (по умолчанию это Ctrl-Alt-R).

Теперь вам осталось только скопировать адрес, и нажать указанную выше комбинацию клавиш, чтобы увидеть вот такое меню:

klipper-clck1

GQ

Роняю ядра. Недорого. — GQ's blog » Linux

Сегодня научился ронять ядро.
Следующим образом:
mkfs.ext2 /dev/sdc2
mount /dev/sdc2 /mnt
iozone … -f /mnt/io #бенчмарк

В другом потоке:
dd if=/dev/zero of=/dev/sdc2 bs=1024 count=1024
mkfs.reiserfs /dev/sdc2

Вот я теперь думаю: я был не прав или всё-таки оно не должно было упасть?
Что ответит Александр ДрузьКО?

GtkListStore и кириллица — Expl0rer's Weblog » Linux

Наткнулся на непонятную багофичу при работе с Gtk::ListStore и кириллическим текстом.

    groups_store = Gtk::ListStore.new(String)    

    @history.each { |key, tweet|
      iter = groups_store.append
      iter[0] = key
    }

Здесь @history это Hash, ключем которого являются строки, как на латинице, так и на кириллице.

Вот так я пытался извлечь значение из хеша по выделенному элементу:

    tweets = @history[@groups.selection.selected[0]]

Не работает на тех элементах ассоциативного массива, в которых в ключ входят символы русского алфавита.

@groups.selection.selected[0] отличается от того значения, с которым хранятся значения в @history. Чем отличается я так и не понял, ибо размер строк в байтах, а также из предстваление в виде массива этих байт полностью совпадает.

Поправил вот таким способом:

    groups_store = Gtk::ListStore.new(String, Object)    

    @history.each { |key, tweet|
      iter = groups_store.append
      iter[0] = key
      iter[1] = key
    }

    tweets = @history[@groups.selection.selected[1]]

То есть, стал хранить в модели одну строку дважды: первый раз для отображения; второй – чтобы извлечь в первозданном виде. Возможно дело в том, что столбец, куда выводится информация имеет атрибут ‘markup’:

    col = Gtk::TreeViewColumn.new
    renderer = Gtk::CellRendererText.new
    renderer.set_wrap_mode(Pango::WRAP_WORD)
    renderer.set_wrap_width(400)
    col.pack_start(renderer, false)
    col.add_attribute(renderer, 'markup', 0)
    @groups.append_column(col)

На пути к домашнему мультимедиа центру. Поднимаем DLNA сервер. — Записки

Не так давно стал счастливым обладателем телевизора Samsung LE32B652T4W. HD проигрывателя у меня нет, но в телевизоре есть usb порт, и понимает телевизор много видео форматов. Только вот постоянно таскать флэшку к телевизору не очень удобно. Тем более если речь идет об HD фильмах 1080p. Ни каких флэшек не хватит. Благо телевизор поддерживает DLNA протокол. Было решено расшарить мультимедиа контент через DLNA сервер под Linux.

Исследуем варианты


Судя по статье на elinux.org существует 3 реализации DLNA сервера под Linux:

1. uShare
2. Rygel
3. minidlna

Не буду писать много букв про преимущества и недостатки каждого. Скажу просто, Rygel у меня вылетел и высыпал в консоль кучу debug информации. uShare заработал, но остановился на сканировании первого же каталога. Не понимает он кириллицу. Проблема известная и вроде как не решена, впрочем я сильно не исследовал этот вопрос, потому могу ошибаться. Остался minidlna. И он у меня заработал на ура.

Настраиваем и поднимаем


Скачиваем последнюю версию сервера и распаковываем архив. Внутри не будет исходников, там лежит бинарник minidlna и файл конфигурации minidlna.conf. Файл конфигурации копируем в /etc, а бинарник в /usr/sbin.

Приступим к конфигурированию сервера. Ни чего сложного в этом нет. Приведу часть моего конфига, ту, которую я изменил.


media_dir=V,/media/hdd/Медиа/Видео
media_dir=A,/home/user/Моя музыка
media_dir=P,/home/user/Мои рисунки

notify_interval=60


То есть я указал путь для контента (media_dir=). При этом буквы V, A и P указывают на характер контента. V - видео, A - аудио и P - картинки. Можно без этих букв, просто после знака равно сразу указать путь. Обратите внимание, название некоторых каталогов у меня просто ужасны. Мало того, что там кириллица, так еще и пробелы. Но minidlna все кушает на ура, даже пробелы не нужно экранировать, и это приятно меня удивило.
Параметром notify_interval я указал интервал в секундах для автоматического обнаружения новых файлов. Тут по вкусу. Иногда, после копирования нового фильма, хочется сразу его посмотреть, и не ждать 900 секунд, которые установлены по умолчанию.

Запускаем


Все просто

minidlna -d -f /etc/minidlna.conf

и можно идти и смотреть фильмы. Но как быть с автозапуском? Можно конечно поместить команду в стандартный гномовский или кдешный автозапуск. Но на мой взгляд лучше воспользоваться init.d скриптом.


#! /bin/sh

# chkconfig: 345 99 10
# description: Fedora Startup/shutdown script for MiniDLNA daemon

# If you have chkconfig, simply:
# chkconfig --add minildna

# Proper init scripts on Linux systems normally require setting lock
# and pid files under /var/run as well as reacting to network
# settings, so you should treat this with care.

# Original author: Perry Clark <omfgppc com="">

## EDIT FROM HERE

# Installation details
MINIDLNA="/usr/sbin/minidlna"
ARGS="/etc/minidlna.conf"

# Where to keep a log file
MINIDLNA_LOG="/var/log/minidlna.log"

# Where the PID lives
PID_FILE="/var/run/minidlna.pid"

## STOP EDITING HERE

# The path that is to be used for the script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

set -e

# Only start if we can find the minidlna.conf.
test -x $MINIDLNA || exit 0

# Parse command line parameters.
case $1 in
  start)
    echo -n "Starting MiniDLNA: "
    $MINIDLNA -f $ARGS -P $PID_FILE >> $MINIDLNA_LOG 2>&1
    echo "ok"
    ;;
  stop) 
   echo -n "Stopping MiniDLNA: "
     for pidf in `/bin/ls $PID_FILE 2>/dev/null`; do
      if [ -s $pidf ]; then
        kill `cat $pidf` >/dev/null 2>&1
      fi
          rm -rf $PIF_FILE
      done 
   echo "ok"
   ;;
  restart|reload|force-reload)
   echo "Restarting MiniDLNA: "

   $0 stop
    sleep 2
    $0 start

    ;;
  *)
      # Print help
      echo "Usage: /etc/init.d/minidlna {start|stop|restart|       reload|force-reload}"
      exit 1
      ;;
esac

exit 0


Подглядел тут. Называем скрипт minidlna, копируем в /etc/init.d, присваиваем права 755 и добавляем в автозапуск.

chmod 755 minidlna
sudo chkconfig minidlna on


Запускать и останавливать minidlna вручную можно командами:

sudo /etc/init.d/minidlna start
sudo /etc/init.d/minidlna stop


После запуска minidlna будет сканировать каталоги с контентом. Это может занят несколько минут. За ходом сканирования можно следить в файле /tmp/minidlna/minidlna.log. Если после изменения путей в файле конфигурации телевизор не видит новых каталогов, попробуйте удалить /tmp/minidlna/files.db и перезапустить сервер.

И напоследок, подключено у меня все (телевизор и сервер) через роутер D-Link DIR-300.

Линукс это в первую очередь зло! — Kir Kolyshkin

Очень весёлый парнишка на каком-то форуме жгёт по полной. Если даже это тролль, то -- великий и могучий тролль. bash.org.ru нервно курит в сторонке.

Чёрт, ветка от апреля 2006 года. Хочу ещё Аркадия Куликова!

Linux - это Open Source. Это плохо. Любой хакер откроет исходники и взломает!!! В Windows такого нет. Говорю как админ со стажем работы в крупной конторе.

Кто мне скажет что Open Source это круто? Эта идеология скоро умрет как и Linux. Я то знаю как и что в этом мире делается. Так что не надо ляля.

Линукс это в первую очередь зло. Вы должны принять это как факт. Он не дает развиваться пользователям. Там всё привязано к командной строке и это плохо. Линукс был задуман как альтернатива Windows, а получилась ОСь для серверов. Но тут есть подвох. Windows работает на серверах всё равно лучше. Я сам проводил тесты. Windows на 20-30% стабильнее. И сама Microsoft это подтверждает.

Я считаю что если крупные корпорации не поддерживают Linux - это значит эта система скоро умрет как и Open Source. Даже Торвальдс сказал об этом.

бсд - разновидность линукса вы что не знали?

Люди опомнитесь. Linux умрёт. Это торвальдс сам сказал недавно!!! Они признал поражение!
(number of comments Comments |Comment on this)

SFTP: Chroot в домашнюю папку — Uniвсячина » runix.org

В новых версиях openssh (хотя не таких уж и новых, >= 4.9 если не ошибаюсь) есть возможность ограничить доступ пользователя в подсистеме sftp. Т.е. задать ему ChrootDirectory, как в proftpd. Например в домашнюю папку (ибо нефиг лазить за её пределами). Рассмотрим, как это можно реализовать.

Для начала, создадим группу sftpusers. Ограничения будут действовать только на пользователей из этой группы (мы ведь не хотим ограничивать пользователя root?):

addgroup --system sftpusers

Далее заменим подсистему sftp в /etc/ssh/sshd_config:

-Subsystem sftp /usr/lib/openssh/sftp-server
+Subsystem sftp internal-sftp

Ну и наконец запишем ограничения в тот же файл:

Match Group sftpusers
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no

Не забываем перечитать конфиг:

invoke-rc.d ssh reload

Теперь разберемся с пользователями. При создании пользователя не надо указывать ему шелл, так как он все равно не сможет им воспользоваться (см. ForceCommand internal-sftp). Поэтому указываем в качестве шелла /bin/false. Домашняя папка (точнее папка, которую мы указали в ChrootDirectory) обязательно должна иметь владельцем пользователя root. Иначе будем получать ошибку:

fatal: bad ownership or modes for chroot directory "/home/%username%"

А вот группу-владельца chroot-папки можно задать любую. Но главное условие – chroot-директория должна быть доступна на запись только для пользователя root и никого больше. В противном случае получим вышеприведенную ошибку.

Рассмотрим пример создания пользователя:

useradd -G sftpusers -s /bin/false -d /home/user1 user1
mkdir /home/user1
chown root:user1 /home/user1
chmod 750 /home/user1

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

ChrootDirectory /home

А внутри /home разруливать доступ к папкам, используя обычные права доступа.

Запретить вход по ssh — Matter of attitude

Если нужно запретить вход по SSH всем пользователям кроме избранных, добавляем в sshd_config:
AllowUsers admin manager
Если же нужно запретить некоторым пользователям вход, то, аналогично:
DenyUsers guest visitor

LinguaLeo: русский сервис для изучающих английский язык — Paradigma

Спешу поделиться своей находкой: русскоязычный сервис LinuaLeo для тех, кто учит английский язык.

Как работать с LinguaLeo?

На LingoLeo собраны аудиокниги из открытых источников (public domain), выступления на TED.com c субтитрами и ролики с YouTube, так же с сопутствующим текстом. Пользователю предлагается простая, но эффективная методика работы с текстом. Сперва Вы выбираете интересный вам контент. Важно, чтобы вам действительно был интересен учебный материал, потому как скука - злейший враг учебы. Если вам не интересен Оскар Уальд с его Портретом Дориана Грея - не мучайте себя, найдите то, что вам на самом деле по душе. Я, например, с огромным удовольствием слушаю выступления с конференции TED.com. Первый раз рекомендуется прослушать материал без подглядывания с субтитры. Это необходимо для тренировки навыка распознавания речи на слух. После прослушивания вы читаете текст, выделяете незнакомые слова и получаете их перевод от встроенного в страницу Google Translate. Есть возможность поправить или добавить перевод, если вас не удовлетворил вариант от Google. Все выделенные слова добавляются в ваш словарь и затем будут использованы в персональных тренировках. Затем вы еще раз прослушиваете запись, уже зная все слова. На третий раз рекомендуется прослушивать и громко читать вслух, опережая диктора - таким образом вы вырабатываете правильное произношение.

Что нового?

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

Leo

Чего не хватает?

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

Резюме:

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

vim: замена с текущей строки и до конца файла — Debiania: просто ещё один блог о Debian

Продолжая постигать основы vim, открыл для себя диапазоны (range). Например, стандартная команда замены «bad» на «good» по всему файлу выглядит так:
:%s/bad/good/gc
Диапазоном здесь является символ процента — он означает «все строки файла».

Если хочется заменить всё, начиная с текущей строки и аж до конца файла, пишем:
:.,$s/bad/good/gc

Точка здесь одначает текущую строку, а символ доллара — последнюю строку файла.

Спасибо Google и составителю вот этого замечательного cheatsheat'а за помощь.

Ubuntuzilla - APT репозиторий для получения оф. релизов Firefox, Thunderbird, Seamonkey в Ubuntu 9.10 — Linux & Life

Наконец то свершилось, теперь актуальные версии продуктов Mozilla: Firefox, Thunderbird, Seamonkey можно получить из специального репозитария Ubuntuzilla. Для установки одного или всех продуктов - Firefox, Thunderbird, Seamonkey в Ubuntu 9.04, 9.10 Karmic Koala и 10.04 Lucid Lynx выполняем следующие действия: Добовляем репозитарий Ubuntuzilla в sources.list: echo -e "\ndeb http://

Перезагрузка блога — Amazon Byteflow

Ну что, привет, в очередной раз на новый лад - я опять сменил себе движок блога. :) И на этот раз уже не очень важно, что это - потому что он просто генерирует статический сайт. ;)

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

Надеюсь, что дизайн вам понравится, как нравится он мне - он достаточно ненапряжный и чистый. Единственное, что мне не нравится - это иконка, которая является ссылкой на блог в заголовке (третья справа). Заодно я планирую писать почаще (3 поста за последние полгода - это не очень клëво, да?), потому что это теперь сделать проще - все посты являются файлами в репозитории, которые без проблем можно обновлять в редакторе, не открывая никакого сайта.

В любом случае, как говорит Джереми Кларксон - hello and welcome! И прошу прощения, если старые посты вдруг оказались новыми в ваших фидридерах. :)

Построение графиков в Linux, русские надписи в gnuplot — Linux & Life

Решил написать о своих приключениях с gnuplot. Это не столько рекомендация, сколько исповедь о мучениях. Я пришел к выводу, что gnuplot нужен в том случае, если предполагается строить большое количество однотипных графиков, либо графики строятся по большому количеству данных, полученных машинным способом. Тратить же время на разбор всех его команд расточительно, если для статьи нужно сделать

Перестал работать звук во флеше во всех браузерах — Верхом на Debian GNU Linux

Проблема, возможно, появилась после очередного обновления KDE из бекпортов. Методом научного тыка было найдено решение. Оно состояло в том, чтобы снести PulseAudio. Всего-то ))) $ sudo aptitude purge pulseaudio Конкретных закономерностей мною найдено не было. С пульсом то работает, то не работает. По итогу звук вообще отказался отказываться работать. Так что, я пока оставил его жить. Как

Персональный органайзер osmo — Linux for All. For users and Geeks » linux

Давно я искал полностью keyboard driven персональный органайзер чтобы пользоваться им на нетбуке. Конечно сначала я пробовал всякие консольные. Пробовал и todo.sh и calcurse и многие другие. Я уже в общем плюнул искать, и начал приучать себя пользоваться мышкой и использовать google calendar (вопреки моей нарастающей ненависти в их сторону), пока на взятом когда-то давно у Muu конфиге wmii, я не обнаружил правила для программы под названием osmo. Мой интерес не заставил себя ждать и я её поставил. Сначала она мне не показалось интересной, пока я не зашёл во вкладку «О программе», и не обнаружил там большое количество комбинаций на все случаи жизни! Жаль конечно ,что не vim like комбинации. Радости моей не было предела, но рассказывать о всех комбинациях клавиш я не стану. Я лишь кратко расскажу что вообще из себя представляет эта небольшая программа. Описание комбинаций клавиш хорошо описано в самой программе.

Примерно таким вот интерфейсом, вас встретит osmo после первого запуска:

На мой взгляд никаких наворотов, только самое необходимое.

Как видно на скриншоте выше, в osmo всего шесть вкладок:

  • Календарь
  • Задачи
  • Контакты
  • Заметки
  • Настройки
  • О программе

При использовании программы, больше всего времени конечно будет проводиться в окне календаря. В нём отображаются собственно сам календарь, и задачи на текущий и следующие дни. Одиночная кавычка рядом с днём означает наличие каких-то заметок на день, серый фон показывает что на день есть какие-то задачи, зелёным выделяется текущий день, а если стоит красная метка. значит у кого-то из контактов, сегодня день рождения, или как там написано «именины». Всё это очень не плохо на мой взгляд, настраивается в настройках программы. Там вообще множество полезных опций :)

Задачи (в общем-то, как и заметки и контакты), группируются по категориям. Категории задаются независимо для всего. Т.е. для задач свои категории, для контактов свои, и свои же для заметок. Насколько это удобно тут решает каждый для себя. Мне как-то было без разницы. После ведения задач в тетради, любой вариант казался куда более удобным :) У задачи есть приоритет, от которого зависит как она будет выводиться в общей куче задач. Т.е. например важная задача выделяется жирным, а задача на сегодня или уже «просроченная», выделяется красным. Выполненные задачи становятся зачёркнутыми. Их так можно удалить, или указать в настройках программы, удалять выполненные задачи сразу после выполнения. Задачи можно сделать повторяющимися или добавить напоминание. Кстати об напоминании. Можно задать выполнение какой либо команды для напоминания. Например так:

mail -s "hey, you! You should do one thing! Did you forget?" youremail@example.org

С контактами думаю всё понятно :) Единственное что – полей очень много. Можно чуть ли не компромат составить в одной только заметке :) Можно и фотографию добавить, и отменить когда день рождения\именины и многое другое. Есть возможность добавлять теги, а затем искать по ним. Искать можно по нескольким параметрам: имя, фамилия, теги и все поля. Поддерживается импорт (cvs), и экспорт в файл.

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

Несмотря на то, что osmo графическое приложение, есть и парочка полезных опций запуска:

  • -c, –calendar Показать только календарь.
  • -e, –check Показать окно с задачами при запуске
  • -d, –days На сколько назад проверять задачи
  • -s, –config=PATH Указать путь к файлу конфигурации osmo.
  • -t, –tinygui Сделает минималистичный интерфейс. Удобно когда маленький экран.

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

Оффициальный сайт osmo – ссылко!

Нет похожих записей.

Temporary-Post-Used-For-Style-Detection-Title-1900168 — vonderer@darkstar:~$

Temporary-Post-Used-For-Style-Detection-Content-1900168

Несколько полезных возможностей zsh — Linux for All. For users and Geeks » linux

Недавно пошла мода, на использование в качестве шелла – zsh. Даже не знаю, откуда она взялась. В общем, не в этом и суть. Мода понесла за собой море статей на тему zsh, но нигде ничего интересно и полезного на мой взгляд не было. Не раскрывало и половины потенциала zsh. Я конечно, не претендую на полноту. Я лишь опишу то, что я действительно использую повседневно, и что позволяет мне обходится без файлового менеджера и переложить эти задачи на zsh.

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

zstyle ':completion:*' completer _expand _complete _ignored
zstyle ':completion:*' group-name ''
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the character to insert%s'
zstyle ':completion:*' max-errors 1
zstyle ':completion:*' menu select=long-list select=0
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
zstyle :compinstall filename '/home/bosha/.zsh/.zshrc'
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

И выглядит оно как своеобразное меню:

Постоянно писать cd чтобы сменить директорию тоже не кажется очень удобным. Поэтому включаем режим, в котором можно просто набрать путь для перехода в директорию:

setopt AUTO_CD

Теперь для перехода по каталогам не нужно использовать cd, но и это тоже далеко не предел :) Например можно перемещаться по директориям с использованием сокращённого ввода. Т.е. вместо /mnt/hard/music, можно написать /m/h/m/ и нажать Enter и сразу переместимся в каталог. Если вариантов перехода несколько, то zsh предложит выбрать:

autoload -Uz compinit
compinit

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

extract () {
 if [ -f $1 ] ; then
 case $1 in
 *.tar.bz2)   tar xjf $1        ;;
 *.tar.gz)    tar xzf $1     ;;
 *.bz2)       bunzip2 $1       ;;
 *.rar)       unrar x $1     ;;
 *.gz)        gunzip $1     ;;
 *.tar)       tar xf $1        ;;
 *.tbz2)      tar xjf $1      ;;
 *.tgz)       tar xzf $1       ;;
 *.zip)       unzip $1     ;;
 *.Z)         uncompress $1  ;;
 *.7z)        7z x $1    ;;
 *.tbz)       tar xjvf  ;;
 *)           echo "я не в курсе как распаковать '$1'..." ;;
 esac
 else
 echo "'$1' is not a valid file"
 fi
} 

# упаковка в архив
pk () {
 if [ $1 ] ; then
 case $1 in
 tbz)       tar cjvf $2.tar.bz2 $2      ;;
 tgz)       tar czvf $2.tar.gz  $2       ;;
 tar)      tar cpvf $2.tar  $2       ;;
 bz2)    bzip $2 ;;
 gz)        gzip -c -9 -n $2 > $2.gz ;;
 zip)       zip -r $2.zip $2   ;;
 7z)        7z a $2.7z $2    ;;
 *)         echo "'$1' cannot be packed via pk()" ;;
 esac
 else
 echo "'$1' is not a valid file"
 fi
}

extract разархивирует исходя из расширения, а pk запаковывает в архив. В качестве аргумента, pk, надо передать тип ахрива (например tar), и имя файла\директории для «запаковки».

Для переименования файлов, использую функцию name:

name() {
    name=$1
    vared -c -p 'rename to: ' name
    command mv $1 $name
}

С ней переименование становится явно проще. name file_name и появится небольшой диалог, в котором необходимо будет ввести новое имя для файла.

Теперь самое интересное на мой взгляд: то, из-за чего я более не нуждаюсь в файловом менеджере – алиасы. В zsh есть более продвинутые алиасы, позволяющие открывать файл в определённом приложении. Выглядят они примерно так:

alias -s {pdf,djvu}=evince

Теперь можно открыть любой pdf документ просто набрав его имя в терминале, но тут есть одно но: терминал становится занят выводом программы и если убить терминал, то и программа завершится. Эта небольшая проблема решается с помощью nohup. Немного модернизируется alias, и вуаля! Всё работает прекрасно:

alias -s {pdf,djvu}="nohup evince"

Теперь запуская программу, можно будет смело закрывать терминал, а если требуется продолжить работу в нём же, то можно просто добавить & в конце имени, чтобы «увести программу в фон».

Это в принципе почти всё что я использую. Чуть ниже ещё пара функций которые я особо описывать не стал(ибо они не относятся непосредственно к zsh), и ссылка на мой конфигурационный файл zsh. Вдруг кому пригодится =]

Перевод и использованием google translate. Требуется скрипт. Брать тут – ссылко!

alias gt=»~/.scripts/google-translate.py»

Использование: gt en ru word or phrase to translate

Мини-скрипт для загрузки файлов на сервис omploader.org:

ompload() { curl -F file1=@"$1" http://omploader.org/upload|awk '/Info:|File:|Thumbnail:|BBCode:/{gsub(/< [^<]*?\/?>/,"");$1=$1;print}';}

Автодополнение для kill\kilall:

zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:kill:*' force-list always
zstyle ':completion:*:*:kill:*:processes' list-colors "=(#b) #([0-9]#)*=$color[cyan]=$color[red]"

Мои конфиги доступны в git репозитории github:

git clone git://github.com/bosha/zshrc

Или по ссылке – ссылко!

Похожие записи:

  1. Укорачиваем ссылки из консоли
  2. Aspell – проверка двух языков
  3. Маленькие хитрости пользовательских скриптов и не только

on emdebian (glibc6-eabi) — Tuxedo Live


There are no packages for Crush other than for ARM - that does not
include armel so there cannot be -eabi anything in Crush.

http://www.emdebian.org/crush/
Currently only available for ARM

Only Grip has support for architectures other than ARM (and Grip has
replaced ARM support - lenny - with armel support - squeeze and sid.)

http://www.emdebian.org/grip/search.php?arch=arm&distro=lenny&package=coreutils
http://www.emdebian.org/grip/search.php?arch=armel&distro=squeeze&package=coreutils

Neil Williams

Новое оформление Ubuntu в 10.04 — Ubuntu days

Как вы наверное уже знаете (я то знаю точно уже :) ) в следующем релизе Ubuntu помимо LTS’ности и очередных модных и не очень нововведений будет ещё и новая тема оформления, то бишь приевшийся многим, в том числе и мне, коричневый Human стиль будет заменён на что-то свежее. А вот что именно свежее нам наконец-то и показали:


Почитать в оригинале <noindex>можно тут.</noindex>.
Перевод есть <noindex>на хабре</noindex>.
Так же там есть новые логотипы и Boot Splash.

Теперь что касается новой темы. Если кратко, то не впечатлили совсем. Всё та же коричневость, разве что фоновый рисунок другой. Кнопка закрытия окна слева – это как-то вообще аля Мак. Имхо люди много лет пользовавшие Ubuntu будут привычно дергать мышку вправо и обламываться, тоже самое будут делать новички после Windows и лишь маководам будет комфортно. Как вы думаете много яблочников пересаживаются на Ubuntu ? :)
Конечно всё это настраиваемо и легко, цвет кнопки, валлпапер, но тем не менее множество людей, и я в том числе кстати, пользуются практически дефолтным оформлением. Так что…

P.S. Я тут кстати на работе поставил альфу 3-ю убунты. Вполне юзабельно кстати, ну по крайней мере по итогам 2-го дня :) Тут оформление пока старое, видимо попозжей пришпилят.

faces/muhas.png

dmpd — управляем mpd с помощью dmenu — muhas — Заметки аскетичного гика

Набросал скрипт для для управления mpd с помощью dmenu, но так как sh очень странный язык который позволяет быстро расширить/изменить возможности скрипта (да что там позволяет, просто таки хочется это сделать как видишь скрипт), то заодно немного и расширились возможности dmpd

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

Писалось для себя, поэтому, к примеру, по каталогам бегать некоторым будет не удобно (но менять скрипт под себя никто же не запрещает)

<cut text="В общем под катом код скрипта с некоторыми комментариями">
#!/bin/dash
# некоторые функции управления mpd через dmenu
# в зависимостях dmenu, mpc, dash, awk
# ну и notify какое-нибудь ^_^
# да и что-нибудь типа mpdnotify не помешает (см. конфиг)
################### dmpd - mpd manager ##################
#      Version 0.1.1 by muhas <muhas [(a)] muhas.ru>    #  
#########################################################
# config
BG="#737373" 
FG="#e7e3e7" 
# команда dmenu без приглашения
DMENU="dmenu -nb $BG -nf $FG -sb $FG -sf $BG -i" 
SHOW=mpdnotify #скрипт для показа текущего трека
MUSIC=$HOME/all/muzlo/
ACTIONS="info\nshuffle\nrandom\nstop\nplay\npause" # дополнительные действия для mpc
# /config

# body
if [ .$1 = ."" ]; then # выбираем первоначальное действие
 cmd=$(echo "current\nadd\nplaylist\nclear\n$ACTIONS" |$DMENU  -p "select action") &&  $0 $cmd
fi
# ну и дальше уже всё зависит от выбранного действия
if [ .$1 != ."" ];then
case "$1" in
 'add') cmd=$(mpc ls | $DMENU -p "select folder")
		while [ .$open != ."add" ]; do # скакаем по каталогам
		 open=$(echo "add\nopen" | $DMENU -p "select action")
		 if [ .$open != ."add" ]; then
		  cmd=$(mpc ls "$cmd" | $DMENU -p "select")
		  [ -f "$MUSIC$cmd" ] && break #если файл то нафига открывать?
		 fi
		done		
		mpc add "$cmd" && mpc play
		;;
 'clear') mpc clear
		cmd=$(echo "add\nplaylist" | $DMENU -p "select action")
		$0 $cmd
		;;
 'current') cmd=$(mpc playlist --format '%position% %title% by %artist%' | $DMENU  -p "select file" |awk  '{print $1}')
		mpc play "$cmd"
		;;
 'playlist') cmd=$(mpc lsplaylists| $DMENU  -p "select playlist" )
		mpc load "$cmd" && mpc play
		;;
 'info') $SHOW
		;;
 *)  	mpc $1
		notify-send "`mpc|head -n 1|grep -v volume` " "`mpc |tail -n 1`"
		;;
esac
fi
# /body

Полезные екниги (Linux, Unix etc) — Блог FlyCat.Info: КОТорый летает... » for-runix

Новая подборка электронных книжек по Linux, Unix, программированию и операционным системам — прямо из недр сайта KpNemo. Для скачивания необходима регистрация на сайте.(...)
Read the rest of Полезные екниги (Linux, Unix etc) (920 words)


© flycat for Блог FlyCat.Info: КОТорый летает..., 2010. | Permalink | No comment | Add to del.icio.us
Post tags: , , , , , , ,

Feed enhanced by Better Feed from Ozh

iTunes — Matter of attitude

Создаём свой git репозитарий с веб интерфейсом — Linux for All. For users and Geeks » linux

Довольно давно, я, да и наверное многие люди хранят свои конфиги на github. Оно и понятно, ибо это крайне удобно. Для хранения конфигов он подходит на ура, да и для проектов тоже, но вот бесплатный аккаунт, имеет некоторые ограничения, которые меня весьма сильно смущали. Главным из них, была невозможность бесплатно создать приватный репо. Конечно, сумма там незначительная, но платить мне ой как не хотелось, да и зачем, когда есть парочка личных серверов под рукой? Поэтому, сев писать с другом небольшой проект, решили «поднять» репо, на одном из «личных» серверов.

Я уже ни раз упоминал, и думаю будет не лишним сделать это ещё раз, что на серверах я использую Debian. Нам понадобятся: git, perl (нужен для веб интерфейса) и всё это будет под управлением lighttpd.

sudo aptitude install gitcore perl perl-base perl-modules lighttpd

Далее создадим собственно репо. Создадим пользователя, и инициализируем репо:

 sudo adduser git
 su git
 cd ~
 mkdir .ssh/

Теперь необходимо добавить публичные ключи в файл /home/git/.ssh/authorized_keys. Предположим, что публичный ключ уже находится в директории /tmp. Просто добавим содержимое ключа, в файл authorized_keys:

cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

Теперь необходимо создать директорию для проектов, и инициализировать там репозиторий:

mkdir -p /opt/git/project.git
cd /opt/git/project.git
git --bare init

В папке /opt/git/, находятся все проекты. Чтобы создать новый проект, нужно создать в этой директории ещё одну директорию, и инициализировать репозиторий командой git –bare init.

Кстати, всё манипуляции что были выше, необходимо производить от пользователя git. Разве что заведомо создать директорию /opt/git с правами записи для пользователя git, и группы www-data (веб сервер).

Фактически, репозиторий уже работает. Проверим это:

mkdir project
cd project
git init
touch README
git commit -m 'First commit'
git remote add origin git@git.yourserver.com:/opt/git/project.git
git push origin master

Можно проверить просто сделав git clone git@yourcite.ru:/opt/git/project.git

Теперь осталось настроить gitweb, и lighttpd для работы с ним.

cd /tmp
git clone git://git.kernel.org/pub/scm/git/git.git
cd git/
make GITWEB_PROJECTROOT="/opt/git" \
        prefix=/usr gitweb/gitweb.cgi
sudo cp -Rf gitweb /var/www/www.yourcite.com/html
sudo chown -Rc git:www-data /var/www/www.yourcite.com/html

Этими действиями, мы скачаем последнюю версию gitweb (с той версией что в репозитарии, у меня как-то не сложилось), соберём, и скопируем полученное в папку с сайтом. У меня это git.the-bosha.ru (можете не пытаться открыть, он за натом :) ).

Осталось добавить gitweb.cgi в index.file_names в /etc/lighttpd/lighttpd.conf

## files to check for if .../ is requested
index-file.names           = ( "index.php", "index.html",
                                "index.htm", "default.htm",
                                "index.lighttpd.html", "gitweb.cgi" )

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

sudo /etc/init.d/lighttpd force-reload

Вот в общем всё. Удачного коммита ;)

Похожие записи:

  1. Немного про lightTPD, самую малость…
  2. Pytyle – и тайлинг и не тайлинг…
  3. Dynamic DNS

Qingy – «менеджер дисплеев», логин менеджер, и замена agetty — Linux for All. For users and Geeks » linux

Недавно, я решил снести со своего нетбука archlinux, который на мой взгляд, солидно на нём глючил, и поставить на него gentoo. Мне просто жуть как не хотелось ставить slim или какой либо другой логин менеджер, но и без них было весьма туго, ибо я параноик. Мало ли что: достаточно нажать ctrl-alt-f1 и ctrl-c для того чтобы убить X сессию, и получить шелл. Конечно, прав рута не будет, но и без них можно было дел натворить :) Но сейчас не об этом. Как я уже написал, ставить slim или какой либо другой login manager, я не хотел. Поэтому после большого количества упоминаний о qingy, было решено попробовать сие чудо.

Qingy это замена для стандартного agetty. Причём, qingy использует весь потенциал framebuffer’а, благодаря чему ещё и выглядит приятно. Кроме того, есть ещё пара полезных и приятных мелочей (а может это не мелочи вовсе), как например удобный запуск нескольких X сессий. Выглядит это примерно так: когда вы загружаетесь, перед вами появляется agetty на первой tty консоли, который предлагает ввести логин и пароль. После их ввода, вы попадаете в свой терминал, и оттуда, уже делаете необходимые операции или запускаете X сессию которая занимает 7 консоль непосредственно для X сессии, и первую консоль, из который был произведён их запуск. В случае с qingy, после ввода пароля, можно либо запустить сразу X сессию, либо попасть в терминал. Причём, если «запустить иксы», то они так и останутся на первом терминале. На мой взгляд, это крайне удобно :) Можно нажать ctrl-alt-f2, и зайти под другим пользователем, или запустить другой wm например.

Чтобы использовать qingy, нужно его для начала поставить:

emerge qingy qingy-themes

После чего, нужно открыть с правами супер пользователя файл /etc/inittab, и заменить в нём строки:

# TERMINALS
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:2345:respawn:/sbin/agetty 38400 tty2 linux
c3:2345:respawn:/sbin/agetty 38400 tty3 linux
c4:2345:respawn:/sbin/agetty 38400 tty4 linux
c5:2345:respawn:/sbin/agetty 38400 tty5 linux
c6:2345:respawn:/sbin/agetty 38400 tty6 linux

На такие:

c1:12345:respawn:/sbin/qingy tty1
c2:2345:respawn:/sbin/qingy tty2
c3:2345:respawn:/sbin/qingy tty3
c4:2345:respawn:/sbin/qingy tty4
c5:2345:respawn:/sbin/qingy tty5
# Шестую консоль оставляем с agetty на всякий случай ;)
c6:2345:respawn:/sbin/agetty 38400 tty6 linux

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

Если говорить о красоте, то для framebuffer’а, qingy выглядит просто прекрасно, если не божественно =] Скриншот выкладывать не буду, ибо у меня «дефолтная» тема под названием Gentoo. Отправлю в галерею тем, там можно посмотреть внимательнее – ссылко!. Думаю, там многие найдут тему, которая им по душе. Так же, в qingy есть аскетичный текстовый интерфейс. Кто-то, возможно, предпочтёт именно его. Думаю, делать скриншот обычного предложения ввода пароля, и списка с доступными опциями (запуск X сессии, в терминал и прочее) не требуется :)

Темы qingy находятся в /usr/share/qingy/themes.
Конфиг qingy находится в /etc/qingy/config, и он хорошо документирован, поэтому не вижу смысла пересказывать все его опции.

Кстати, с помощью qingy, можно так же настроить и автовход, и запуск X сессии, что тоже крайне удобно, и заметно безопаснее других способов «автоматического запуска иксов».

Enjoy ;)

Похожие записи:

  1. vifm – консольный файловый менеджер в духе Vi
  2. Укорачиваем ссылки из консоли
  3. Быстрый доступ к ssh

А знаете ли вы, что... — Aceler online

В 2002-м году, будучи сотрудником школьного ВЦ, я внедрял Linux на рабочие места (точнее, одно рабочее место) преподавателей. Mandrake 8.0, помнится, больше туда ничего не влезло.

Originally published at Aceler online. You can comment here or there.

Консольные хитрости — Юникс и другие

Опытные юниксоиды знают и осознают всю мощь использования командной строки и немного “свысока” посматривают на “мышевозов” :) Но и в консоли есть свои недостатки, которые побеждаются с помощью каких-то приемов. У каждого свой набор, а я хочу поделиться своими наработками-находками-привычками, которые появились за долгие годы использования командной строки. Эдакий небольшой cheat-sheet.
Начнем :)

1. Копирование файлов с указанием прогресса. Всегда чертовски не хватало информативности в cp

rsync --progress file1 file2

(more…)

Сделать DUMP — Unix pin

Что делать если Solaris завис намертво? На «break» с системного контроллера не реагирует, в OBP не переходит, если kmdb загружен – и в него не переходит, только reset спасает… Что подвесило – не понятно, походу баг в ядре, или драйвер кривой. Нужно понять в чем проблема, попробовать как-нибудь вытащить дамп при следующем подвисании.
Добавляем в /etc/system параметры:


set snooping=1
set snoop_interval=120000000

и перегружаем сервер.

Этот параметр включает Deadman таймер, который по 15-му прерыванию раз в секунду проверяет, обновилась ли переменная ядра lbolt. Если переменная lbolt не была увеличена за определенный период времени (по умолчанию 50 секунд, или 120 секунд, как в моем примере), то это вызовет панику.
Дальше – анализируем полученный дамп и делаем выводы.

Ссылки
Core Dump Management on the Solaris OS
Writing Device Drivers-Enable the Deadman Feature to Avoid a Hard Hang

Работа для студентов: угнетение или школа жизни? — Paradigma

Я люблю книги, которые вызывают желание поспорить. Если в книге написаны правильные вещи, но автор не дает тебе вступить с ним в дискуссию, пользы от чтения получишь намного меньше, чем когда автор выдает одну спорную вещь за другой, побуждая твою мысль вырабатывать независимую точку зрения. Одной из таких неоднозначных, но безусловно полезных для саморазвития книг для меня стала книга Наоми Кляйн No Logo («Люди против брендов» в русском переводе).

В первых главах автор описывает, как корпорации наступают на общественное пространство и переделывают под себя культуру. Это интересно для русского читателя потому, что мы только сейчас начинаем задумываться, как меняют нашу жизнь рекламные щиты, закрывшие собой исторический центр Москвы и других городов с не менее почтенным прошлым. По-настоящему меня задела глава «Без работы», в которой Наоми Кляйн рассказывает про рабский труд азиатских рабочих во имя процветания глобальных корпораций. Признаться честно, за пределами стран, ставших центрами глобального производства, эти проблемы мало кого беспокоят. Другое дело, что процесс переноса производства из развитых стран в отсталые регионы сказывается на рынке труда благополучных государств. В частности, Наоми Кляйн говорит о том, что львиную долю рабочих мест в Северной Америке и Европе сегодня создают предприятия сервиса и торговли (в России происходит то же самое). Не желая обременять себя обязательствами по отношению к сотрудникам, многочисленные розничные сети и фаст-фуды позиционируют себя на рынке труда как «работа для студентов». Таким образом, временные работники, не имея достаточной квалификации, не получают никаких гарантий, их труд оплачивается по самым низким ставкам, отпуск, медицинский полис и больничные оказываются для них недоступными. Даже индустрии, где, казалось бы, требуется высокая квалификация, например, производство программного обеспечения, научились снижать своих расходы на персонал, приглашая к себе студентов на время практики. В этом случае компании либо вовсе ничего не платят за работу, либо платят совсем мало, понимая, что для студентов можно не баловать.

Возмущение Наоми Кляйн понятно - про жестокую эксплуатацию труда подростков бесчеловечными капиталистами слышали все, кто хоть чуть-чуть застал Советский Союз. И, замечу, молодежь на Западе действительно вкалывает. Родители нынешних американских и европейских студентов - пенсионеры, не имеющие возможности содержать детей и платить за их образование. Поэтому после лекций молодые девушки и парни идут в рестораны, но не развлекаться, а работать на кухне и в залах. Но так ли плохо, что подростки выходят на работу - пусть временную и низко оплачиваемую?

Я начала работать в 15 лет. Молодежная редакция государственной теле- радио- вещательной компании приняла меня в свои ряды на условиях, которые не принял бы ни один взрослый журналист. Мы с подругой получали гонорар, которого не хватало на проезд до студии. У нас не было никаких социальных гарантий. Но мы ездили и делали передачи, потому что, во-первых, нам было интересно, во-вторых, мы учились работать. Сейчас я прекрасно осознаю, что в своем щенячьем возрасте я скорее создавала дополнительные трудности редактору, чем приносила пользу. Когда я поступила в университет, я бросила это занятие, поскольку мое самосознание стало больше получаемого гонорара. Эксплуатировали ли меня на моей первой работе? Отчасти, да. Полезен ли был этот опыт для меня? Безусловно. Он, без преувеличения, определил всю мою будущую жизнь.

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

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

За пару лет, что я проработала в этой компании, я овладела компьютерной грамотностью на уровне «нормальный пользователь», прониклась духом корпоративной преданности (и долго потом из себя этот дух вытравливала), и окунулась в атмосферу офисных интриг и интрижек (тоже опыт!). К тому же, в моей трудовой книжке появилась первая запись. Я оставила эту работу, когда мой отпуск, взятый на время государственных экзаменов и защиты диплома, остался неоплаченным. Диплом волшебным образом повлиял на мои амбиции, и я с легком сердцем отправилась на поиски более комфортного места.

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

Нашел первый приличный нетбук на ARM с вменяемой ценой — Заметки на breys.ru

Совершенно случайно (в поисках замены своей eeeпечке ) наткнулся на столь замечательный девайс, что потерял сон и аппетит. Вот что входит в комплект

  • 9.4″ x 7″ x 1.4″ for 2 lbs (with keyboard)
  • ARM Texas Instruments OMAP3 chip
  • 1024×600 8.9” screen
  • Storage: 8GB micro SD card
  • Wifi 802.11b/g/n and Bluetooth
  • 3-dimensional accelerometer
  • Speakers, micro and headphone
  • 6 USB 2.0 (3 internal, 2 external, 1 mini)
  • 10h to 15 hours of battery life
  • Able to play HD video 720p in full screen

По мимо этого у него отстёгивается экран, имеется датчик положения в пространстве и виндо на нём ни когда не будет работать. В качестве ОС на выбор из мультизагрузки предлагают Ubuntu, Gentoo, Android. На видео с ним делают просто удивительные (для меня) вещи, например если во время игры повернуть его в пространстве то пространство в игре тоже изменится. Мой сын от такой игры, вернее способа играть, будет в восторге

<object data="http://www.youtube.com/v/9no-7ZZXBhk&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" height="344" type="application/x-shockwave-flash" width="425"> <param name="allowFullScreen" value="true"/> <param name="allowScriptAccess" value="always"/> <param name="src" value="http://www.youtube.com/v/9no-7ZZXBhk&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"/> <param name="allowfullscreen" value="true"/> </object>

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

При всех этих замечательных качествах устройство продаётся по вполне вменяемой, даже для меня - закореннелого бурятского сиадмина, цене 399$ и плюс 45$ для бурятов

Одна беда, в бурятию их нельзя заказать

Кстати вот пруфлинк на сайт производителя этого TOUCH BOOK, а ещё на freenode.org есть irc канал #touchbook

ps: не ужели дожили и скоро будем подкармливать хороших людей, а не неосиляторов Win7

pss: правда я так и не осилил, как называется этот touchbook

faces/muhas.png

ArchLinux: kernel-netbook — muhas — Заметки аскетичного гика

ArchLinux LogoОказывается уже достаточно долгое время на AURе имеется kernel-netbook для нетбуков Asus eeepc, Acer Aspire one, MSI Wind, Samsung серии N и Dell mini.

В этом ядре уже включены модули/firmware для используемых на этих девайсах wifi и ethernet карточек (Wireless: ath5k, ath9k, rt2860, rtl8187se, broadcom-wl; Ethernet: atl1c, atl1e, r8169) а так же вебкамер (stk11xx).

Так же из особенностей данного ядра можно заметить отсутсвие initrd, статические модули, дополнительные firmware, такой же как и в большом брате kms, BFS of Kolivas, патчи применяемые в ядре ArchLinux и весит всё это добро около 5Мб (10Мб в установленном виде).

Но к сожалению судя по итальянскому (Почему итальянскому? Потому что сборка от них!) арчефоруму есть проблема
1) на HP Compaq Mini 700EL отсутствует звук даже если модуль sdn-hda-intel загружен
2) ошибка монтирования корня при использовании grub2 если он ext4 "EXT3-fs: sda1: couldn’t mount because of unsupported optional features (240)" — нужно указать тип фс в параметрах ядра (rootfstype=ext4)

В общем итальянские арчеводы постарались для арча на славу.

Подробности на итальянском арчефорумме, AURе (владельцам Samsung NC10 рекомендую посмотреть комментарии), и на гуглокоде

График выхода Ubuntu — Ubuntu days

Как ни странно многие мои знакомые несмотря на использование Ubuntu (в той или иной мере и тех или иных её разновидностей) не имеют ни малейшего представления о казалось бы очевидных вещах, как то, что 10.04 -- это например 2010 год и 4-й месяц или, что названия версий начинаются с одной буквы (Jaunty Jackalope, Karmic Koala) которые идут по алфавиту. Именно для таких «незнаек» :) появилось видимо нижележащее видео, которое коротенько и рассказывает в наглядной форме о графике выхода Ubuntu:

<object height="384" width="640"><param name="movie" value="http://www.youtube.com/v/ruQoqp0wVII&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;ap=%2526fmt%3D18"/><param name="allowFullScreen" value="true"/><embed allowfullscreen="true" height="384" src="http://www.youtube.com/v/ruQoqp0wVII&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;ap=%2526fmt%3D18" type="application/x-shockwave-flash" width="640" wmode="transparent"></embed><param name="wmode" value="transparent"/></object>

В Intel не смогли справиться с Windows7 — Заметки на breys.ru

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

Но вот пришло время отказываться от XP и переходить на новую винду  но в Intel поняли, что это совсем не их, что они не дождались обещанной кнопки сделайть всё "хорошо" и передними большой и колючий кактус

Я просто не могу удержаться и процитирую весь текст

Intel столкнулась с трудностями при переходе на Windows 7

Подстава

Инженер Intel Роб Абри сообщил, что в компании столкнулись с непредвиденными проблемами при переходе с Windows XP на Windows 7.

В частности, возникли сложности с обратной совместимостью приложений, запуском на Windows 7 приложений XP, поддержкой браузеров, 64-битными системами и управлением конфиденциальных данных. "Это значит, что для подготовки к переводу приложений на Windows 7 нужно еще много поработать", - написал в своем блоге Абри.

В прошлом году в Intel объявили о переводе своего компьютерного парка с Windows XP сразу на 7, минуя Vista. Этот переход и был начат недавно, но результат его, как видно, стал для специалистов Intel неожиданностью.

Одной из проблем стало отсутствие в Windows 7 поддержки 16-битных приложений, которых в Intel немало. "Первоначально казалось, что это не проблема, поскольку 32-битные приложения используются уже много лет, а большинство приложений портированы для 32 бит, - объясняет Абри. - Компании, которые хотят перейти на Windows 7, должны конвертировать 16-битные программы в 32- либо 64-битные".

Другой проблемой стала обработка в Windows 7 уже собственно 32-битных программ. В этой ОС 64-битные и 32-битные программы сохраняются в двух разных директориях: первые - в Program Files, вторые - в Program Files (x86). Из-за этого возникает ряд проблем, связанных с поиском некоторых приложений. Однако, пишет инженер Intel, переход на 64-битную платформу абсолютно необходим даже несмотря на возникающие при этом трудности. Он позволяет лучше задействовать ресурсы памяти в мощных современных конфигурациях, что немаловажно для поддержания конкурентоспособности.

Что касается браузера Internet Explorer, в Intel решили повременить с переходом на 7 и 8 версии, поскольку они несовместимы с некоторыми дополнениями и приложениями, написанными для IE 6. Многие приложения, например дополнения Office и Java, ориентированы именно на шестую версию браузера, и без решения этой проблемы переход на более новые версии не представляется возможным.

В Intel также столкнулись с трудностями, связанными с новой системой защиты конфиденциальных данных Windows 7. В этой ОС использована новая система UAC (User Access Control), которая перед запускам программ запрашивает разрешение пользователя. Однако, по словам Абри, некоторые программы не запрашивают разрешения и просто не запускаются, оставляя пользователя гадать, почему программа не работает. Пока в Microsoft предлагают только одно решение этой проблемы - запускать программу в режиме администратора.

Учитывая упомянутые трудности, в Intel решили переходить на Windows 7 поступательно, используя "страховочную сетку". Для этого приложения XP запускаются либо в виртуальных средах, либо в режиме совместимости, позволяющем запускать приложения XP в Windows 7.

Примечательно, что в свое время Intel активно помогала Microsoft в создании Windows 7.

Тут как говорится без комментариев, кроме интереса а в самой Microsoft пользуются своими новыми виндами или покупают у новеля Linuxы?

Samba и опция copy — Hrafntoftir

Нашел, на мой взгляд, интересную возможность в конфиге Самбы. Оригинал тут. Одной из директив, доступных в smb.conf, является опция copy. Которая обеспечивает возможность клонирования записей и аттрибутов общих ресурсов Samba. Используя эту директиву, можно создать шаблон службы со всеми необходимыми опциями вместо указания одних и тех же опций для каждой отдельной расшарки. Чтобы было проще, можно взглянуть [...]

Samba+LDAP: slapd: — Hrafntoftir

Поскольку мне по работе периодически приходится сталкиваться со связкой Samba+LDAP, то решил поместить сюда решение проблемы, вынесеной в название поста. А проблема, если чуть потише взглянуть. такова. В логах slapd появляются следующие ошибки: Feb 25 20:23:53 dc02 slapd[5677]: <= bdb_equality_candidates: (gidNumber) not indexed Feb 25 20:23:53 dc02 slapd[5677]: <= bdb_equality_candidates: (sambaSID) not indexed Feb 25 20:23:53 dc02 [...]

Проверим себя? — Блог FlyCat.Info: КОТорый летает... » for-runix

Достопочтеннейшая Linux-публика! В качестве пятничного развлечения предлагаю вашему вниманию список вопросов, который предлагается в «РИА Новости» при собеседовании на должность Linux-администратора. Можете читать с улыбкой, можете — всерьёз. Формулировка некоторых вопросов —  заведомо провокационна, не стоит этим заморачиваться. Этот полушуточный несложный тестик для всех, кто хочет проверить себя на знание Linux-систем, сетей и умение работать с production.(...)
Read the rest of Проверим себя? (216 words)


© flycat for Блог FlyCat.Info: КОТорый летает..., 2010. | Permalink | 11 comments | Add to del.icio.us
Post tags: , , , , , , , ,

Feed enhanced by Better Feed from Ozh

faces/muhas.png

Clementine: любителям amarok 1.4 посвещается — muhas — Заметки аскетичного гика

Clementine playerСлучайно наткнулся на проект clementine-player использующий xine-lib в качестве движка проигрывания музыкальных композиций и что самое главное продолжает славные традиции amarok первой ветки.
Вообще как сказано на сайте «Clementine is a port of Amarok 1.4, with some features rewritten to take advantage of Qt4.» т.е. порт амарока первой ветки на qt4. Заодно и от kdelibs отвязали и получили кросплатформенность (заявлено linux, mac os x, windows и до кучи нативные уведомления libnotify на Linux и Growl на Mac OS X)
Из заявленного ещё поддержка Last.fm и SomaFM, а так же редактирование тегов MP3 и OGG.
Вообще плеер ещё достаточно молод (текущая версия 0.1) и мало функционален (на офсайте приличный список ещё не реализованного - хотя в svn часть уже доделана), но корни амарока дают о себе знать.

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

PPS. qt приложения, даже с темой gtk, в среде где почти всё на gtk смотриться немного инородно

Yum. Установка и обновление пакетов из собственного репозитория — Hrafntoftir

Оригинал заметки на Red Hat Knowledgebase. Решение Чтобы использовать yum для установки или обновления пакетов из файла ISO, необходимо будет создать свой собственный репозиторий. Сделать это можно двумя способами: Способ 1. 1. Необходимо создать директорию, в которой и будет хранится репозиторий: # mkdir -p /usr/share/repository 2. Для создания репозитория скопируйте в этот каталог все пакеты RPM, которые необходимо использовать: # cd /usr/share/repository # [...]

мсье знает толк в извращениях — Kir Kolyshkin

Запускаю на ARM хосте qemu-i386, а в ней Линукс. Правда, оно всё равно не работает.

Занимательное JavaScript программирование — Debiania: просто ещё один блог о Debian

Привет!

Недавно мой сосед показал мне главную страничку ВКонтакта со счётчиком идиотовзарегистрированных пользователей и обратил внимание на то, что инет отключен, а счётчик работает дальше. Ясен пень, что реализовано сиё счастье с помощью JavaScript, потому и работает в оффлайне. Сосед получил разъяснения и успокоился, а у меня зачесались руки — стало интересно, как же работают такие счётчики.

Я взял код
главной ВКонтакта, а также login-страницы GMail, на которой присутствует счётчик предоставляемого пользователям места, и проанализировал используемый там код. Если вам всё ещё интересен весь этот бред — читайте дальше :)

Начнём с гугла.
Код:
// Estimates of nanite storage generation over time.
var CP = [
 [ 1199433600000, 6283 ],
 [ 1224486000000, 7254 ],
 [ 2144908800000, 10996 ],
 [ 2147328000000, 43008 ],
 [ 46893711600000, Number.MAX_VALUE ]
];


function updateQuota() {
  if (!quota_elem) {
  return;
  }
  var now = (new Date()).getTime();
  var i;
  for (i = 0; i < CP.length; i++) {
    if (now < CP[i][0]{
      break;
    }
  }
  if (i == 0) {
    setTimeout(updateQuota, 1000);
  } else if (i == CP.length) {
    quota_elem.innerHTML = CP[i - 1][1];
  } else {
    var ts = CP[i - 1][0];
    var bs = CP[i - 1][1];
    quota_elem.innerHTML = format(((now-ts) / (CP[i][0]-ts) * (CP[i][1]-bs)) + bs);
    setTimeout(updateQuota, 1000);
  } 
}
Теперь пошагово разберём процесс получения надписи вроде “Over 2757.272164 megabytes (and counting) of free storage”.

Итак, часть первая — массив CP. Комментарий любезно подсказывает, что в массиве этом содержится ничто иное, как прикидки на количество места, которое Гугл будет предоставлять в определённый момент времени. Дальше идёт несколько пар значений вида «таймштамп UNIX (в миллисекундах)»—«мегабайты».

Часть вторая — собственно функция, которая обновляет элемент с мегабайтами. Вот код, но уже с моими комментариями:
function updateQuota() {
  // существует ли элемент, в который надо выводить мегабайты?
  if (!quota_elem) {
  // элемента нет — закругляемся
  return;
  }

  // получаем текущее время в виде UNIX timestamp в миллисекундах
  var now = (new Date()).getTime();

  // объявляем переменную для цикла
  var i;

  // перебираем все записи в CP
  for (i = 0; i < CP.length; i++) {
    // если текущий таймштамп меньше того, что в массиве — прерываем цикл
    if (now < CP[i][0]{
      break;
    }
  }


  if (i == 0) {
    // если таймштамп, на котором прервались — первый в массиве, то…
    // вызвать данную функцию снова через секунду
    setTimeout(updateQuota, 1000);
    // по-русски это звучит как «ждать наступления февраля 2008-го года»
  } else if (i == CP.length) {
    // если вышеприведённое условие не сработало и
    // если все таймштампы в массиве меньше текущего времени, то
    // записать количество мегабайт из последней записи в массиве
    quota_elem.innerHTML = CP[i - 1][1];
    // это на случай, если код долго не будут апдейтить — тогда в качестве мегабайт будет принято
    // самое большое число, допустимое в JavaScript — это около 1.7976931348623157e+308
  } else {
    // если ни одно из вышеприведённых условий не сработало, то
    // переменной ts присвоить таймштамп последней записи,
    // а переменной bs — кол-во мегабайт, соответствующих этому таймштампу
    var ts = CP[i - 1][0];
    var bs = CP[i - 1][1];
    // обновить запись с помощью нехитрой математики:
    // now-ts — разность между текущим временем и используемым таймштампом
    // CP[i][0]-ts — это разность во времени между текущим и следующим таймштампами
    // CP[i][1]-bs — разность в мегабайтах между текущим и следующим таймштампами
    // ((now-ts) / (CP[i][0]-ts) * (CP[i][1]-bs)) — сколько дополнительного места начал
    //     давать Гугл относительно текущего таймштампа
    // +bs — относительную величину (прирост мегабайт) превращаем в абсолютную (сколько же
    //     мегабайт выдают теперь)
    quota_elem.innerHTML = format(((now-ts) / (CP[i][0]-ts) * (CP[i][1]-bs)) + bs);
    // выставляем таймер — через секунду опять обновить значение
    setTimeout(updateQuota, 1000);
  } 
}


Так-то. Теперь перейдём к ВКонтакту. Программисты Дурова, очевидно, очень любят математику, в особенности статистику и генерацию случайных чисел. Вот их код:
var memCount = 63301534;
var memPerSec = 2.16273601705;
function updateCount() {
 next = -(1000 / memPerSec)*Math.log(Math.random());
 memCountString = '' + memCount;
 len = memCountString.length;
 memCountString = memCountString.substr(0,len-6)+'<span style="font-size:8px"> </span>'+memCountString.substr(len-6,3)+'<span style="font-size:8px"> </span>'+memCountString.substr(len-3,3);
 ge('memCount').innerHTML = memCountString;
 memCount = memCount + 1;
 setTimeout(updateCount, next);
}
Как видите, всё очень лаконично: сейчас насчитывается memCount пиплов, каждую секунду к ним присоединяется ещё memPerSec тел. Вот только незадача: каждую секунду добавлять по чуть более чем два человека некрасиво. Лучше уж почаще, но по одному целому. Т.к. люди несовершенны, они не регистрируются каждые, скажем, 500 милисекунд — это тоже надо учесть. Короче, пришлось им придумать специальную формулу, которую я подробно рассматриваю в коде ниже:
// текущее количество пользователей Вконтакта
var memCount = 63301534;
// примерное количество регистрирующихся в секунду
var memPerSec = 2.16273601705;

// собственно функция, обновляющая счётчик
function updateCount() {
 // хитрая математическая формула, вычисляющая длинну промежутков между
 //     регистрациями
 // 1000 / memPerSec — среднее время между регистрациями
 // random возвращает дробное число от 0 до 1
 // логарифм используется для того, чтобы хотя бы иногда получать время
 //    _больше_ среднего
 // минус перед формулой компенсирует тот факт, что логарифм числа из
 //    диапазона 0..1 отрицателен
 next = -(1000 / memPerSec)*Math.log(Math.random());
 // конвертируем число в строку
 memCountString = '' + memCount;
 // вычисляем длинну строки, чтобы потом красиво разбить его на разряды
 len = memCountString.length;
 // собственно разбивка на разряды
 // жду миллиардного пользователя, на котором эта конструкция обломается и выдаст «1000 000 000»
 memCountString = memCountString.substr(0,len-6)+'<span style="font-size:8px"> </span>'+memCountString.substr(len-6,3)+'<span style="font-size:8px"> </span>'+memCountString.substr(len-3,3);
 // выводим данные
 ge('memCount').innerHTML = memCountString;
 // наконец, добавляем к счётчику свежезарегистрировавшегося пользователя
 memCount = memCount + 1;
 // выставляем таймер, чтобы через next миллисекунд обновить счётчик
 setTimeout(updateCount, next);
}


Не знаю, насколько полезно такое вот спонтанное и бессистемное ковыряние в коде, но мне это нравится. Надеюсь, я не один такой, и этот пост будет интересен кому-то ещё ;)

Advanced grep — Юникс и другие

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

Андрей Мавлянов

Новое имя для “старого” linuxforum.ru — Digital Activity » Computing

“Старый” linuxforum.ru возобновил свою работу по новому адресу: unixforum.org (89.104.102.12).

Добро пожаловать!

Символ подчёркивания в DNS-именах — Блог FlyCat.Info: КОТорый летает... » for-runix

dns - domain name systemВышел у нас небольшой спор с коллегами по поводу допустимости использования символа «_» (подчёркивание, underscore) в доменных именах. Сначала мне в руки попала машина со странным hostname suse_trans. Самое интересное, что конфигуратор Yast имена с подчёркиваниями считает недопустимыми и такое назначать отказывается. Как машина получила имя — неизвестно. То есть, известно, но чем руководствовались при его выборе, вот вопрос…(...)
Read the rest of Символ подчёркивания в DNS-именах (451 words)


© flycat for Блог FlyCat.Info: КОТорый летает..., 2010. | Permalink | 5 comments | Add to del.icio.us
Post tags: , , , , ,

Feed enhanced by Better Feed from Ozh

Megafon's faggots detected — Мир Линуксоида

# предыдущая история про другой модем от Мегафона: http://tinman321.blogspot.com/2009/08/huawei-e156g-and-xubuntu-904.html - наверное продам его ^^.

Занимался тут "сексом" с новым халявным модемом от Мегафона - Huawei E1550. О нём и его работе в Linux уже достаточно много написано в интернете, а вот о моей загвозке я нигде не нашел. Задача проста - заставить эту железяку работать, а вот путь к решению оказался долог. Не буду рассказывать чем и сколько я занимался, скажу сразу о результатах. А в результате на устройстве оказался нерабочий скрипт установки (а я то вокруг да около копался). Загвозка крылась в строке:
CURRENT_PATH=`echo $0|sed 's/\install_linux$//'`
после замены на
CURRENT_PATH=`pwd`
всё встало на свои места. Кто-нибудь объясните, зачем нужен был тот бубен?

Остаётся ещё один вопрос: как выпилить/удалить эту гадость? Скрипт прилагается, исходники взяты отсюда:
http://forum.ubuntu-it.org/index.php?topic=296883.msg2312547

#!/bin/bash
PDIR="MegaFon_Internet"
/usr/local/$PDIR/driver/Uninstall
rm -rf /usr/local/$PDIR
rm -rf /root/Desktop/MobilePartner.desktop
rm -rf /usr/share/applications/MobilePartner.desktop
rm -rf /usr/share/applications/UninstallMobilePartner.desktop
if [ -f "/etc/datacard_config" ]
then
rm -rf /etc/datacard_config
fi

Запускать от root.
Ну и напоследок снимок программы:


Post Scriptum: надеюсь ни у кого вопросов не возникает, зачем надо ставить программу от Мегафона.


Boxee: полным-полна моя коробочка — ♠ Крапленая колода

Boxee social media center.
Так лаконично описан установочный пакет. Да, первым делом стоит выделить социальную направленность продукта. Вы можете следить за друзьями, которые отмечают понравившиеся выпуски шоу/фильмов/etc и сами делать аналогичные трюки (доступен экспорт записей в twitter, facebook, friendfeed). Некоторым не понравится обязательная регистрация в сервисе, но, по-моему, разработчики не зря ввели этот шаг. У Boxee теперь огромное и, что немаловажно, координированное сообщество пользователей. Кроме того, в будущем ожидается boxee в некое подобие iTunes. Небольшая выдержка из блога на эту тему:
Пользователи хотят видеть больше контента в Boxee. Правообладатели же стремятся получить плату за то, что они производят (ТВ-шоу, музыка или приложения). Мы не считаем эти интересы конфликтными.
Вот почему планируется выпуск платежной системы будущим летом. Пользователи смогут делать покупки одним нажатием кнопки на пульте ДУ. Наши партнёры предложат фильмы и каналы, которые доселе не были доступны пользователям Boxee. Владельцы контента смогут устанавливать цену по собственному усмотрению, в том числе с оплатой за просмотр и подписку. Они будут решать, что сделать доступным, будь то премиум-контент, существующие записи в их библиотеке или дополнительные услуги, которые никогда не были доступны "по воздуху".

На днях разработчики отрапортовали о выпуске очередной бета-версии. Помимо тонны исправлений была озвучена интересная статистика. С момента выпуска бета релиза:
  • 150,000 новых пользователей
  • Приложения Boxee были запущены 3 миллиона раз
  • Просмотрено 1.5 миллиона фильмов, сериалов и шоу

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

Интерфейс с времён альфа релизов претерпел многочисленные изменения. Сходу даже не определить родословную в лице XBMC. Внешний вид переработан с учётом накопленного опыта. Изменения, на мой вкус, пошли на пользу - запутаться крайне сложно. Иконки говорят сами за себя.
В отличие от папаши XBMC, Boxee не поддерживает смену скинов. Для меня это не явилось каким-либо промахом: и тут, и там "умолчальные" шкурки смотрятся недурственно.
Вернёмся к первому экрану. Настоятельно рекомендую ознакомиться с первым роликом в очереди (QUEUE) "Get Started". Там отлично показано и рассказано, что такое boxee и как с ним управиться.

Интересной находкой стало контекстное меню с тремя рядами элементов. Быстро привыкаешь, действительно удобно реализовано.
Когда я полез в настройки калибровать экран, приятно удивился набором готовых соотношений сторон. Здесь уже напрягать извилины для перевода в десятичную дробь не понадобилось. Позже ринулся было цеплять музыкальную коллекцию по DAAP, но такой возможности не оказалось. Видимо, не все наработки XBMC попадают в форк. Ну да ладно, не за этим сюда пришли.
Насладиться прелестями разнообразных приложений не позволила ширина канала. Управление видеоплеером мало отличается от такового в XBMC, братья-близнецы, одним словом.
Тяжело писать о подобных программах, лучше самому увидеть и попробовать. Хотел тут сочинить выводы и подвести итоги, но боюсь, что ничего путного не выйдет. Поэтому напоследок приведу картинку :-)

Django в неблокирующем стиле, или в погоне за Священным Граалем — Deepwalker

Было опубликовано на Хабре.
image

Присказка

При чтении о Twisted, Tornado, Node.js, у многих python-программистов возникает вопрос - "а вот если взять, и переписать Django в неблокирующем стиле?". Обычный ответ на этот вопрос - нет, не дождетесь. И правда, чтобы переписать целый фреймворк в макаронно-колбечном стиле, надо очень много сил, и большой заряд энтузиазма. Писать с колбеками, очень сомнительное удовольствие.

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

<habracut></habracut>

Суть

А на самом деле все не так страшно, следите за руками - мы создаем WSGI ресурс в Twisted, начинаем слушать HTTP-запросы; каждый запрос мы отдаем в WSGI-обработчик Django, оборачивая его в гринлет; любые запросы, которые можно преобразовать в неблокирующие, передаем Twisted, который пнет наш гринлет в момент готовности данных; готово!

image

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

С давних пор в Twisted есть такой - PGAsync. У него есть серьезные проблемы, он давно заброшен, но кто нам мешает подхватить упавшее знамя? Я сделал такую попытку, на данный момент драйвер работает стабильнее оригинала, но работа еще не закончена. Тем не менее, асинхронную БД для Django мы получить можем, и это будет Postgresql (ох, простите, пользователи Mysql, но кто вам мешает написать свой?). Драйвер используется в текущем проекте, разрабатываемом Imarto Networks http://imarto.net, и было решено выложить его для свободного использования. Я выложил его раньше готовности, только для демонстрации асинхронного Django, будьте снисходительны.

Чтобы использовать его в Django, нам надо написать свой БД-бэкенд. Я наворотил что-то из бэкенда для psycopg2, обернув обращения к драйверу БД в функции передачи управления главному гринлету, то есть основному потоку программы. Стандартный wsgi-ресурс из twisted.web пришлось тоже немного переделать, ведь он теперь должен кидать запросы на обработку не в пул потоков, а в гринлеты.

Как пощупать

Исходники можно получить тут, там же тестовый django-проект - http://bitbucket.org/deepwalker/tx_green/
Исходники драйвера к БД - http://bitbucket.org/deepwalker/tx-postgresql/

Для использования надо разместить pgasync, green_wsgi.py, tx_green.py, tx_postgresql в место, где интерпретатор сможет их найти. Затем в каталоге test_green_dj настраиваем параметры подключения к БД, ./manage.py syncdb, twistd -n - y server.py. Все, по адресу http://127.0.0.1:8001 встречаем наш тестовый проект.

Про тесты

Тесты, которые я проводил, относились в основном к проверке работы, прироста производительности я не измерял. Если кто-то потратит свое время на это доброе дело, буду благодарен, если поделитесь результатами.

UDEV и USB-наушники — Журнал Витуса.

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

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

Запустил udevadm monitor на вставление этих наушников и увидел что их втыкание генерирует семнадцать событий add, а выдергивание - соответственное количество remove. Авторы udev офигели. Куда столько много? И за какое из них цепляться.

Использование asoundconf из udev-правил мне кажется сомнительной идеей. man-страница на эту фиговину начинается со слов asoundconf configures the ALSA library for the user..

А мне не надо for the user. Мне надо чтобы для всех юзеров, которым взберет в голову залогиниться на эту машину пока это устройство воткнуто, оно было умолчательным. Ключика для работы с системным /etc/asound.conf у asoundconf почему-то не предусмотрено.

НУ у альсы это хозяйство хоть как-то документировано. У pulse все еще хуже.

Красивые обои для рабочего стола на космическую тему — Linux & Life

Красивые обои для рабочего стола на космическую тему.

uh-oh — Kir Kolyshkin

root@ubuntu:~# date
Sun Mar 2 12:55:59 UTC 1958
(number of comments Comments |Comment on this)

О ситуации с LinuxForum.ru — Linux & Life

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

Открытый GSM-телефон — Журнал Витуса.

Такие устройства, как Nokia N900 и даже Neo FreeRunner не являютя настоящими OpenSource реализациями GSM-терминала. Там внутри неонка некий черный ящик внутри которого крутится проприетарный софт, а наружу, в open-source операционку торчит что-то вроде GSM-модема. И то Nokia норовит DRM прикрутить.

Лично у меня было крайне пессимистичное отношение к перспективам опенсурсного GSM-терминала, поскольку повадки сотовых операторов во всем мире сводятся к "что мое, то мое, а что ты купил, то все равно мое".

Однако вот люди занялись
разработкой OpenSource GSM стэка. Что характерно, предыдущие 15 месяцев те же люди работали над open source базовой станцией.
Андрей Мавлянов

О ситуации с LinuxForum.ru — Digital Activity » Computing

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

Так как в последнее время он был лишён доступа собственно к администрированию форума, то ничего кроме как увести домен linuxforum.ru, который зарегистрирован на него, он не мог.

В данный момент форум доступен по адресу http://linuxforum.etersoft.ru/. Новый домен будет зарегистрирован в ближайшее время и о нём будет сообщено на форуме.

Я прошу всех кто это прочёл написать в своём блоге такой же пост. Это очень важно – так как пользователи linuxforum.ru будут смущены отсутвием привычного форума на месте.

p.s. вот запись в блоге администратора бывшего уже linuxforum.ru sash-kan: http://sash-kan.blogspot.com/2010/02/linuxforumru-linuxforummezonru.html

p.p.s. Вот такой невесёлый повод вспомнить что у меня есть свой блог.

Установка Routertech на ADSL модемы Acorp/StarNet — IT_blog's - блог о IT технологиях » linux


Вступление

Сегодня мы займёмся очередной модернизацией строго оборудования.

Я являюсь счастливым обладателем ADSL модема Star-Net ADSL2110EHR V7.20M+, который является творением китайских мастеров и в следствии этого имеет относительно нестабильное ПО.

При тщательном изучении разнообразных форумов мне удалось выяснить что это почти точная аппаратная копия модема Acorp LAN120, только у Star-Net ADSL2110EHR V7.20M+ отсутствует USB порт.

Поэтому нам не составит труда перешить своего нестабильного китайца в  благородный Acorp LAN120

В конце концов мы ведь хотим качественного и стабильного интернета ?

Если Ваш ответ – ДА, то нужно прошиваться.

Параноиков предупрежу сразу: Прошивая свой модем сторонней прошивкой Вы потеряете гарантию.

Сам метод на 99% безопасен (1% это на случай форс-мажорных обстоятельств)

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

Итак приступим



Для начала нам потребуется скачать саму прошивку, она находиться ТУТ

Ваши действия:
1. Распакуйте архив
2. Очистите кэш Вашего Интернет-браузера перед началом обновления.
(Для Internet Explorer: –> меню Сервис -> Своства обозревателя -> Общие -> Удалить файлы)

3. Войдите в панель управления модема (через браузер 192.168.1.1), выберите меню Tools-Update Gateway

4. В поле выбора файла для обновления выберите распакованный файл ПО с расширением .img

5. Нажмите кнопку Update. Начнется процесс обновления ПО, который занимает 5-7 минут.
ВНИМАНИЕ: НЕ ПРЕРЫВАЙТЕ ПРОЦЕСС ОБНОВЛЕНИЯ ПО.

6. Еще раз очистите кэш Вашего Интернет-браузера перед началом обновления.
(Для Internet Explorer: меню Сервис -> Своства обозревателя -> Общие -> Удалить файлы)

7. После окончания обновления перезагрузите модем. Для этого на включенном модеме нажмите и удерживайте кнопку RESET в течение 15 секунд, либо выполните команду Tools-System commands-Restore defaults в меню модема.

8. После обновления модем будет иметь адрес 192.168.1.1/255.255.255.0
Имя пользователя и пароль для доступа Admin:Admin
Также следует заметить, что собьётся индикация на модеме, но бояться не стоит – это нормально.

Оригинал

Конечно, на этом в принципе можно было бы и остановиться, но к сожалению прошивка от Acorp перестала развиваться.

К счастью есть проект routertech который ведёт разработку альтернативной прошивки на базе Linux для разнообразных устройств, в перечень которых входит и Acorp LAN120

Но для логического начала рассмотрим восстановление убитых модемов StarNet/Acorp в следствии неправильной перепрошивки или сбое питания.

Восстановление прошивки

В этом нам поможет программа adsl recover pack

Новая утилита для автоматического восстановления модемов Acorp 120/120M/122/420/420M/422/w400g/w422g через adam2.

Также утилиту можно использовать для смены MAC через телнет.

Она Вам поможет если:

1) Нужно поменять MAC адреса модема и DSL линии
2) Модем был убит неправильной перепрошивкой

Скачать можно ТУТ:
http://narod.ru/disk/7616788000/adsl_recover_pack.rar.html
http://www.mediafire.com/?gmm0mt44ljc

Методика восстановления:

1. Для модема StarNet качаем прошивку от Acorp (ОНА ТУТ)
Режим Annex по потребностям.
Для остальных моделей прошивку берём на официальном сайте Acorp

2. Распаковываем архив с программой
3. Переименовываем прошивку для Acorp LAN120 (StarNET) в 120.img и ложим в папку data
Для других моделей имена прошивки можно посмотреть в файле readme.txt

4. Ставим IP сетевухи 192.168.1.2
5. Запускаем recover.exe и выбираем пункт ADAM2 Full Recover
6. Выбираем модель модема (Для StarNet ставим Acorp LAN120)
7. Жмём кнопку Recover и смотрим окно с логом
8. Через 5-10 сек там будет написано, что нужно перезагрузить модем.
9. Дёргаем шнур питания модема и ждём, программа автоматически начнёт восстановление (побежит индикатор)
10. После модем сам перезагрузится и можно радоваться, всё восстановилось

Смена MAC адреса:

1. Выбираем пункт Telnet MAC Update
2. Вбиваем нужный MAC адрес
3. Выбираем модель модема
4. Жмём кнопку Recover

После того, как мы уже умеем восстанавливать модем после сбоев, можно переходить к установке прошивки от routertech

Установка ПО от routertech

Для начала идём на сайт http://www.routertech.org и проходим процедуру регистрации, для доступа к файлам.

Первое что нам потребуется – Это проверить свой модем на возможность перепрошивки и заодно подготовить BackUP

Делается это с помощью утилиты Router Upgrade Check от Routertech

1. Скачиваем архив с программой и распаковываем его
2. Запускаем ruc.exe
3. Вводим IP адрес модема, указываем: telnet username: root и telnet password: Admin
4. Выбираем модель модема Acorp LAN120
5. Жмём кнопку Check My Router
После чего появиться примерно следующий рапорт:

Router Upgrade Check 1.3.7 20.02.2010 20:54:46
Router IP: 192.168.1.1
Description: Acorp LAN120
Board type: AR7RD
Product ID: Sprinter@ADSL-LAN120
Bootloader: pspboot
RAM 8,0 MB
Flash (ROM) 2,0 MB
ADAM2: No
No default env: No
Linux version: 2.4.17_mvl21-malta-mips_fp_le
Firmware build: RouterTech_3.6.0D_20100105_2.92
Firmware version: 3.6.0D-RouterTech-1P-PSBL
Firmware stamp: 20100105145325
CPU: MIPS 4KEc V4.8
DSP: 7.05.01.00
Annex: A
/proc/wlan: No
/usr/sbin/wlan: No
TIAP: No
TNETW: No
Wireless: No
WIFI chip: N/A
WIFI chip conf: No
Ports: 1
Marvell (or Marvell like): No
NSP: 3.6.0D
Manufacturers: Fujian Star Terminal
RNDIS: Fujian Star Terminal
HRNDIS: Fujian Star Terminal
Select an AR7RD PSPBOOT 1 PORT firmware.
Latest: routertech-ar7rd-pspboot-1port-firmware-20100105.zip
Please read the instructions that come with the firmware files before you upgrade.
According to your current MTD values, you should be able to upgrade using a single firmware image

Тут нас особо интересует эта строка: Latest: routertech-ar7rd-pspboot-1port-firmware-20100105.zip
Оно говорит о том, что наш модем поддерживается для прошивки и последняя версия ПО routertech-ar7rd-pspboot-1port-firmware-20100105.zip
Поэтому идём в раздел «Downloads» и качаем эту версию прошивки.

Теперь наступает самое интересное: Как прошить эту прошивку в модем ?
1. Распаковываем архив с прошивкой
2. Из всех фалов нам понадобиться лишь файл RouterTech_3.6.0D_20100105_2.92_AR7RD-1Port_psbl_firmware.upgrade.img потому что Flash памяти в модеме 2Мб (В рапорте сказано Flash (ROM) 2,0 MB)

3. Теперь возвращаемся к пункту Восстановление прошивки и прошиваем её этим методом, т.е переименовываем RouterTech_3.6.0D_20100105_2.92_AR7RD-1Port_psbl_firmware.upgrade.img в 120.img и далее по шагам инструкции.

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

Скриншоты прошивки Routertech можно посмотреть ТУТ

Рубрика:linux, router Tagged: настройка, обновление, переделываем, file, flash, linux, файлы

linuxforum.ru недоступен по старому адресу — Debiania: просто ещё один блог о Debian

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

Временное решение — добавить в /etc/hosts следующую строку:
89.104.102.12 linuxforum.ru
faces/muhas.png

Беда с линуксфорумом (Переехал на unixforum.org) — muhas — Заметки аскетичного гика

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

Так исторически сложилось что владелец доменного имени linuxforum.ru и текущая администрация linuxforum.ru - это два разных объекта. Доменное имя принадлежит человеку известному на linuxforum.ru под ником Sonic, он когда-то создал этот форум. В данный момент он просто является владельцем доменного имени, за что получает некоторую сумму от рекламы, управляет форумом, и технически и морально другая команда. Почему-то Sonic'а переклинило и получилось то что получилось. Подробностей мы не знаем.

Для того чтобы попасть на тот linuxforum который мы все знаем и любим, необходимо в (Linux, OS X) /etc/hosts или (Windows): C:\WINDOWS\system32\drivers\etc\hosts прописать:

89.104.102.12 linuxforum.ru

Чуть позже форум будет доступен по новому адресу: linuxforum.etersoft.ru (временное решение, потом будет другой домен - как будет обновлю пост)

Официальная jabber-конференция linuxforum: linuxforum@conference.jabber.ru
Следите за апдейтами в блоге администратора linuxforum: sash-kan.blogspot.com

UP переехали на unixforum.org

linuxforum.ru переезжает — the other side

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

Так исторически сложилось что владелец доменного имени linuxforum.ru и текущая администрация linuxforum.ru - это два разных объекта. Доменное имя принадлежит человеку известному на linuxforum.ru под ником Sonic, он когда-то создал этот форум. В данный момент он просто является владельцем доменного имени, за что получает некоторую сумму от рекламы, управляет форумом, и технически и морально другая команда. Почему-то Sonic'а переклинило и получилось то что получилось. Подробностей мы не знаем.

Сейчас прежний форум доступен по временному адрессу: http://linuxforum.etersoft.ru, никаких дополнительных изменений в /etc/hosts не требуется.

Официальная jabber-конференция linuxforum: linuxforum@conference.jabber.ru

Следите за апдейтами в блоге администратора linuxforum: http://sash-kan.blogspot.com/2010/02/linuxforumru-linuxforummezonru.html


Распространение этой информации приветствуется.

UPD: форум находится по временному адрессу http://linuxforum.etersoft.ru

Технический этаж