Посты в How-to`s
Merl 20.01.2011 11:33

How-to`sПринтер Xerox WC 4118, PostScript, Linux и десятки напечатанных страниц кода

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

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



Первая, да пока и единственная проблема возникла с принтером (+ копиром) Xerox WC 4118, подключенный к одному из офисных компов под управлением винды.
Полностью.
+ 1 -
2
uscr 14.01.2011 12:23

How-to`sУстанавливаем rpm пакет в deb дистрибутив.

Началось всё с того, что я решил переползти с федоры на убунту и...мне понравилось. Пришло время сносить федорочку и на рабочем компьютере. Когда дело дошло до установки драйвера принтера, оказалось, что CUPS не поддерживает этот принтер "из коробки" (Epson AL C3000), а драйвера собраны только в rpm. Доооолго я мучался со сборкой из исходников, а потом плюнул и стал гуглить непосредственно установку данного принтера. Второй ссылкой я нагуглил статью, которая решила все мои проблемы (и свела меня с ума). Итак, у нас есть Ubuntu (или любой другой debian based дистр), rpm пакет и везение.
Полностью.
+ 6 -
11
ladykosha 12.01.2011 21:36

How-to`sКак из скрипта получить орг-модное расписание :)

Мой кусочек счастья :) Некоторое время назад у меня была мысль слать себе расписание на день письмом, и теперь я могу к ней вернуться. Возможность получить это самое расписание из скрипта я искала долго, но мне не приходило в голову искать в разделе Hacking. Вроде как не по чину. А тут вдруг раз, и нашла. Расписание (agenda) и список тудушек, и прочее полезное вполне можно получить из скрипта и в скрипт :)

Да, на всякий случай. Это для тех, кто пользуется емаксом, и конкретно замечательным планировщиком, тудушником, учётчиком времени... в общем, org-mode.
Полностью.
+ 11 -
17
T1mbo 07.01.2011 00:36

How-to`sPort Knocking на примере защиты ssh от брутфорса.

Доброй ночи! В данном посте я расскажу как просто защитить ssh сервер от брутфорса. Данный пост использует правило для iptables с использованием механизма port knocking.
Полностью.
+ 16 -
14
immortalday 24.12.2010 16:26

How-to`smount iso on AIX

Столкнулся с проблемой что AIX не умеет монтировать образы(iso) через -o loop, а подцепить образ с NetBackup было просто жизненно необходимо)

в итоге пришлось делать следующим образом:
Полностью.
+ 9 -
6
nvbn 17.12.2010 02:47

How-to`sПревращаем ноутбук в гирлянду!

Скрипт:
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!/usr/bin/python
# -*- coding: utf-8 -*-
#       This program is free software; you can redistribute it and/or modify
#       it under the terms of the GNU General Public License as published by
#       the Free Software Foundation; either version 2 of the License, or
#       (at your option) any later version.
#       
#       This program is distributed in the hope that it will be useful,
#       but WITHOUT ANY WARRANTY; without even the implied warranty of
#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#       GNU General Public License for more details.
#       
#       You should have received a copy of the GNU General Public License
#       along with this program; if not, write to the Free Software
#       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#       MA 02110-1301, USA.


import time
import os

class Led:
  """Led class"""
 
  def __init__(self, type = 'file', **kwargs):
    """Init led and get status
 
    Keyword Arguments:
    type -- String
    adress -- String
    on -- String
    off -- String
 
    Returns: None
 
    """
    self.type = type
    if type == 'file':
      self.adress = kwargs<'adress'>
      file = open(self.adress, 'r')
      self.status = int(file.read())
      file.close()
    elif type == 'command':
      for arg in kwargs:
	setattr(self, arg, kwargs<arg>)
	self.status = 0
 
  def push(self, data):
    """Change led file value
 
    Keyword Arguments:
    data -- Int
 
    Returns: None
 
    """
    file = open(self.adress, 'w')
    file.write(str(data))
    file.close()
 
  def action(self, type):
    """Run on/off command
 
    Keyword Arguments:
    type -- Int
 
    Returns: None
 
    """
    os.system(getattr(self, type and 'on' or 'off'))
 
  def change_status(self, value = -1):
    """Change led status"
 
    Keyword Arguments:
    value -- Int
 
    Returns: None
 
    """
    if value == -1:
      value = 1 - self.status
    if self.type == 'file':
      self.push(value)
    elif self.type == 'command':
      self.action(value)
    self.status = value

class Leds:
  """Flashing leds class"""
  leds = 

 
  def __init__(self, *args, **kwargs):
    """Init leds
 
    Keyword Arguments:
    *args -- Led init data
 
    Returns: None
 
    """
    try:
      self.interval = kwargs<'interval'>
    except NameError:
      pass
    for led in args:
      self.append(led)
 
  def append(self, adress):
    """Add led to leds array
 
    Keyword Arguments:
    adress -- String or Tuple
 
    Returns: None
 
    """
    if type(adress) == str:
      self.leds.append(Led(type='file', adress=adress))
    elif type(adress) == tuple:
      self.leds.append(Led(type='command', on=adress<0>, off=adress<1>))
 
  def run(self):
    """Start led flashing"""
    while True:
      for led in self.leds:
	led.change_status()
	time.sleep(self.interval)
 
 
if __name__ == '__main__':
  leds = Leds(
	      '/sys/devices/platform/asus_laptop/wlan',
	      '/sys/devices/platform/asus_laptop/bluetooth',
	      ('streamer -c /dev/video0 -b 16 -o /dev/null&', 'killall streamer'),
	      interval=0.5,
	      )
  leds.run()</arg>

Для работы на вашем ноутбуке нудно отредактировать 133-135 строки.
Можно указывать файл(пример - '/sys/devices/platform/asus_laptop/bluetooth') отвечающий за лампочку, либо команды для включения и выключения лампы:
1
('streamer -c /dev/video0 -b 16 -o /dev/null&', 'killall streamer'),

В файле настройки для ноутбуков asus, для web-камер команда универсальная (135 строчка).
Запускать через sudo, либо от рута.
Полностью.
+ 7 -
1
pluton 16.12.2010 21:59

How-to`sШифрование GnuCash файла

