LINUX.ORG.RU

40
Всего сообщений: 1665

Facebook ищет full-time разработчиков чтобы разрабатывать компилятор и стандартную библиотеку Rust

https://www.reddit.com/r/rust/comments/jfkmxo/facebook_is_hiring_a_team_to_work_on_the_rust/

We’ll be working on the whole stack. From frontend, to codegen, libraries and tools, to make sure that Rust is able to handle the massive Facebook scale. I know of specific bugs and issues, but we don’t have a clear roadmap yet.

 ,

vertexua ()

VPN WireGuard Open source UI GTK

Искал плагин под Xfce для WireGuard, так ничего нормального и не нашел. Набросал свой на скорую руку, правда python 2, но работает стабильно. На тройку что-то никак не перепишу, да не оформлю в GitHub, может здесь кому-то пригодится пока:

#!/usr/bin/python
#coding=utf-8

# RUN: sudo ./vpnwidget.py wg0-client

import gtk, json, urllib2, socket, sys, os, subprocess
import netifaces as ni

class VPNWidget:
    def __init__(self):
        self.VPN_INTERFACE_NAME = sys.argv[1]
        self.vpn_state = "down"
        self.tray = gtk.StatusIcon()
        self.tray.connect('popup-menu', self.on_right_click)
        self.get_info()

    def get_info(self):
        ipaddr = socket.gethostbyname(socket.gethostname())
        gateway = realip = city = country = " - "
        
        vpn_state_path = '/sys/class/net/' + self.VPN_INTERFACE_NAME
        self.vpn_state = "down"

        if os.path.exists(vpn_state_path):
            self.vpn_state = "up"
            self.tray.set_from_stock(gtk.STOCK_CONNECT) 
            vpn_state_text = "Подключен"
        else:
            self.tray.set_from_stock(gtk.STOCK_DISCONNECT) 
            vpn_state_text = "Отключен"

        try:
            gw = os.popen("ip -4 route show default").read().split()
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            s.connect((gw[2], 0))
            ipaddr = s.getsockname()[0]
            gateway = gw[2]

            try:
                url = 'http://ipinfo.io/json'
                response = urllib2.urlopen(url)
                data = json.load(response)

                realip = data['ip']
                city = data['city']
                country = data['country']

            except:
                self.notify_message("ОШИБКА :: Проблемы с Интернетом")

        except:
            self.notify_message("ОШИБКА :: Проблемы с интерфейсом")

        vpn_ipaddr = ""

        if self.vpn_state == "up":
            vpn_ipaddr = ni.ifaddresses(self.VPN_INTERFACE_NAME)[ni.AF_INET][0]['addr']

        result = ("VPN: " + vpn_state_text
                + "\nЧастный IP: " + ipaddr + ((", " + vpn_ipaddr) if vpn_ipaddr else "")
                + "\nШлюз: " + gateway 
                + "\nПубличный IP: " + realip 
                + "\nГород: " + city + " (" + country + ")")

        self.tray.set_tooltip((result))
        self.notify_message(result)

        return result

    def notify_message(self, message):
        subprocess.Popen(['notify-send', message])
        return
        
    def on_right_click(self, icon, event_button, event_time):
        self.make_menu(event_button, event_time)

    def make_menu(self, event_button, event_time):
        menu = gtk.Menu()

        # Меню <Подключиться>
        item_up = gtk.ImageMenuItem(gtk.STOCK_CONNECT)
        item_up.show()
        menu.append(item_up)
        item_up.connect('activate', self.run_vpn_up)

        # Меню <Отключиться>
        item_down = gtk.ImageMenuItem(gtk.STOCK_DISCONNECT)
        item_down.show()
        menu.append(item_down)
        item_down.connect('activate', self.run_vpn_down)

        # Включаем/отключаем доступность пункта меню
        if self.vpn_state == "up":
            item_up.set_sensitive(False)
            item_down.set_sensitive(True)
        else:
            item_up.set_sensitive(True)
            item_down.set_sensitive(False)

        # Меню <Обновить>
        item_refresh = gtk.ImageMenuItem(gtk.STOCK_REFRESH)
        item_refresh.show()
        menu.append(item_refresh)
        item_refresh.connect('activate', self.refresh_info)

        # Меню <О программе>
        item_about = gtk.MenuItem("О программе")
        item_about.show()
        menu.append(item_about)
        item_about.connect('activate', self.show_about_dialog)

        # Меню <Выход>
        item_quit = gtk.ImageMenuItem(gtk.STOCK_QUIT)
        item_quit.show()
        menu.append(item_quit)
        item_quit.connect('activate', gtk.main_quit)

        menu.popup(None, None, gtk.status_icon_position_menu,
                   event_button, event_time, self.tray)
    
    def run_vpn_up(self, widget):
        # Подключение
        os.system('wg-quick up ' + self.VPN_INTERFACE_NAME)
        self.get_info()

    def run_vpn_down(self, widget):
        # Отключение
        os.system('wg-quick down ' + self.VPN_INTERFACE_NAME)
        self.get_info()

    def refresh_info(self, widget):
        self.get_info()

    def show_about_dialog(self, widget):
        about_dialog = gtk.AboutDialog()
        about_dialog.set_destroy_with_parent(True)
        about_dialog.set_icon_name("VPNWidget")
        about_dialog.set_name('VPNWidget')
        about_dialog.set_version("1.0")
        about_dialog.set_copyright("(C) 2020 Денис Ткаченко")
        about_dialog.set_comments(("Программа для управления VPN (WireGuard)"))
        about_dialog.set_authors(['Денис Ткаченко <d.tkachenko88@yandex.ru>'])
        about_dialog.run()
        about_dialog.destroy()

