LINUX.ORG.RU

Сообщения Spectator

 

Загнать трафик, поступающий на IP в VPN

Форум — Admin

Преамбула: я не силен в терминологии и хочется странного, но почти уверен, что это возможно.

В сети (192.168.1.0/24) есть домашний сервер (192.168.1.2), которому я хочу выдать дополнительный адрес (192.168.1.3) и использовать его как роутер в VPN. Все нужно, естественно, для борьбы с блокировками и раньше этим занимался непосредственно роутер, но у него какие-то проблемы с хардварным офлоадингом и wireguard. Поэтому хочется вынести подключение к VPN на отдельное устройство и гнать нужный трафик через него.

У меня пока получалось только заставить сервер просто маскарадом делиться интернетом, либо отправлять весь трафик, в том числе свой собственный через VPN.

Собственно вопрос - можно ли это сделать? В какую сторону копать? Есть ли офигенно простой способ настроить это через networkd?

 

Spectator
()

Апгрейд офисной техники - стоит ли внедрять VDI

Форум — Admin

Дано - небольшая IT-фирма, офис ±4 человека. Вся техника до 2013 года выпуска, что начинает сказываться. Роли следующие:

Фронтенд (верстка, жс) - сейчас сидит за MacMini late 2012, MacOS - вынужденная мера из-за отладки интерфейсов в safari. Основной инструмент - webstorm.

2x бекенд разработчики (python) - ПК разной конфигурации i3 и i7, 12-16 Гб памяти. Специфика работы включает периодическую работу с большими наборами данных, оперативка лишней явно не бывает. Инструментарий - pycharm, jupyter.

Техподдержка/аккаунт-менеджер - ПК с windows на i3, попытки пересадить были, но успехом не увенчались.

Основная идея состоит в том, что потребности верстальщика и техподдержки ниже, чем у разработчиков, а у тех, в свою очередь, использование ресурсов тоже эпизодическое. Если стоимость компьютера для разработки по моей оценке составит 25-30 тысяч, то есть ли смысл закупить сервер и виртуализировать рабочие места?

Вопросы собственно следующие:

  1. Целесообразно ли вообще это делать для четырех рабочих мест?
  2. Какие решения есть, какие советуете использовать и сколько они будут стоить?
  3. Можно ли вообще виртуализировать MacOS?

 

Spectator
()

Wayland и eGPU

Форум — Desktop

Протестил на конфигурации друга работу ноутбука с GTX 1060, подключенным через akitio thunderbolt адаптер - рай, сказка, всё хорошо, но вопрос не в этом.

Для X-ов определение основной видеокарты выполняется через настройку PrimaryGPU, которая для арча прописана в 10-nvidia-drm-outputclass.conf:

/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf

Section "OutputClass"
    Identifier "intel"
    MatchDriver "i915"
    Driver "modesetting"
EndSection

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "PrimaryGPU" "yes"
    ModulePath "/usr/lib/nvidia/xorg"
EndSection

Если я правильно понимаю, то X сервер при запуске находит несколько GPU, и если один из них nvidia, то он и считается главным для любого устройства вывода.

А как с этим будет работать wayland? Не смог нагуглить ни «wayland egpu», ни конфигов weston, которые отвечали бы за выбор устройства (в арчвики есть упоминание нескольких выводов и косвенное упоминание нескольких карт, но не более).

Гугл говорит, что wayland на данный момент не поддерживает гибридную графику, но опять же - это не гибридная графика - всё запускается и работает на одном GPU, хотя и можно менять выход и возвращать изображение на экран ноутбука. В моём случае все запустилось и заработало без bumblebee, optimus или primus.

 

Spectator
()

DHCP клиент и сервер на одном интерфейсе

Форум — Admin

Работаю над устройством для клиента (raspberry pi с несколькими модулями), для простоты подключения хочу сделать следующее:

На одном единственном интерфейсе малинки поднять dhcp-сервер - на случай, если пользователь подключит её напрямую к компьютеру, и dhcp-клиент - если она подключается к роутеру. Это всё нужно для доступа к веб-интерфейсу, через который пользователь будет играться с настройками.

