понедельник, 10 апреля 2017 г.

Изменения звуковой темы в Debian 8 с gnome3

Всем привет!
Вот помните я до этого описывал добавление собственных звуков в тему оформления?
Ну так пора б вроде и обновить мануал.
  • открываем рутовую консоль;
  • копируем свой ogg файл в /usr/share/sounds/gnome/default/alerts/
  • по примеру редактируем /usr/share/gnome-control-center/sounds/gnome-sounds-default.xml
  • открываем параметры звука и ставим наш.
Профит!

четверг, 2 июля 2015 г.

Решение проблемы с кодировкой в Gedit

Столько времени прошло, а по умолчанию эта проблема так и не была решена. Я понимаю, что нормальные люди используют нормальные операционные системы и редакторы, которые работают с правильными кодировками. А остальных надо было бы наказать как минимум, а лучше убить просто научить. Но мир жесток и приходится подстраиваться под меньшинства.
Когда открываете в редакторе Gedit в Ubuntu или Pluma в Linux Mint текстовые файлы, созданные в блокноте Windows, как правило, увидите, что вместо текста отображаются нечитаемые "крокозябры".

В данной статье расскажу, как легко и быстро решить эту проблему.

Многие встречались с такой проблемой, когда Вы пытаетесь открыть txt файл от пользователяWindows стандартным текстовым редактором Gedit, а вместо вменяемого текста видите вот такие "крокозябры":


Можно конечно во всех этих файлах менять кодировку через консоль с помощью утилиты "iconv".
Но в данной статье хочу предложить более простой способ.

Итак, в чем же кроется проблема?

По умолчанию, в Ubuntu в текстовых файлах, да и вообще в системе, использует кодировку UTF-8. А вмайкрософтовских продуктах используется кривая и устаревшая кодировка Windows 1251(cp1251), когда сохраняете файлы стандартным блокнотом, но помимо её еще есть кодировка koi8-r.
Стандартный текстовый редактор Gedit распознает эти кодировки, только вот не может отличить cp1251 от koi8-r (что на самом деле очень сложно, так как они практически идентичны).
В этом и кроется проблема. 

Решение проблемы с распознаванием кодировки в Gedit для Ubuntu

Чтобы корректно отображались текстовые файлы с кодировкой CP-1251 (Win1251), нам нужно в редакторе Gedit установить приоритет кодировке CP-1251 (Windows1251). 
Для этого выполним в Терминале следующую команду: 
gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8', 'WINDOWS-1251', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
 В случае получения ошибки "Ключ «auto-detected» отсутствует" выполнить следующий вариант команды:
gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['UTF-8', 'WINDOWS-1251', 'KOI8-R', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['UTF-8', 'WINDOWS-1251', 'KOI8-R', 'CURRENT', 'ISO-8859-15', 'UTF-16']"

Теперь пробуем открыть TXT файл снова. 


Теперь мы можем прочитать наш текст.

Решение проблемы с распознаванием кодировки в Pluma для Linux Mint

Аналогично, чтобы корректно отображались текстовые файлы с кодировкой CP-1251 (Win1251), нам нужно для редактора Pluma (форк редактора Gedit) установить приоритет кодировке CP-1251(Windows1251). 
Для этого выполним в Терминале следующую команду: 
gsettings set org.mate.pluma auto-detected-encodings "['UTF-8', 'WINDOWS-1251', 'CURRENT', 'ISO-8859-15', 'UTF-16']"

Вот и всё, теперь текстовые файлы будут отображаться правильно в текстовом редакторе Gedit вUbuntu и Pluma в Linux Mint.

вторник, 3 июня 2014 г.

Настройка печати в Debian и как меня выручил D-Link

Сегодня полдня промучался с настройкой принтера. Надо было распечатать всего пару бумаг, но вот ради них совсем не хотелось ставить драйвер. И в то же время этот принтер, Samsung ML-1860 должен был с успехом работать дома у родителей. Я подумал, что неплохо было бы настроить работу с ним на свежесобранном компьютере, на который несколько дней назад я торжественно водрузил новенький Debian Wheezy 7.5.
Звучит хорошо, но работает намного хуже, чем хотелось бы.
Изначально я просто подключил принтер к компьютеру, понадеявшись на стандартные утилиты. И да, они сработали. Но принтер мигал красным диодом (впрочем, как и сейчас) и ничего не печатал.
Для проверки я удержал сервисную кнопку и он выплюнул свою стандартную бумажку, чем доказал мне свою работоспособность.
Тогда я решил, что дело таки в драйвере и стал читать. Интернеты рассказали мне, что в общем я делал всё правильно, но можно также попробовать установить драйвер, скачав его с сайта производителя.
Сделано.
Однако толку было от этого никакого. Покрутив и повертев, решил написать в поддержку. Там мне посоветовали подключить их репозитории. При этом эта самая поддержка даже не смогла нормально скопировать команды в окно чата. Уж лучше бы ссылку дали. Но, фиг с ними, идиотами.
Когда это не помогло, я спросил: "А тестировали ли этот драйвер на Debian 7.5?" Мне ответили, что не тестировали ни на чём, кроме ubuntu 13.04. С чего они взяли, что это будет работать на всех заявленных у них там дистрибутивах (а это fedora, debian, ubuntu, suse, etc), мне не ясно. Но, как говорится - идиоты.
Пожелав им всего хорошего, пошёл ставить им оценки и писать комментарии и мнение об их работе :-) (Кстати, они даже не удосужились сказать "До свидания" или чего-нибудь подобного.)
Много разного почитав, вспомнил, что у родителей стоит Dir-320, у которого вполне себе есть USB порт, к которому как раз можно подключить принтер. Эврика!
Подключив его, стал искать в сети. Нашёл короткое руководство, которое просто наткнуло меня на нужные мысли. Там совершенно не было сказано по какому адресу мне надо искать сам CUPS. Но всё оказалось просто, как http://127.0.0.1:631/
Там нас, конечно же, попросят залогиниться. Вводим свои админские данные и входим в интерфейс. Без лишних заморочек, строго по шагам, забиваем нужные данные и пользуем принтер всем своим маленьким колхозом :-)
Кстати, меня немало удивило то, что CUPS был создан Apple Inc. Мелочь, а приятно.