if __name__ == "__main__":
    VPNWidget()
    gtk.main()

Просто, не знаю когда руки дойдут, чего добру пропадать, верно? :) Кстати, на ЛОР-е не хватает руководства по настройке этой замечательной штуки (WireGuard).

P.S. Используя мой скрипт, естественно, не запускайте WireGuard на клиенте в качестве сервиса. Он работает с командами wg-quick up/down, иконка программы помещается в трей, все действия с контекстного меню. Неделю пользуюсь - полет нормальный. Всем добра!

P.P.S. [АВТОЗАПУСК] Т.к. wg-quick требует прав root, то я для себя по простому закинул скрипт в автозагрузку и дал только ему права в sudoers. Есть, конечно, и другие варианты автозапуска, озвучил самый простой.

 , , ,

Stack77 ()

Помощь с иконками

Я сделал логотип для проекта MNTm: https://imgur.com/a/QL8xuo4 https://m.vk.com/wall-195222526_53

Мне нужна помощь с иконками. Нужно сделать иконку этого логотипа так, чтобы во всех размерах хорошо смотрелась.

P. S. Роза - это иконка

 ,

ConLenov ()

NVFS новая fs от RedHat

Инженеры из RedHat разрабатывают новую файловую систему для постоянной памяти NVFS. Это память на чипах сочетающих производительность ОЗУ с возможностью постоянного хранения содержимого, не теряющегося после прекращения подачи энергии.

По сути это новая FS идет как замена : NOVAFS https://en.wikipedia.org/wiki/NOVA_(filesystem)

Обсуждение NVFS в рассылке ядра : https://lore.kernel.org/lkml/alpine.LRH.2.02.2009140852030.22422@file01.intranet.prod.int.rdu2.redhat.com/

Подробности

Перемещено alpha из redhat

 ,

mx__ ()

Как работает облако в Nextcloud?

Недавно узнал о таком сервисе как Nextcloud. Заинтересовал меня NC исключительно как open-source облако, не более, без гиковских заморочек с поднятием собственного сервера. Дружелюбием здесь и не пахнет. Зарегистрировашись через мобильное приложение, я не мог понять каким образом мне авторизоваться теперь в десктопном клиенте. Методом тыка нашёл какой-то адрес https://nc.nl.tab.digital/ и догадался, что это одна из частей NC (его сервер), через который нужно авторизовываться. И собственно вопрос. Неужели мне где-то нужно сохранять этот адрес (вместе с логином и паролем), чтобы в дальнейшем авторизовываться с каких-либо устройств в своём облачном хранилище? Объясните, пожалуйста, как это всё работает и как с этим по-человечески взаимодействовать, если это возможно.

 ,

Maxsize ()

Google решил изготовлять опенсорсные микросхемы

 , ,

