LINUX.ORG.RU

Сообщения metrokto

 

Проблема подключения через autossh

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

#!/bin/sh
export AUTOSSH_PORT=2223
export AUTOSSH_GATETIME=0
autossh \
    -N user@example.com \
    -R 2222:localhost:22
Пока все нормально, можно подключаться на example.com: ssh user@127.0.0.1 -p 2222.

Но есть проблема: иногда соединение обрывается, и порт 2222 на example.com остается открытым. Пока замечаю и убиваю процесс autossh пробует переподключится, но так как порт занят тупит:

autossh[22724]: port set to 0, monitoring disabled
autossh[22724]: checking for grace period, tries = 0
autossh[22724]: starting ssh (count 1)
autossh[22724]: ssh child pid is 22727
autossh[22724]: check on child 22727
autossh[22724]: set alarm for 600 secs
autossh[22727]: execing /usr/bin/ssh
Warning: remote port forwarding failed for listen port 2222
Виснет — не завершается и не предпринимает попыток подключится к этому порту еще раз. Приходится звонить по телефону и просить перезагрузить компьютер.

Как можно решить проблему?

 ,

metrokto ()

Один файл glade для несколько элементов. Или как правильно делать?

У меня есть созданный в Glade интерфейс с виджетом Gtk.Notebook. В этот notebook требуется добавлять неопределенное количество вкладок со сложной разметкой (кнопки, надписи, таблица). Описывать весь интерфейс программно трудоемко, да и неправильно на мой взгляд задавать в коде отступы, цвета и т. п. Сейчас примерно делаю так:

tab.glade:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
    <requires lib="gtk+" version="3.0"/>
    <object class="GtkBox" id="box">
        <!-- 7 КБ вырезано -->
    </object>
</interface>

Код:

def get_id(elem_id, order_id):
    return 'order_{0}_{1}'.format(order_id, elem_id)


def add_from_file(builder, filename, order_id):
    prefix = get_id('', order_id)
    xml_str = get_file_contents(filename)
    xml_str = xml_str.replace('id="', 'id="{0}'.format(prefix))
    builder.add_from_string(xml_str)


builder = Gtk.Builder()
builder.add_from_file('main_window.glade')
for order_id in orders:
    add_from_file(builder, 'tab.glade', order_id)

Это говнокод? Какие есть человеческие способы?

 ,

metrokto ()

Изменение размера VBox в DeaDBeeF

Не могу нагуглить, можно ли в этом плеере изменить размеры кусков VBox.
Они всегда распределяются равномерно?

Можно использовать «Разделитель (верх и низ)», но его размеры можно изменить не в режиме дизайна, что ввергает меня в обсессивно-компульсивный невроз с навязчивыми попытками ресайза как было.

 

metrokto ()

Как дебажить Angular?

Гадит он в консоль вот этим:

"Error: [$parse:syntax] http://errors.angularjs.org/1.3.14/$parse/syntax?p0=%2C&p1=is%20an%20unexpected%20token&p2=3&p3=id%2C%20item&p4=%2C%20item
M/<@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:6:410
ib.prototype.throwError@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:190:159
ib.prototype.parse@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:189:1
Oe/this.$get</<@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:110:183
g@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:88:262
P@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:67:45
W@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:54:47
ba@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:390
ba@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:52:90
F@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:49:434
y@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:61:28
ba@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:418
ba@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:52:90
ba@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:52:90
ba@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:52:90
ba@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:52:90
ba@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:52:90
F@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:49:434
tc/d/</<@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:18:4
Pe/this.$get</l.prototype.$eval@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:125:294
Pe/this.$get</l.prototype.$apply@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:126:1
tc/d/<@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:17:477
e@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:36:306
tc/d@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:17:459
tc@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:18:172
@http://localhost:9000/item.js:1:266
a@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:163:399
lf/c@http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:32:349
"

На http://localhost:9000/item.js 266 символ — это 'app':

/*jslint browser: true, devel: true */

'use strict';