По-идее, ничего сложного нет, но хочу заранее узнать, насколько это плохая идея? Не устроит ли такое устройство анархию в сети, будучи подключенным к роутеру клиента? Как будет себя вести dhcp-клиент, имея на интерфейсе захардкоденный адрес и адрес, полученный от роутера?

 ,

Spectator
()

Как заставить устройство инициировать bluetooth pairing?

Форум — Development

Пишу утилиту для синхронизации дешевого китайского фитнес-трекера. Расковырял исходники мобильного приложения, более-менее разобрался в принципах работы: ищет устройство с заданным SPP UUID, подключается к нему через RFCOMM и дальше уже просто RPC. Проблема следующая - при попытке подключения bluez генерирует пин, который нужно ввести на устройстве с тремя кнопками, одна из которых - выключение. При синхронизации с андроидом трекер сам генерирует пин и ввести его нужно уже на телефоне. Собственно вопрос - как при pairing'е указать, что код должен быть сгенерирован на другой стороне и можно ли это вообще?

 ,

Spectator
()

Непонятный китайский проц

Форум — Talks

Искал CPU на замену в свой ноут с PGA988 и наткнулся на такое чудо: http://www.ebay.com/itm/On-Sale-Intel-Core-i5-420M-420-2-13Ghz-3MB-PGA988-Mob...

Ъ: Intel Core i5 420m

Ближайшее, что выдает офсайт интела - Intel® Core™ i5-460M, 420M не находит. На других ресурсах этот процессор есть, но помечен как «This part is an engineering sample.».

Собственно, что тут происходит? Китайские производители решили оставить себе чертежи пробного проца и запустили массовое производство? Есть ли смысл покупать его?

 

Spectator
()

А вы используете меню приложений?

Форум — Talks

По какой-то непонятной причине krunner умер и отказался воскресать. И в этот момент я понял, что понятия не имею, в каком разделе запрятан konsole, sublime text и hipchat. Затем я попытался вспомнить, когда вообще последний раз использовал это меню и не смог.

В Unity есть линзы, в макоси - spotlight, у меня - сломанный krunner. Для меня, наверное, больше не существует этого древовидного рудимента организации приложений. А для вас?

 

Spectator
()

Что использовать для администрирования?

Форум — Admin

Комплексный вопрос, поэтому такой мутный заголовок.

Я работаю в компании, которая занимается SaaS-решениями. Со стороны бекенда это выглядит как код на питоне (django, flask, прочая лабуда), запускаемый через uwsgi и тупо слушающий запросы от клиентов. Каждое клиентское приложение (просто процесс, ассоциированный с определенным клиентом) запускается с отдельными переменными окружения, может иметь чуток разные настройки. Основными задачами являются:

  • Деплой нового кода
  • Поднятие приложений для новых клиентов
  • Мониторинг (логи, ошибки, статистика)

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

Периодически поддержка этого сервиса становится сложной и я задумываюсь о переезде на что-нибудь новомодное. Сейчас читаю про решения Canonical (Juju, LXD, Snappy) и те, с которыми они связаны (Docker, OpenStack), но из-за слишком большого количества маркетингового булшита не могу понять, нужны они мне или нет.

По частям:

  • Docker

    Насколько я понимаю, его основными плюсами считаются контейнеризация и контроль зависимостей в одном пакете. Имея более 500 приложений, насколько будет велик оверхед запуска каждого из них в контейнере?

  • OpenStack

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

  • Juju

    Выглядит как оркестрировалка сервисов для ленивых. Тот же вопрос: юзкейсы, зачем, почему, что делает лучше?

  • LXD

    LXC + REST API?

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

 , ,

Spectator
()

OpenWRT режет скорость.

Форум — Admin

D-Link DIR320 NRU (rev. b1), собрал на него OpenWRT из транка, т.к. заводская прошивка имеет привычку виснуть насмерть. Работает нормально, но даже в локальной сети провайдера, где раньше с заводской прошивкой было 90-95 мегабит, теперь только 60-70.

На какие параметры конфигурации смотреть в первую очередь? Дополнительных сервисов на роутере нет (samba, торренты, веб-сервер, etc.).

 