среда, 19 марта 2014 г.

Регулирование звука в awesome

Захотелось мне, чтобы звук можно было регулировать не только крутилкой какой-нибудь, которая уже в плеере, или вызывая amixer, но просто понажимав кнопочки, которыми итак всё у меня управляется. И мышь не нужна!
Добавил в rc.lua пару строчек:
    awful.key({ modkey,"Control"  }, "Down",     function () awful.util.spawn_with_shell("amixer -q set Master 5dB- unmute") end),
    awful.key({ modkey,"Control"  }, "Up",     function () awful.util.spawn_with_shell("amixer -q set Master 5dB+ unmute") end),
Теперь всё хорошо и красиво. 90% всех действий выполняются исключительно с клавиатуры и это хорошо.

среда, 19 февраля 2014 г.

Автоматическое выключение linux - машины в определённый день месяца

Встала необходимость сделать так, чтобы в последнюю среду месяца (санитарный день) компьютер выключался самостоятельно несколько раньше, чем обычно. Пошарив немного по руководству cron понял, что вот прямо так сделать никак нельзя. Можно лишь указать промежуток времени особым способом, то есть, можно сказать, что я хочу, чтобы в конце месяца (задаётся числовым промежутком) и если день равен, скажем, среде, выключать в не в 18:00, а в 16:00. Но в этом случае, оно не будет проверять, что оба условия выполняются, а будет делать это если хотя бы одно выполнено.
Поэтому надо было сделать что-то чуть более сложное. В результате, я написал код на питоне. Совсем короткий и простой, но всё же:

import os
import time
from datetime import date
if (31 - date.today().day < 8 and date.today().weekday() == 2):
    os.system('/sbin/poweroff')
quit()
Работает вроде нормально. Добавил задание в cron.

среда, 15 января 2014 г.

Sftp в Linux

Товарищи! Друзья!
На пол срать нельзя!
Для этого есть яма.
Держите жопу прямо.
К чему я это? К тому, что иногда нет никакой возможности защититься от всякого нехорошего барахла. Просто я устал и хочу занести то, что сделал в дневник, чтобы потом было куда подсмотреть.
Значит, задача: организовать sftp - сервер для замены сетевой шары. Так.
Создадим пользователя без хомяка:
 useradd -d /dev/null -M -s /bin/fish user
Ну и пароль ему какой-нибудь придумаем:
passwd user
Это очень круто! Теперь не будет ещё одного гада, который гадит на диск. Но куда-то ему таки надо изливать то, что у него накопилось. Я вообще говоря, так сделал, потому что замучился переносить home. Он отчего-то дико косячил и мне это надоело. Поэтому я просто сделал автоматическое подключение диска и оно заработало, а вот хомяк чего-то никак не хотел. Но это фигня.
Дальше надо создать папку, которую хотим юзануть. Что-нибудь вроде
mkdir /media/diskex/; mkdir /media/diskex/user
Ну и назначим минимальные права. Это будет правильно. Не люблю, когда что-то делается помимо моей воли.
chown -R root:root /media/diskex/user; chmod -R 700 /media/diskex/user; chown -R user:user /media/diskex/user; chmod -R 770 /media/diskex/user
Круть! Теперь надо бы поправить файлик
mcedit /etc/ssh/sshd_config
 И в него уже в конце дописать что-то вроде
Subsystem sftp /usr/lib/openssh/sftp-server
Match user user
ChrootDirectory /media/diskex/
ForceCommand internal-sftp
AllowTcpForwarding no

Match user user2
ChrootDirectory /media/diskex/
ForceCommand internal-sftp
AllowTcpForwarding no

 Здесь, как видно, пользователей может туда ходить два и с разными именами. Если это, конечно, надо и вы создадите ещё и второго пользователя, повторив предыдущие шаги. При этом они никак не смогут лазать в папки, которые им не принадлежат и это тоже очень круто. Только те, что совпадают с их именами. По сути, это их хомяки (для умных /home).
Это всё, безусловно весело и интересно и вы уже поняли, что надо было удалить вот такую фигню:
#Subsystem sftp /usr/lib/openssh/sftp-server
В смысле поставить там решётку, да?
За пояснениями идите на...
(Фуууууф!..)
...идите на этот сайт.
Вот теперь уже всё хорошо и мы можем сделать последний штрих, который в нормальных системах выглядит так:
service ssh restart
Теперь можно радоваться и любоваться результатом. Косяк, конечно есть. И он в том, что люди-то будут видеть чужие хомяки, только войти в них не смогут, а это может породить желание это сделать. Ибо раз закрыто и не пускают, значит что-то скрывают, но вот прямо сейчас я не знаю как можно было бы их скрыть и убрать куда дальше.