(function (document, angular) {
    var module = angular.module('app', ['common']);

    function itemCtrl($scope, cart) {
        $scope.cart = cart;
    }

    module.controller('ItemCtrl', ['$scope', 'cart', itemCtrl]);
    angular.element(document).ready(function () {
        angular.bootstrap(document, [/* --> */ 'app']);
    });

}(document, window.angular));

По ссылке сообщают что-то невнятное:

Syntax Error: Token ',' is an unexpected token at column 3 of the expression [id, item] starting at [, item].

Как разбираться, что не так? Не в этом случае, а вообще.

 

metrokto ()

Magic Trackpad

Пользуется кто-нибудь в линуксе (не Ubuntu)? В частности интересует что работает, а что нет.
Если все плохо, то какие достойные есть альтернативы?

 , , ,

metrokto ()

Модификация запроса в Restify

restifyServer.post('/some', function create(rq, rs, next) { /*...*/ });
restifyServer.put('/some/:id', function modify(rq, rs, next) { /*...*/ });

Есть обработчик create создающий айтем и возвращающий его ID.
Есть обработчик modify обновляющий айтем.
Если при создании были переданы необязательные характеристики айтема, то их нужно установить.

Мысль такова: айтем создается методом POST, затем запрос модифицируется в PUT и снова передается роутеру.

Как такое возможно (если возможно) в Restify без создания клиента?

 , ,

metrokto ()

Смена раскладки на время удержания CapsLock

В Gnome 2 такая опция была из коробки.

Потом появился Gnome 3 и я перешел на dwm. В нем было все проще:

#~/.dwm/autostart.sh
setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_switch,grp_led:scroll,compose:menu"

Сейчас нужно настроить Gnome 3.14 (который вызывает уже не столь сильное отвращение). В настройках такой возможности нет, нагугленный костыль -

#~/.config/autostart/kb.desktop

[Desktop Entry]
Type=Application
Name=LayoutSwitcher
Comment=Switch keyboard layout
Exec=setxkbmap -layout "us,ru" && setxkbmap -option "grp:caps_switch,grp_led:scroll,compose:menu"
OnlyShowIn=GNOME;
X-GNOME-Autostart-Phase=Application
- работает несколько минут, потом какой-то демон (или х. з. кто там) сбрасывает эти установки на настройки гнома.

Как победить?

 , ,

metrokto ()

Почему не работает Angular?

Беру пример с angularjs.org:

<!doctype html>
<html ng-app>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js"></script>
    </head>
    <body>
        <div>
            <label>Name:</label>
            <input type="text" ng-model="yourName" placeholder="Enter a name here">
            <hr>
            <h1>Hello {{yourName}}!</h1>
        </div>
        <script>
            // Убеждаюсь, что DOMContentLoaded случается
            document.addEventListener("DOMContentLoaded", function(event) {
                alert("DOM fully loaded and parsed");
            });
        </script>
    </body>
</html>
Сохраняю, открываю в любом браузере (Ctrl+o) — не работает, в консоле JS пусто.

 

metrokto ()

Залогиниться под рутом в скрипте

Есть удаленный компьютер под Debian Wheezy, на котором:

  • нет ssh,
  • не настроен sudo,
  • у su нет опции -S,
  • остутствует expect и pexpect,
  • при загрузке обновляется репозиторий git и из него выполняется определенный скрипт на Python 3.

Возможно ли с такими ограничениями выполнить определенные действия от рута питоном или создав bash-сценарий и запустив его?
В частности нужно создать правило udev.

 , ,

metrokto ()

Вопрос о реле

Есть у меня реле TRB-5VDC-SB3-CD со следующими характиристиками:

Максимальное коммутируемое постоянное напряжение: 30 В
Максимальный коммутируемый постоянный ток: 3 А
Максимальное коммутируемое переменное напряжения (cosf*1): 125 В
Сопротивление изоляции: 100 МОм
Материал контактов: сплав серебра

Выйдет ли оно из строя, если коммутировать им потребителя на 220 В, 0.37 А (переменный ток)?
Напряжение конечно выше, чем то на которое рассчитано реле, зато ток значительно меньше...

Перемещено leave из talks

 ,

metrokto ()

Эмуляция x86 на Cubieboard2