Spectator
()

Практика использования Landscape

Форум — Admin

Подключил на сервера триал landscape. Сервера всего четыре, пока справлялся с администрированием и без него, хотелось бы сразу узнать - кто-нибудь ощутил глобальную пользу от этого сервиса? Денег он стоит относительно немалых, дикой необходимости в нем я пока не испытываю.

Есть ли какие-нибудь истории успеха, связанные с landscape?

 ,

Spectator
()

Как графически отобразить структуру JSON/BSON?

Форум — Talks

Время оформлять отчет по дипломной работе, а у меня проблема: не могу найти способ наглядного и более-менее стандартного отображения структуры BSON. Все нормальные люди, использующие реляционные базы данных, засунули в отчет типичную uml database диаграмму, а мне она что-то нифига не подходит. Например, как отображать списки?

Единственное, что нашел - это, только это больше походит на творческую самодеятельность, чем на общепринятый метод.

Spectator
()

Как убрать пустую страницу перед \chapter?

Форум — Desktop

Формат документа [a4paper,12pt,oneside]{report}, на stackoverflow говорят, что должен помогать либо oneside, либо openany, но ни тот, ни другой не помогает. Пробовал переопределить команду, убрав \clearpage и \cleardoublepage - все ожидаемо, глава начинается сразу после текста.

По-идее, в оригинале команды выполняется проверка на формат документа, а потом вызывается уже либо \clearpage, либо \cleardoublepage. Но дело в том, что ведут они себя одинаково - переносят главу на страницу с четным номером. Аналогичным образом себя ведет \pagebreak.

Собственно, что я делаю не так?

 

Spectator
()

Изменить переменные окружения «на лету»

Форум — Development

Вообще, возможно ли? При создании процесса передаю ему модифицированную копию системных переменных, но возникает необходимость «обновить» их во время работы процесса.

Для подробностей - запускаю uwsgi как мастер-процесс для нескольких воркеров, которые в свою очередь, берут часть настроек из os.environ. Когда возникает необходимость обновить их, можно послать SIGHUP, это выполнит плавный перезапуск. Но вот настройки останутся те же. Поэтому текущее решение - убивать процесс целиком и запускать заново, с новым окружением.

 ,

Spectator
()

Вспомнил былую историю

Форум — Talks

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

Сейчас вспомнил и задумался - что вообще с ним такое могло произойти? Тупо полетел контроллер и выдавал магию, или это проделки NSA и их бэкдоры пытались проникнуть в систему?

Spectator
()

Что делать, когда ForeignKey всё-таки нужен?

Форум — Development

Рассматриваю возможность переноса одного проекта в компании на нереляционную структуру данных. Есть следующий кусок структуры:

Услуга:
    Код (PK)
    Наименование
    Цена
    
Работа:
    Код (PK)
    Код услуги (FK)
    Цена (дублируется из услуги, иногда изменяется)
    
Материалы:
    Код (PK)
    Код работы (FK)
В текущей логике, сталкивались с некоторыми проблемами (в основном, из-за тупых клиентов): клиент, игнорируя предупреждение о том, что при удалении услуги, будут удалены все связанные с ней работы, жамкал по кнопке, а потом звонил, и требовал поднять бэкап (галочку "[x] пометить как неактивную" некоторые игнорируют).

В нереляционной модели, отношение 1:M у работы-материалов будет просто включено как поддокумент, т.е.

    Код (PK)
    Код услуги (FK)
    Материалы: {
        ...
    }
А вот отношение работы к услуге я представить пока не могу.

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

Если я правильно понимаю, каждый корневой документ в MongoDB имеет уникальный ключ _id, по которому было бы логично руками прописывать связь, без устроения FK. Но тогда, при удалении услуги, работа «ссылается» на несуществующий документ, что отчасти хорошо, так как не теряются данные, но плохо в том, что отсутствует информация.

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

Как решать подобные вещи? Очень сложно после SQL воспринимать данные как документы. По документации, подобная структура не очень одобряется.

 ,

Spectator
()

С каких пор хром и фаерфокс поменялись местами?

Форум — Talks

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