понедельник, 1 июля 2013 г.

source.list debian, или любые репозитории, в сгенерированном автоматически source.list

Сегодня друг обратился ко мне с вопросом настройки свежекупленного нетбука. Собственно, делает он всё сам, и, слава Богу! не боится консоли, но опыта секса работы с ОС на ядре Linux у него явно меньше. Собственно проблема проявилась в нестабильных драйверах для его видиокарты (radeon hd 6290), а в официальном wiki было сказано, что лучше всего обновиться до expiremental, чтобы избавиться ото всех проблем.
После недолгих раздумий, я посоветовал ему попробовать всё же обновиться (хотя, ещё вчера я был люто против, но тогда проблема состояла исключительно в производительности).
Ну, так к чему весь этот долгий рассказ? А только лишь к тому, что помимо многих различных списков репозиториев и обычной логики есть ещё вот такой замечательный ресурс, который позволяет просто сгенерировать source.list для debian в несколько щелчков мыши. Даже для меня это удивительно. Но, очевидно, новичкам будет полезно.

воскресенье, 3 марта 2013 г.

LUG

Что такое LUG  писать здесь, я думаю, не стоит. Отмечу лишь одно: изначально предполагалось, что это не просто кучка людей, которые собираются попить вместе пива или что-то ещё. Но в итоге получается именно так. Нет, ну правда!
Местный (воронежский) именно так и делает. Попытки кого-либо на что-то сподвигнуть кончаются ничем. Но оно и понятно. Всё до безобразия просто: люди ничего не хотят делать просто так. Им от этого ничего не перепадает.
Изначально всю байду (ну, по крайней мере, когда я к ним присоединился) затеял местный провайдер (ну или кто они там?) Р-Телеком. Потом выянилось, что они просто хотели таким образом поиметь чуть больше клиентов. Когда осознание этого пришло, желание что-либо делать моментом отпало. Они решили, что к чёрту реагировать и просто проигнорировали сообщество. Типа "вы здесь за идею и мы вас не держим". Это понятно. Хорошо.
Потом, когда я устроился работать и понял, что могу взять просто сообщество и с их помощью сделать "всеобщее благо", найдя просто халявную крышу и компы для курсов, которые изначально предполагались, никто не среагировал. Нашлись и особо говнистные засранцы, которые вдруг решили, что я что-то требую (на самом деле спросил обещанное когда-то).
Самое обидное здесь то, что удалить свой аккаунт просто одной кнопкой не получится. Его можно только бросить. А жаль.
Коротко говоря, очень жаль, что сообщество (ну, по крайней мере местное) ни на что не годно. Я никого ни в чём не виню. Всё нормально. Просто никто не позаботился ни о какой материальной мотивации. А времена, когда люди могли просто так, за идею, сделать что-то, уже прошли.

вторник, 25 декабря 2012 г.

Alsa Truble

Сегодня (как и несколько безмолвных дней до этого) решил потрахаться с alsa. Стоит и молчит, зараза.
Облазил половину интернета, но ничего в итоге не нашёл путного. У людей это чаще всего не настраивалось. У меня стоит вшитая звуковуха SiS SI7012.
Добавил:

cat /etc/modprobe.d/aliases.conf
# These are the standard aliases for devices and kernel drivers.
# This file does not need to be modified.
#
# No new aliases should be added to this file, please file a bug against
# the kernel for any aliases which are still not built-in.
# network protocols ##########################################################
# alias net-pf-1  unix
# alias net-pf-2  ipv4
# alias net-pf-3  ax25
# alias net-pf-4  ipx
# alias net-pf-5  appletalk
# alias net-pf-6  netrom
# 7 BRIDGE
# alias net-pf-8  atm
# alias net-pf-9  x25
# alias net-pf-10 ipv6
# alias net-pf-11 rose
# alias net-pf-12 decnet
# 13 NETBEUI
# alias net-pf-15 af_key
# alias net-pf-16 af_netlink
# alias net-pf-17 af_packet
# 18 ASH
# alias net-pf-19 econet
# alias net-pf-20 atm
# 22 SNA
# alias net-pf-23 irda
# alias net-pf-24 pppoe
# 25 WANROUTER
# alias net-pf-26 llc2
# alias net-pf-31 bluetooth
# alias net-pf-33 af_rxrpc
alias net-pf-16-proto-1 wire
alias net-pf-16-proto-3 ip_queue
# alias net-pf-16-proto-4 inet_diag
# alias net-pf-16-proto-5 ipt_ULOG
# alias net-pf-16-proto-6 xfrm_user
alias net-pf-16-proto-8 scsi_transport_iscsi
alias net-pf-16-proto-9 audit
alias net-pf-16-proto-11 cn
# alias net-pf-16-proto-12 nfnetlink
alias net-pf-16-proto-13 ip6_queue
# alias net-pf-16-proto-14 dn_rtmsg
# executables formats ########################################################
install binfmt-0000 /bin/true
alias binfmt-204 binfmt_aout
alias binfmt-263 binfmt_aout
alias binfmt-264 binfmt_aout
alias binfmt-267 binfmt_aout
alias binfmt-387 binfmt_aout
# block devices ##############################################################
alias block-major-3-*  ide_generic
alias block-major-22-* ide_generic
alias block-major-33-* ide_generic
alias block-major-34-* ide_generic
alias block-major-37-* ide_tape
alias block-major-44-* ftl
alias block-major-46-* pcd
alias block-major-47-* pf
alias block-major-56-* ide_generic
alias block-major-57-* ide_generic
alias block-major-58-* lvm_mod
alias block-major-88-* ide_generic
alias block-major-89-* ide_generic
alias block-major-90-* ide_generic
alias block-major-91-* ide_generic
alias block-major-93-* nftl
alias block-major-97-* pg
# character devices ##########################################################
alias char-major-10-1 psmouse
alias char-major-10-139 openprom
alias char-major-10-157 applicom
alias char-major-10-181 toshiba
alias char-major-10-183 hw_random
alias char-major-10-187 irnet
alias char-major-10-189 ussp
alias char-major-10-250 hci_vhci
alias char-major-13-0  joydev
alias char-major-13-1  joydev
alias char-major-13-2  joydev
alias char-major-13-3  joydev
alias char-major-13-32 mousedev
alias char-major-13-33 mousedev
alias char-major-13-34 mousedev
alias char-major-13-35 mousedev
alias char-major-13-63 mousedev
alias char-major-13-64 evdev
alias char-major-13-65 evdev
alias char-major-13-66 evdev
alias char-major-13-67 evdev
alias char-major-19-* cyclades
alias char-major-20-* cyclades
alias char-major-22-* pcxx
alias char-major-23-* pcxx
alias char-major-27-* ftape
alias char-major-34-* scc
alias char-major-35-* tclmidi
alias char-major-48-* riscom8
alias char-major-49-* riscom8
alias char-major-57-* esp
alias char-major-58-* esp
alias char-major-63-* kdebug
alias char-major-67-* coda
alias char-major-75-* specialix
alias char-major-76-* specialix
alias char-major-81-* videodev
alias char-major-83-* vtx
alias char-major-89-* i2c_dev
alias char-major-90-* mtdchar
alias char-major-96-* pt
alias char-major-97-* pg
alias char-major-107-* 3dfx
alias char-major-109-* lvm_mod
alias char-major-166-* cdc_acm
alias char-major-171-0 raw1394
alias char-major-171-1 video1394
alias char-major-171-2 dv1394
alias char-major-171-3 amdtp
alias char-major-180-* usbcore
alias char-major-195-* nvidia
alias char-major-200-* vxspec
alias char-major-202-* msr
alias char-major-203-* cpuid
alias char-major-206-* osst
alias char-major-208-* ussp
alias char-major-227-* tub3270
#alias char-major-240-* usb-serial
#alias char-major-240-* hsfserial
#alias char-major-241-* hsfserial
# misc #######################################################################
#alias bt-proto-0 l2cap
#alias bt-proto-2 sco
#alias bt-proto-3 rfcomm
#alias bt-proto-4 bnep
#alias bt-proto-5 cmtp
#alias bt-proto-6 hidp
alias bt-proto-7 avdtp
alias cipcb0 cipcb
alias cipcb1 cipcb
alias cipcb2 cipcb
alias cipcb3 cipcb
alias dummy0 dummy
alias dummy1 dummy
alias plip0 plip
alias plip1 plip
alias slip0 slip
alias slip1 slip
alias tunl0 ipip
alias gre0 ip_gre
alias usbdevfs usbcore
alias nfs4 nfs
# work around other kernel issues ############################################
# The EHCI driver should be loaded before the ones for low speed controllers
# or some devices may be confused when they are disconnected and reconnected.
softdep uhci-hcd pre: ehci-hcd
softdep ohci-hcd pre: ehci-hcd
Затем:
cat /etc/modprobe.d/alsa-base.conf
# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7
# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe --quiet snd-ioctl32 ; /sbin/modprobe --quiet snd-seq ; }
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; }
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 && { /sbin/modprobe --quiet snd-emu10k1-synth ; : ; }
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
# Keep snd-pcsp from beeing loaded as first soundcard
options snd-pcsp index=-2
# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=-2
Но это не помогло и более того - alsamixer перестал запускаться. Переустановка не помогла.
Решил посмотреть в BIOS. Там ничего интересного не обнаружилось, но поменял настройки видио с AGP на PCI. Перезагрузился. И... О, чудо! Оно реально каким-то чудом вдруг заработало само собой. Не знаю даже, что именно сыграло роль - настройки, или BIOS, но, если вдруг оно кому надо, то попробуйте поковырять BIOS.

среда, 5 сентября 2012 г.

Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH

Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH

Только что нашёл эту клёвую статью. Мне в моей практике явно может понадобиться. Очень часто нужно получить доступ к машине куда более мощной, чем имеешь на данный момент и тут как ни одна другая подходит собственная "подстольная". Но чтобы не заморачиваться и не ставить кучку дополнительных приблуд, можно ограничиться указанными в статье программами для Windows. И уже на домашней машине запустить более или менее настроенную винду :) Ну и файлы также теперь всегда под рукой.

Всем удачи! Have fun and nice day :)

вторник, 4 сентября 2012 г.