Привет всем.
Эта заметка о маленьком скрипте, который упрощает жизнь при работе с зашифрованным файлом GnuCash.
Полностью.
+ 1 -
2
nvbn 09.12.2010 16:03

How-to`sПолноценный полноэкранный просмотр видео на youtube с html5 в chrome

Инструкция ориентирована на ubuntu с gnome, в других дистрибутивах тоже должно работать.
Для пользователей kde инструкция не подойдёт.
Полностью.
+ 1 -
13
CaveRat 29.11.2010 03:03

How-to`sКак пересобирают ядро

Думаю, манов и хавтушек по поводу пересборки ядра уже достаточно много, но тем не менее, опишу как этот процесс происходил в моем случае. Скажу сразу - я не linux-гуру, да и доступа к хавтушкам у меня на момент пересборки не было по причине отсутствия интернета.
Полностью.
+ 12 -
27
dront78 27.11.2010 15:28

How-to`sPulseAudio + Google Android = ?



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

создадим небольшую функцию в .bashrc

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
function pashare {
    case "$1" in
        start)
            pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2 source=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor record=true port=myPort listen=myIp
            ;;
        stop)
            pactl unload-module `pactl list | grep tcp -B1 | grep M | sed 's/<^0-9>//g'`
            ;;
        *)
            echo "Usage: $0 start|stop" &gt;&2
            ;;
        esac
}


Команда pashare start раздает выход с устройства alsa_output.pci-0000_00_1b.0.analog-stereo.monitor при подключении на соответствующий ip:port В этом легко убедится, присоединившись с помощью telnet на соответствующий адрес и включив какой-либо трек для проигрывания.

Конечно имя устройства нужно сменить на присутствующее в системе. делается все это командой pactl list | grep Name, показывающей имена загруженных модулей и устройств.

Команда pashare stop прибивает сетевой модуль, после нахождения его номера в списке загруженных модулей.

Важно - модуль module-simple-protocol-tcp не требует авторизации, т.е. в принципе кто угодно сможет слушать аудиовыход с карты через сеть после его активации.

Теперь о главном. К сожалению у меня не получилось заставить работать Android ни через Multicast, ни через UPnP.
Поэтому доступен велосипед. Это простое сетевое приложение, скачивающее данные с указанного адреса и отправляющее их в аудиостек телефона. Для тех, кому не интересен код, прямая ссылка на скачивание apk

После установки этого чуда на телефон, вводим ip address, port и нажимаем кнопочку Play!

Буду благодарен, если научите запускать mplayer с небольшим опережением аудио при проигрывании фильма, ибо задержка при воспроизведении конечно есть и как всегда - есть к чему стремиться ;)

Веселых выходных всем присутствующим.
Полностью.
+ 9 -
5
1 2 3 4 5 6 7 8 22 23