Я конечно пропустил большую часть срачей FF vs Chrome, но точно помню, что это лис тёк по памяти, а не наоборот. Я был неправ?

 браузеросрач

Spectator
()

Как заставить слушать на ipv6?

Форум — Development

Запускаю django через flup, связка fastcgi + lighttpd. В упор не могу заставить его висеть на ipv6 адресе,

gaierror: [Errno -2] Name or service not known
gaierror: [Errno -9] Address family for hostname not supported
На различных вариантах указания host=.

Это решаемо?

 , , flup

Spectator
()

Не могу забороть mysql

Форум — Development

В кратце, есть код на питоне

cur.execute("CREATE DATABASE `{0}` CHARACTER SET utf8 COLLATE "
                        "utf8_general_ci".format(db_name))
            cur.execute("CREATE USER '{0}'@'%' IDENTIFIED BY '{1}'".format(username, password))
            cur.execute("GRANT ALL PRIVILEGES ON {0}.* TO '{1}'@'%' WITH GRANT"
                        " OPTION".format(db_name, username))
            cur.execute("GRANT ALL PRIVILEGES ON {0}.* TO '{1}'@'localhost' WITH GRANT"
                        " OPTION".format(db_name, username))
            cur.execute("FLUSH PRIVILEGES;")
Который теоретически должен позволить username заходить через password с любого хоста, но раз за разом я получаю ошибки такого вида:
Access denied for user 'P3X7KA4YXI4F18B9'@'localhost' (using password: YES)

Что я делаю не так? Разве '%' не должен просто работать?

 

Spectator
()

Нуждаюсь в паре подсказок в плане проектирования и разработки

Форум — Development

Добрый день, господа программисты. Я собираюсь заняться разработкой системы, управляющей запуском множества проектов на django (в перспективе и других, если понадобиться), и у меня возникла пачка разных вопросов, а спросить в общем-то не у кого.

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

0. Язык разработки - python. Мои знания ограничены C/C++, C# и python, так что он. Имеет ли смысл для этих целей учить что-то другое? По своему опыту работы с django могу сказать, что питона скорее всего хватит с головой.

1. Утилита, занимающаяся управлением сервисами, будет написана на Tornado. В её обязанностях - запуск дочерних процессов через а fcgi, запуск lighttpd, mysql серверов. Для самой утилиты не предполагается наличие мощного веб-интерфейса, настраивать её буду через простенькие запросы с мастер-сервера. Подходит ли этот фреймворк для таких целей? У меня не предполагается сотен запросов в секунду, но и большими они не будут.

2. Поскольку никогда не занимался вопросами безопасности: слишком ли опасно каждому сервису подключаться к mysql через одного юзера? Базы у всех отдельные, теоретически к чужой базе сервис не подключится (а если и подключится, то просто продублирует сервис этой базы, не ломая ничего).

3. Хорошая ли идея: запускать django-fcgi на одной машине, а lighttpd, слушающий его на другой? Если делать так, частично сгладится проблема переноса сервиса с одной машины на другую, т.к. клиенту не надо будет чистить кеш dns и т.п., адрес сервиса останется прежним.

 , ,

Spectator
()

SmoothedAnimation срабатывает в неподходящий момент

Форум — Development

Имею qml следующего содержания:

import QtQuick 1.1

Rectangle {
    width: 4
    height: 4
    x: 0
    y: 0
    color: "black"
    property int posX: 0
    property int posY: 0
    onPosXChanged: x = posX - 2
    onPosYChanged: y = posY - 2
    radius: 2
    Behavior on posX { SmoothedAnimation { duration: 100 } }
    Behavior on posY { SmoothedAnimation { duration: 100 } }
}
Работаю с этим кодом через C++. В коде - анимация точки, которая должна появляться в A и следовать за B (координата B меняется). SmoothedAnimation должно возникать на изменении posX, что видно, если координаты устанавливать через обращение напрямую к x (i.e. a->setProperty(«x», pos.x());). Однако, если устанавливать стартовую координату через x, а затем через posX начинать перемещение, анимация начинается с 0,0 до стартовой координаты, а затем уже на новую. Почему так?

 , ,

Spectator
()

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