Talend Open Studio for Data Integration. Конвертирование баз данных

Talend Open Studio for Data Integration - это отличный инструмент для переноса баз данных и их конвертирования. С удовольствием вам её презентую и очень рекомендую, так как она полностью бесплатна и распространяется на условиях GPL v2.

четверг, 5 июля 2012 г.

Удивление от wget

Ну кто же знал, что wget не умеет грузить в указанную папку? (Помидоры приберегите для пасты.) Но когда я попытался загрузить несколько файлов простым скриптом- ничего не вышло. Быстрый перекур мана ничего дельного не дал. Поэтому, как оказалось, самое простое решение было перенести скрипт в папку загрузки. Вот тогда всё заработало как надо. Так что, дети, когда решите чего- нибудь там скачать, делайте так: просто поместите скрипт в нужную папку и запускайте, дав ему перед этим права. (Ну вы знаете про chmod, да?)

среда, 9 марта 2011 г.

Ubuntu 10.04 и Monodevelop 2.4

Последняя доступная версия для Ubuntu это 2.2. ДЛя установки новой версии (2.4) можно сделать следующее:

Добавить в /etc/apt/sources.list строчку: deb http://badgerports.org lucid main

 Выполнить в терминале:

$ wget http://badgerports.org/directhex.ppa.asc
$ sudo apt-key add directhex.ppa.asc
$ rm directhex.ppa.asc
$ sudo apt-get update
Теперь можно ставить новую версию.
 
Слизано отсюда. 

суббота, 5 марта 2011 г.

Отображение значков дисков на рабочем столе.

Такая вот странная заметка, опять же на тему украшательств. Скорее от того, что давно ничего не писал, а не от того, что это может многим пригодиться.
Для того, чтобы скрыть отображение дисков на рабочем столе просто напечатайте команду:
gconftool-2 --type bool --set apps/nautilus/desktop/volumes_visible false
После этого всё должно быть нормально. Как это ни странно, но если то же пытаться сделать через gconf-editor это может не сработать.

суббота, 12 февраля 2011 г.

Установка Firefox-4.0 из PPA

Попробовав firefox-4.0, с удовольствием отметил, что это довольно быстрый и весьма интересный браузер. Рекомендую попробовать. Для этого можно просто скачать исходники и запустить run-mozilla.sh или поставить из репозитория.
Для этого следует выполнить в терминале команду:

1.sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa && sudo apt-get update
sudo apt-get install firefox-4.0

Если вы получили ошибку, то следует выполнить:

1.sudo ln -s /usr/lib/firefox-4.0b2pre/firefox-4.0 /usr/bin/firefox-4.0
2.sudo apt-get -f install

После этого можно попробовать новый браузер набрав в "быстром запуске" или терминале firefox-4.0

пятница, 14 января 2011 г.

Делаем приветствие для консоли Linux

Загорелся идеей сделать приветствие консоли как у Тони Старка. Долго копал, гуглил, понял что ничего по сути дельного не найду. Были советы вроде "измени /etc/motd". Который после первого же осмотра оказался ссылкой на /var/run/motd, да к тому же постоянно генерировался заново. Так что не поняв откуда у него ноги растут, пошёл путём более простым:

1) сделал в домашней папке нужную надпись символами;

2) в /etc/bash.bashrc в конец вкатал cat /home/user/folder/ASCIItxt

Теперь вот имею

Паскальные яйца Linux

«Linux has no Easter Eggs. Linux and Unix applications generally do not have Easter Eggs. We know because we can review the source code» - именно так сказано на одном из тематических ресурсов. Большинство разработчиков (за редким исключением) на поддержку своего продукта тратят свое личное время, которого мало и потому жалко. Даже как-то грустно становится: неужели среди тысяч программистов не нашлось ни одного шутника и порадовать своих друзей необычной находкой пользователю Linux, увы, не суждено? Отнюдь!
Начнем, естественно, с самого сердца. Здесь комментарии разработчиков говорят сами за себя:
Код
$ cd /usr/src/linux

$ egrep -ir "(fu?k)|(shit)|(stupid)" *

include/asm/xor.h: Clobber them just to be sure nobody does something stupid

include/linux/fb.h: #define STUPID_ACCELF_TEXT_SHIT

/* Locate record for stupid devices. */

/* I don't know the range. Put stupid things here */

/* Shit happens... */

lib/vsprintf.c: * Wirzenius wrote this portably, Torvalds f***ed it up :-)
Или вот такой запрос:

$ egrep -ir "(fire)$" *

/* Turn on transmit finished interrupt. Will fire immediately! */

drivers/usb/class/usblp.c:static char *usblp_messages[] = { "ok", "out of paper", "off-line", "on fire" };

Причем принтер действительно ругается в консоль, что он «горит». Также заслуживают внимания и имена функций, параметров и переменных, которые занесены в файл sunhme.c:
Код
$ less drivers/net/sunhme.c

MODULE_PARM_DESC(macaddr, "Happy Meal MAC address to set");

static struct happy_meal *root_happy_dev;


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

В заголовочных и конфигурационных файлах других приложений также есть интересные строки. Например, при компиляции оконного менеджера Enlightenment можно встретить вот такую информацию:
Код
checking for mass_quantities_of_bass_ale in -lFridge... no

checking for mass_quantities_of_any_ale in -lFridge... no