kecalkoatl ()

Qt5, приплыли?

добрый день

за новостями не слежу, был немного удивлен:

http://download.qt.io/official_releases/qt/5.15/5.15.0/OFFLINE_REAMDE.txt

Due to The Qt Company offering changes, open source offline installers are not available any more since Qt 5.15. Read more about offering changes in the https://www.qt.io/blog/qt-offering-changes-2020 blog.

If you need offline installers, please consider our new Qt for Small Business offering: https://www.qt.io/blog/available-now-qt-for-small-businesses

ваше мнение, комменты...

спасибо

 , ,

sunjob ()

Всё, что нужно знать про OpenSource в 2020 году

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

Все суперкомпьютеры из списка TOP500 работают на Linux

Linux используется на рабочих станциях в поражающих масштабами проектах: LHC, ISS

Проекты под свободными лицензиями используются везде: от автоматизации серьёзных предприятий (например, контроллеры Siemens) до геймдева (в хите от Гения, Death Stranding, есть пункт «Open Source Licenses»)

В свободном офисном пакете LibreOffice, в диалоге выбора файлов нет кнопки «назад»

 , , , ,

GOMO88 ()

ProtonVPN теперь можно скачать в F-Droid

Теперь клиент ProtonVPN можно скачать из репозитория F-Droid вместо Google. Это была одна из самых популярных просьб пользователей. F-Droid является крупнейшим репозиторием свободного ПО для Android, и позволяет скачивать и ставить программы без регистрации аккаунта в Google. Ранее все клиенты ProtonVPN были полностью открыты и прошли независимый аудит безопасности.

Подробности

Перемещено alpha из opensource

 , , , ,

anonymous ()

Лучший криптовалютный кошелек под линукс

Подскажите лучший криптовалютный кошелек под линукс.

 ,

MOXHATKA ()

А что есть по настоящему свободного с байткодом?

САБЖ. Я про ЯП. Java это проприетарщина + непонятки с лицензией (Oracle там всё с гуглом за жаба API судится), OpenJDK есть, но всё же, .NET это вообще M$ (хоть кусок открыли без GUI и на том спасибо). А что есть от GNU?

 , ,

peregrine ()

OpenBSD 6.7 выйдет 19 Мая

 , ,

kookoo ()

краудфандинг для опенсорса

Порекомендуйте ресурс для краудфандинга. Kickstarter и Indiegogo как ни странно не поддерживают мою страну (Польша).

А остальные, которые я встретил,— не поддерживают опенсорс.

Сферы вероятных проектов — солнечная энергетика и эргономика.

 , , ,

cvv ()

Проект MNTm

Мне нужна финансовая помощь в портировании taskmgr.exe из Windows 10 на все платформы за счёт открытого исходного кода. Проект называется «MNTm» (M is Not Task Manager) Если поступят финансы на разработку этой программы, то на эти финанся я наймe программиста-фрилансера для того, чтобы он мне помог в разработке.

Мои наработки из этого проекта: https://github.com/ConLenov/MNTm

 ,

ConLenov ()

Открытый гигабитный коммутатор на KSZ9563 и SAMA5D36

Привет,

нашёл тут гигабитный коммутатор (чип) KSZ9563 на три порта и подумал что круто было бы примотать к его RGMII какой-нить процессор вроде SAMA5D36 (как и советует микрочип) с одной стороны, а с другой - сразу разъёмы под RJ-45 на два порта так как там PHY встроен.

Один из классных вариантов применения - зеркалирование трафика на 3 порт (к SAMA5D36) для всякого логирования/анализа. Мне бы по работе пригодился бы например. Но загвоздка в том, что микрочип уже сделали очень похожую отладочную плату только на 5 портов на похожем чипе.

Вопрос в том, стоит ли заморачиваться и делать своё. Может быть стоит так как, во-первых, два порта хватит для небольшого устройства основная задача которого логировать трафик. Во-вторых, возможно снизить цену готового устройства за счёт выбора более подходящего процессора и уменьшения памяти (64 MiB RAM бы хватило, думаю). В-третьих, выложить все наработки для DIY открыто (для отладочной платы принципиальная схема есть, герберы есть, но я не уверен что всё это дело можно использовать свободно).