Есть ли что-нибудь, позволяющее запустить с минимальными накладными расходами ОС для архитектуры x86 на Cubieboard2?

Можно в Cubian установить QEMU и запускать через него, но это слишком тяжеловесно.

 ,

metrokto ()

Как облудить провод в кабеле SATA?

Провода стального цвета, блестящие.
Пытался использовать в качестве флюса канифоль, СКФ, аспирин — не лудится. Чем одолеть?

 

metrokto ()

Пофиксить панель инструментов Gimp 2.8 или установить 2.6 в Wheezy

Анимированный скриншот (77 КБ)

В двух словах: дефолтным для Wheezy Gimp'ом пользоваться можно только после долгого перетаскивания границы панели.

Как можно исправить или установить 2.6 без хардкора?

 

metrokto ()

Не отображается иконка nm-applet в трее

Debian 7. Изначально с Gnome 3, потом dwm + systray patch.

При запуске nm-applet занимает место в трее и работает (открывает меню при нажатиях), но не отображает иконку.
При запуске второй копии nm-applet обе иконки появляются:

$ nm-applet &
#иконки нет
$ nm-applet &
#обе иконки отображаются
$ killall nm-applet
#убиты
$ nm-applet &
#иконки снова нет

Единственное нагугленное решение установить NoDisplay=false в /etc/xdg/autostart/nm-applet.desktop не помогает.

Что за?

 , ,

metrokto ()

Python 3: нарисовать и сохранить в файл

Есть Python 3, Debian 7 и необходимость рисовать линии и кириллические буквы, которые затем нужно сохранить в PNG/GIF/JPEG или PDF.
Чем можно рисовать так, чтобы не собирать необходимые библиотеки вручную?

 ,

metrokto ()

Настройка беспроводной сети в консоли

Для работы с консольной программой был приобретен нетбук.
Программа требует интернет-соединение, которое большую часть времени будет предоставляться встроенным 3G модемом.

В модем может быть вставлена SIM-карта другого оператора, также нужна возможность подключения через WiFi.

Из-за одного лишь NM ни как не хочется ставить иксы.
Каким способом можно организовать дружественную для пользователя настройку?

 , ,

metrokto ()

yum --no-install-recommends

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

В aptitude --no-install-recommends, а yum'е такого нет.

 ,

metrokto ()

Не запускается Slim

Установил Федору 20, netinstall. Затем slim и openbox.
Создал /etc/sysconfig/desktop:

DISPLAYMANAGER=/usr/bin/slim-dynwm
Перезагрузил, а там опять консольное приглашение.
Других инструкций не нагуглил. Что еще нужно?

 ,

metrokto ()

Размонтирование usb-носителей

Сейчас у меня так:

KERNEL!="sd[b-z][0-9]", GOTO="exit"
IMPORT{program}="/sbin/blkid -o udev -p %N"
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
ACTION=="add", RUN+="/bin/mkdir -p '/media/%E{dir_name}'", RUN+="/bin/mount -o sync,rw,users /dev/%k '/media/%E{dir_name}'"
ACTION=="remove", RUN+="/bin/umount -l '/media/%E{dir_name}'", RUN+="/bin/rmdir '/media/%E{dir_name}'"
LABEL="exit"

Нажатие кнопки отмонтирования в ФМ не работает:

umount: /media/TVDisk is not in the fstab (and you are not root)
Флешки работают нормально, а вот плеер монтируется, только в RO.

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

 

metrokto ()

system ($cmd, $ret) // $ret обманывает

file_name/$fname — файл с заведомо некорректным (с т. з. JSLint) js.

PHP:

$options = '--onevar true --white true --plusplus true --nomen true --regexp true --continue true --browser true --passfail false';
$patt = "/usr/local/bin/jslint $options %s";
$cmd = sprintf ($patt, $fname);
system ($cmd, $ret);
var_dump ($ret); // int(0)
Bash:
/usr/local/bin/jslint --onevar true --white true --plusplus true --nomen true --regexp true --continue true --browser true --passfail false file_name
echo $? #1

Почему так? В других случаях system работает нормально.

 , , ,

metrokto ()

RSS подписка на новые темы