Warning: No ales were found in your refrigerator.

We highly suggest that you rectify this situation immediately.


Не знаю, за что платит Марк Шаттлворт своим ребятам из Canonical Ltd, но они тоже любят тратить рабочее время на развлечения. Например, так выглядят названия релизов Ubuntu в заголовочных файлах:
Код
$ zcat /usr/share/doc/linux-image-`uname -r`/changelog.Debian.gz | egrep -e "Release"

The "Ben got a PowerBook for Christmas" Release.

The "Quickest re-release ever" Release

The "Oh crap, what did I get myself into?" Release.

The "Atomic Artichoke" Release.

The "Crunchy Corn" Release.

The "Crispy Chicken" Release.

$ zgrep "The.*Release" /usr/share/doc/dpkg/changelog.Debian.gz

The "Good, clean fun" Release.

The "Bully's Special Prize" Release.

The "On like Donkey Kong" Release.


Разработчики PHP тоже сумели отличиться. Добавь следующую строку к php-запросу «?=PHPE9568F36-D428-11d2-A769-00AA001ACF42» на любом из сайтов с установленными Apache и PHP. В результате получишь изображение симпатичной собачки, вид которой, как я понимаю, зависит от версии PHP. При запросе «?=PHPE9568F34-D428-11d2-A769-00AA001ACF42» будет выведен логотип проекта.