А что думает ЛОР?

 , , , ,

dsl ()

А какая у вас opensource электронная очередь?

Привет. Мне предложили внедрить электронную очередь (далее ЭО) в поликлинике за умеренную плату. Я пока не согласился, потому что эта тема для меня новая, но возможность внедрить opensource решение и заработать на этом меня мотивирует искать решение.

Вкратце, задача аналогична сбербанковской очереди:

  1. В инфомате выбираем категорию «какой кабинет» и получаем талон с номером. Талон может выдать/заменить и регистратор со своего инфомата.
  2. Есть нескольких больших табло в регистратуре и холлах этажей, в 20-30 записей, где показывается настраиваемая очередь (например только талоны в кабинеты терапевтов) в виде таблицы: талон - кабинет
  3. Над кабинетами табло в 3-5 строк с номерами талонов которые сейчас/будут обслуживаться
  4. Звуковое сопровождение у больших табло общее/настраиваемое, у кабинетных - локальное.
  5. У каждого кабинета должна быть возможность простого управления своим потоком талонов - пропустить, удалить и кнопка следующий. А также перевод талона на другой кабинет.
  6. Наверняка есть много нюансов, о существовании которых я не догадываюсь, поделитесь своими мыслями/советами.

Всё железо есть, осталось выбрать софт и сделать людям удобно.

Что используется у вас, какую ЭО вы бы внедрили сами?

 ,

Perspective ()

Vulkan

Какие книжки надо прочитать, чтобы понять, как программировать для Vulkan API на языке C?

В генте, какие пакеты надо промёржить? https://wiki.gentoo.org/wiki/Vulkan

Правильно ли я понимаю, что это API должно реализовываться в двух местах - как модуль ядра (как он называется?) и как часть библиотеки mesa?

меня, разумеется, не интересуют всякие там блобы, я хочу всё опенсорсное.

 , ,

Einstok_Fair ()

Помощь в выборе системы управления документами (DMS)

Требования к системе:

  • open source
  • self-hosted
  • веб-интерфейс
  • возможность создания шаблонов. То есть документов с «переменными», которые заполняются позже, и из этого формируется документ. Например, как в Docassemle.
  • уровни прав пользователей
  • история изменений документов
  • почтовые уведомления
  • возможность делать отметки (утверждение/отклонение).
  • хорошая документация (можно на английском).

 , ,

acc4all ()

Как геймдевелоперам зарабатывать на играх с открытым кодом?

Хотел бы обсудить потенциальные варианты заработка на свободных играх (свободный код, графика, сценарий). Как это осуществимо в рамках модели GPL, opensource / free-software? Продавать через стим и подобные ресурсы дистрибуции, но это почти тоже самое, что донейт. Kikstarter и подобное не предлагать.

Можно ядро сделать открытым и фигачить проприетарные аддоны. Что тоже не очень. Еще варианты?

 , , ,

alienclaster ()

Основной PHP Разработчик

Описание вакансии

Условия работы

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

Что мы хотим

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

Вам предстоит

Писать новый код; Рефакторить уже написанный код; Участвовать в code-review; Придумывать и обсуждать принимаемые архитектурные решения; Участвовать в обсуждении идей; Масштабировать проекты под нагрузку.

Необходимые навыки

Квалификация уровня уверенный Умение работать в команде Ответственность, инициативность PHP как основной язык минимум 1 год Умение писать понятный, безопасный, комментируемый код Умение писать код, в соответствии с правилами оформления Уверенное владение git и *nix-консолью Понимание, как работает MySQL под нагрузкой; Быстро разобраться с новым фреймворком, библиотекой или чужим кодом и браться за проект на любой его стадии.

Будет плюсом, если ты Знаком с JavaScript, Bootstrap Уверенная работа в Linux, как в основной OS

Наш стек технологий php (7+) HTML5/CSS git mysql/mongo Apache2/Nginx

Бонусы Помощь в переезде иногородним Корпоративное рабочее оборудование Премии за достижение результатов

Дополнительные инструкции

Пришлите нам письмо на адрес tech@wwood.dev или отклик к вакансии здесь.

Приложите ваше резюме, а также примеры вашего кода. Ссылки на github/bitbucket/gitlab приветствуются.

 , , ,

WhiteWood ()