Для того чтобы отменить выполнение системного вызова reboot(), необходимо передать ему два параметра, первый из которых - 0xfee1dead, а второй - один из следующих:
Код
$ grep LINUX_REBOOT_MAGIC include/linux/*.h

include/linux/reboot.h:#define LINUX_REBOOT_MAGIC1 0xfee1dead

include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2 672274793

include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2A 85072278

include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2B 369367448

include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2C 537993216


Посмотрим, что означают эти непонятные числа:

[cdoe]$ printf "%x\n" 672274793

28121969[/code]

Именно в этот день (28 декабря 1969 года) в городе Хельсинки родился отец операционной системы Linux Линус Бенедикт Торвальдс, а уж кому, как не ему, командовать процессами в ядре. Остальные цифры, я думаю, ты пробьешь уже сам.
Консольные утилиты

Наиболее известное пасхальное яйцо высиживают утилиты apt и aptitude, с помощью которых устанавливаются приложения в Debian, хотя в вариантах Ubuntu, ALTLinux и Knoppix приведенное ниже тоже работает на ура:
Код
$ apt-get moo

(__)

(oo)

/------\/

/ | ||

* /\---/\

~~ ~~

...."Have you mooed today?"...


Вот такая симпатичная коровка нас только что обмычала. А вот aptitude (оболочка к apt) никогда не признается в наличии пасхальных яиц (ну, только если хорошо попросить):

Код
$ aptitude moo

There are no Easter Eggs in this program.


Как видишь, тебе честно ответили, что в aptitude нет пасхального яйца. Ты поверил? Я нет. При добавлении к запросу от двух до шести букв «v» («aptitude -vvvvvv moo»), получим слона, проглоченного змеей:
-v - There really are no Easter Eggs in this program.
-vv - Didn't I already tell you that there are no Easter Eggs in this program?
-vvv - Stop it!
-vvvv - Okay, okay, if I give you an Easter Egg, will you go away?
-vvvvv - All right, you win.
-vvvvvv - What is it? It's an elephant being eaten by a snake, of course.

Кстати, emerge из Gentoo тоже мычит, попробуй «emerge moo», убедись сам. А вот slapt-get из Slaskware - нет. Его, очевидно, создают действительно серьезные ребята, которым не до шуток.

Команда whois, оказывается, не только может выдать информацию, взятую из базы данных Network Information Center, но и отлично ориентируется в более широком спектре жизненных вопросов. Попробуй набрать в Ark Linux «whois the devil» или «whois the antichrist».

Кроме root, в некоторых дистрибутивах Linux есть еще один привилегированный пользователь. Не веришь? Создай пользователя tyler с любым паролем. А теперь попробуй ввести команду halt или reboot. Перед остановкой системы будет выведено такое сообщение: «Oh hello, Mr. Tyler, - going DOWN?»

Под любым другим пользователем такого точно не увидишь. Очевидно, кому-то из разработчиков нравится клип рок-группы Aerosmith «Love in an Elevator», в котором эти слова произносит симпатичная девушка из лифта.
Однажды мне захотелось узнать, какие строки содержит команда sudo:

Код
$ strings /usr/bin/sudo

I feel much better now.

Where did you learn to type?

I've seen penguins that can type better than that.

Are you on drugs?


Есть и просто программы-шутки, например, с помощью команды ddate можно получать информацию об интересующих числах календаря:

Код
$ ddate

Today is Pungenday, the 38th day of Chaos in the YOLD 3173

$ ddate 01 04 2007

Sweetmorn, Discord 18, 3173 YOLD

$ ddate 01 01 2000

Sweetmorn, Chaos 1, 3166 YOLD


Чтобы увидеть фразу из первой части знаменитой трилогии «Путешествие автостопом по Галактике» Дугласа Адамса, открываем редактор vi и набираем «:help 42»:

Код
$ vi

:help 42


В более ранних версиях vi попадалось еще одно яйцо. Чтобы его увидеть, необходимо было открыть файл programmers.txt, а если его не оказывалось, то создать:

Код
$ vi programmers.txt


Далее нажатием клавиши следовало перейти в режим вставки, 11 раз нажать на и на 12-той строке ввести «Bram Moolenaar», затем открыть новый буфер, нажав последовательно и . Результатом этой операции был список команды разработчиков.

А вот ребята из Gentoo манией величия не страдают, почти. Чтобы проверить это, достаточно в Gentoo 2005.1 в терминале набрать:

Код
# modules-update you

Error: I don't understand you


Типа моя твоя не понимай. Теперь спросим: «Кто тут самый главный?»:

Код
# who is god

root pts/0 Dec 19 15:35 (:0.0)


Разработчики Knoppix тоже решили нас немного порадовать. Открываем консоль, набираем «bb», и шоу точно обеспечено. Да, и обязательно включи колонки, чтобы не пропустить все интересное. Такой вот портфолио ASCII-арта.
Шутки в дистрибутивах

Самыми большими любителями поразвлекаться в рабочее время оказались ребята из SUSE - в старых версиях этого дистрибутива спрятано порядочное количество яиц. Так, при установке SuSE 7.2 Professional, как только будет скопировано ядро и начнется копирование остальных файлов, во второй консоли, куда следует перейти по , будет выведено прощальное сообщение из «Путешествия автостопом по Галактике». Выпуск версии SuSE 8.1 как раз совпал с десятилетием компании, которое разработчики пропустить никак не могли. Попробуй во время установки дистрибутива остановить отсчет времени, нажав на одну из клавиш со стрелками и . На экране появится праздничный торт с фирменным логотипом хамелеона, а из динамиков будет раздаваться «Happy birthday to you». В версии SuSE 8.2 они, очевидно, уже просто не смогли остановиться - чтобы увидеть здоровающегося хамелеона, достаточно при установке нажать .

В дистрибутиве RedHat имеется файл /usr/libexec/redhat-credits, выводящий имена разработчиков. Его можно запустить как вручную, так и нажав и трижды щелкнув мышкой по фоновому изображению рабочего стола.
Яйца в ящерице

Судя по всему, разработчики веб-браузера Mozilla не очень утруждают себя работой, и, если хорошо поискать, в любом из браузеров, использующих движок gecko (Mozilla, Firefox, Galeon), можно найти много интересного. «И наконец зверь пал, и обрадовались неверующие...» The Book of Mozilla, 7:15 - просмотреть эту главу можно, набрав «about:mozilla» в адресной строке любого из этих браузеров. В свое время разработчики IE в версии 4.0 пошутили о том, что Mozilla будет крушить компьютеры. Команда Mozilla ответила шутникам - для этого так же необходимо было набрать в адресной строке IE «about:mozilla». Причем текст в старых версиях отличался, там говорилось о том, что «шум миллиона клавиатур, подобно большому шторму, должен покрыть Землю». Ну что ж, это пророчество уже сбылось.

Не обошлось без скрытой саморекламы. Например, чтобы узнать имена разработчиков, принимавших участие в создании этого браузера, не надо ходить на сайт, достаточно ввести «about:credits» - и будет выведен длинный список. А вот если по ошибке набрать, вместо www.google.com, просто www.goog, можно посмотреть интересный флеш-мультик на сайте одного из разработчиков по адресу elephanteggs.com/Goog.htm. Аналогичная ситуация произойдет, если в этих браузерах потянуть за любой значок в панели закладок и бросить его в рабочем пространстве. Есть и просто развлечения: установив расширение addons.mozilla.org/firefox/742 и набрав «about:kitchensink», можно долго наблюдать, как из крана течет вода.
Графические приложения

В консольных утилитах нашлось приличное количество пасхальных яиц, но и в графических не обошлось без сюрпризов. Так, mIRC был в свое время убран из Debian именно по причине наличия пасхального яйца, причем разработчик этого IRC-клиента постоянно менял секреты, что вызывало искреннюю радость у нашедших их пользователей. Например, если щелкнуть правой кнопкой мыши по логотипу в окне About, можно было увидеть прыгающий мяч, а если кликнуть по значку, он изменялся. В некоторых версиях для этого нужно было набрать «arnie», а в более старых версиях – «[Tye TROUT reply]: WHOP! THWHACK! SLAP!». В версии 5.5 и выше необходимо еще в течение 5 секунд подержать , а затем .

Перейдем к более тяжелым приложениям. Работая в GNOME, выбираем пункт меню Run program (, «Выполнить программу»), вводим «free the fish», затем нажимаем «Run». Теперь по экрану время от времени будет плавать маленькая рыбка Wanda, прихлопнуть ее можно только вместе с панелью. Не бойся, панель восстановится. Если щелкнуть по рыбке, она уплывет, но через некоторое время обязательно вернется. Есть и другой способ вызвать Wand'у: кликаем правой кнопкой мыши по панели, выбираем Panel info и 3 раза жмем . Убивать так же (если не жалко). Но это еще не все. Повторно вызываем Run program и набираем «gegls from outer space» - теперь вместе с Wand'oй мы будем отражать нападение космических захватчиков. Хотя в новых SUSE, вместо космических кораблей, возможна атака Genetically Engineered Goat Large (GEGL).

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

Разработчики GNU Gimp тоже время зря не теряли. Чтобы увидеть альтернативный логотип проекта, жмем и переходим в «Help -> About». Кстати, старые пасхальные яйца Gimp уже перекочевали в разряд фильтров. Это GEE Slime и GEE Zoom.

Хочешь увидеть пасхальное яйцо в IDE Anjuta? Создай новый generic/terminal-проект с названием Animation и именем автора Horse. В окне описания введи «ShOw Me ThE AnImATiON now». После компиляции по экрану будет бегать лошадь.

Настала очередь офисных пакетов - StarOffice (от 6.0) и OpenOffice (от 1.0.1). Думаешь, что разработчики трудятся, не покладая рук? Зря. Открываем текстовый редактор Writer, набираем «StarWriterTeam», нажимаем на и перед нами команда разработчиков. А разработчики табличного редактора Calc пошли еще дальше. Запиши в любую ячейку «=Game("StarWars")», нажми ввод и можешь наслаждаться игрой, спасая планету от нашествия инопланетян. Правда, в некоторых версиях, вместо этого, сообщат: «Oh no, not again».

Но и этого им оказалось мало - они встроили в Calc крестики-нолики. Чтобы поиграть, достаточно в любой из ячеек внутри диапазона A1:C3 ввести «=Game(A1:C3;"TicTacToe")». Компьютер автоматически сделает следующий ход. И так далее до победного конца.

В музыкальном редакторе Audacity тоже не обошлось без сюрпризов. Выбираем «Help -> About Audacity» и, держа нажатыми клавиши , щелкаем средней кнопкой мышки по логотипу программы. В результате увидим версию wxWidgets и дату сборки.

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

Вот такой вот небольшой набор. Вероятно, интересные свойства есть и у других программ. Найти их не так-то просто, но главное, что они есть. Здесь, как говорится, Гугл в помощь.
http://www.xakep.ru/magazine/xa/100/102/1.asp

среда, 29 декабря 2010 г.

Рюшечки, обои и рабочие столы Linux (wallpapoz)

Весьма интересную рюшку к своей системе обнаружил совсем недавно. Мне вдруг захотелось иметь несколько разных рабочих столов...
Нет! Не подумайте плохого. Просто захотелось иметь разные обои, как это обычно делается в KDE. Однако в предпочитаемом мною гноме этого нет. Пришлось минут пять пошарить по гуглу. Нашёл нечто, что меня порадовало.
Речь идёт о wallpapoz. Весьма занятная вещица. Демон вешается в процессы и следит за перемещением между рабочими столами. Когда вы меняете рабочие столы, он автоматически меняет обоину. Конечно, это не совсем то, но выглядит вполне занятно. Да и среди "прожорливых" ресурсов я его не заметил. Так что не следует об этом беспокоиться.
Скачать и установить его можно с официального сайта: wallpapoz.

вторник, 7 декабря 2010 г.

Перемещение кнопок управления окном.

gconftool-2 --set "/apps/metacity/general/button_layout" --type string "menu:minimize,maximize,close"


Просто выполните эту команду в терминале. Это гораздо быстрее и удобнее, чем ковырять в gconf-editor.
Обратите внимание, что "menu:" и ":menu" это совершенно различные вещи. Именно от этого и зависит, где будут кнопки управления окном: слева, или справа.
Остальное, думаю и так понятно.
Удачи.

вторник, 26 октября 2010 г.

Настройка OpenVPN в Ubuntu

Пример файла /etc/openvpn/server.conf

port 1194
proto udp
dev tun
;dev-node tap0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh1024.pem
server 10.10.10.0 255.255.255.0 # vpn subnet
ifconfig-pool-persist ipp.txt
push "route 192.168.7.0 255.255.255.0" # home subnet
;duplicate-cn
keepalive 10 120
;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
;status openvpn-status.log
;log-append openvpn.log
verb 10
mute 20
client-to-client
client-config-dir /etc/openvpn/ccd
route 192.168.1.0 255.255.255.0

Указываем, на каком порту принимать соединения:

port 1194

Указываем протокол (tcp или udp):

proto udp

Указываем, что именно будем инкапсулировать в туннеле (ethernet фреймы - tap или ip пакеты - tun)

dev tun

Прописываем пути к ключам и сертификатам:

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh1024.pem

Выделяем внутренний диапазон адресов для VPN:

server 10.10.10.0 255.255.255.0 # vpn subnet

В какой файл будем записывать выданные для VPN адреса?:

ifconfig-pool-persist ipp.txt

Прописываем на клиенте маршрут до домашней сети (той которая за сервером):

push "route 192.168.7.0 255.255.255.0" # home subnet

Пинговать каждые 10 секунд, если хост не отвечает в течении 120 секунд, считать его в недоступным:

keepalive 10 120

Разрешить сжатие пакетов:

comp-lzo

Прописываем пользователя и группу, от имени которых будет запускаться демон:

user nobody
group nogroup

Пытаться переподключаться после падений интерфейса (не уверен, что правильно перевёл):

persist-key
persist-tun

Уровень подробности логов (от 0 до 9):

verb 4

Не писать в логи повторяющиеся сообщения:

mute 20

Разрешить пересылку пакетов между клиентами:

client-to-client

Автоматически прописать машрут на сервере до клиента

client-config-dir /etc/openvpn/ccd
route 192.168.1.0 255.255.255.0


Копипаст с сайта