LINUX.ORG.RU

Избранные сообщения be_nt_all

Ветки Slackware

Форум — General

В чём отличие Slackel от обычной слаки, кроме того, что он current?

Я использую slackpkg+, sbopkg, slapt-get. Можно ли как-то с 14.2 свичнуться на ветку current или на пакетную базу Slackel?

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

 

teod0r
()

Смотрите, я тут супертемную тему для вима нарисовал

Галерея — Скриншоты

Ну точнее для neovim’а. Блин, болею, подумал чем бы заняться и изобразил вот это.

Забрать можно тут: https://github.com/neg-serg/neovim-colorschemes

 ,

e7z0x1
()

Представлен donate ― self-hosted сервис пожертвований на задачи

Новости — Open Source
Представлен donate ― self-hosted сервис пожертвований на задачи
Группа Open Source

Особенности:

  • KISS;
  • self-hosted;
  • отсутствие сборов (для примера, bountysource и gitcoin забирают себе 10% от выплаты);
  • поддержка множества криптовалют (на данный момент это Bitcoin, Ethereum и Cardano);
  • предполагается (и предусмотрена) поддержка GitLab, Gitea, и других Git-хостингов в будущем.
  • глобальный список задач со всех (то есть одного, на момент написания новости) инстансов на donate.dumpstack.io.

Механизм работы для GitHub со стороны владельца репозитория:

  • (опционально) необходимо развернуть сервис, можно использовать готовую конфигурацию для NixOS;
  • необходимо добавить GitHub Action — внутри вызывается утилита, которая сканирует задачи проекта и добавляет/обновляет комментарий о текущем состоянии кошельков для пожертвований, при этом приватная часть кошельков хранится только на сервере пожертвований (в будущем с возможностью вынести в оффлайн для крупных пожертвований, для ручного подтверждения выплаты);
  • во всех текущих задачах (и новых) появляется сообщение от github-actions[bot] с адресами кошельков для пожертвований (пример).

Механизм работы со стороны выполняющего задачу:

  • в комментарии к коммиту указывается, какую именно задачу этот коммит решает (см. closing issues using keywords);
  • в теле pull request указываются адреса кошельков в определенном формате (например, BTC{address}).
  • при принятии pull request выплата совершается автоматически.
  • если кошельки не указаны, либо указаны не все, то выплата средств для неуказанных кошельков совершается на кошельки по-умолчанию (например, это может быть общий кошелек проекта).

Безопасность:

  • поверхность атаки в целом небольшая;
  • исходя из механизмов работы, сервис должен иметь возможность отправлять средства самостоятельно, так что получение доступа к серверу будет означать контроль над средствами в любом случае — решением может быть только работа в неавтоматизированном режиме (например, подтверждение выплат вручную), которая вероятно (если проект будет достаточно успешен для того, чтобы кто-то задонатил на эту функциональность, то не вероятно, а точно) будет когда-то реализована;
  • критически важные части четко отделены (по сути, это единственный файл pay.go на 200 строк), тем самым упрощая security code review;
  • код прошел независимое security code review, что не означает отсутствие уязвимостей, но снижает вероятность их наличия, особенно в свете запланированной регулярности ревью;
  • также есть те части, которые не контролируются (например, API GitHub/GitLab/etc.), при этом возможные уязвимости в стороннем API планируется закрывать дополнительными проверками, тем не менее, в целом проблема в текущей экосистеме нерешаема и out of scope (возможная уязвимость с, например, возможностью закрывать чужие pull request и тем самым добавлять код в чужие проекты ― имеет гораздо более глобальные последствия).

>>> Подробности

 , , ,

anonymous
()

2020 опрос пользователей языка на сайте clojure.org

Форум — Development

На сайте кложи проводится ежегодный (?) опрос разработчиков https://clojure.org/news/2020/01/07/clojure-2020-survey.

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

 ,

alienclaster
()

Библиотека для распознавания русской речи на Android и Linux без сети

Новости — Мультимедиа
Группа Мультимедиа

Опубликована версия 0.3 библиотеки vosk для локального распознавания слитной речи, поддерживающая русский язык.

Для платформы Android подготовлен APK-пакет, а для Linux можно использовать Python-библиотеку (пример использования), производительности которой достаточно для работы на платах Raspberry Pi.
Библиотека работает на усовершенствованном движке Kaldi.
Языковая модель занимает всего 50Мб и работает точнее DeepSpeech (модель размером более 1Гб).
Поддерживаются языки: русский, английский, немецкий, французский, китайский. Ожидается поддержка испанского, хинди, арабского и португальского.

Источник

>>> Подробности

 

chukcha
()

Smalltalk - изучаем вместе

Форум — Development

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

Видео 1. Общие сведения

Краткая история, перечисление некоторых реализаций, общая суть некоторых принципов системы Смолток.

………………………………………………………..

Видео 2. Сообщества, книги, проекты.

Показаны русскоязычные сообщества по Smalltalk, в частности, группа в ВК. Сделан обзор архива с книгами, которые я нашёл в Сети и выложил на Гугл-диск. Рассказано о двух крупных проектах, которые использовали Smalltalk (FLProg и OpenCobalt). Расширенный список ссылок находится в описании к видео, непосредственно на Youtube

………………………………………………………..

Видео 3. Виртуальные машины.

В уроке кратко рассмотрены среды программирования Squeak, Pharo, и Dolphin.

………………………………………………………..

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

 , ,

Oleg_Kon
()

Релиз встраиваемой системы реального времени Embox v0.4.0

Новости — Open Source
Группа Open Source

8 января 2020 года вышел релиз встраиваемой системы реального времени Embox v0.4.0.

  • Добавлена частичная поддержка архитектуры RISC-V
  • Добавлен ряд поддерживаемых платформ в том числе и Байкал-Т
  • Переработаны несколько подсистем (USB, FS, ..)
  • Добавлена подсистема MMC
  • Добавлен ряд драйверов

>>> Подробности

 , , , ,

abondarev
()

ASCII игры по Linux

Форум — Games

Народ, кто нибудь знает ASCII игры под Linux(если точнее то под Ubuntu)? Про эти ваши Dwarf Fortress, NetHack я в курсе. Нужно больше... >:)

 ,

martin_blumen
()

Подскажите, какой сейчас самый практичный статический анализатор кода для С?

Форум — Development

Я всегда пользовал cppcheck но вдруг появилось чтото лучшее?

 , ,

cvv
()

Инструмент для обнаружения гонки данных?

Форум — Development

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

А теперь как мне проверить что это правильно работает?;-)

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

 , , ,

AntonI
()

Universal UI for Rust

Форум — Development

Доброго времени суток.

Примерно полгода назад, когда я начинал изучать Rust, я обнаружил в нем фатальный недостаток - отсутсвие крейта, который бы реализовывал удобный и кроссплатформенный UI. Хотелось поддержки Linux/Windows/MacOS/WASM-web/Android/iOS и удобства использования уровня Qt с их сигналами-слотами.

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

#[derive(UWidget)]
struct MyWidget {
    #[uwidget]
    layout: LinearLayout,

    #[public_slot] // у структуры будет публичный метод, через который слот будет доступен снаружи
    #[uprocess(on_text_updated)]
    slot_set_text: SlotImpl<String>,

    slotproxy_set_text: SlotProxy<String>,

    #[uprocess(on_button_clicked)]
    slot_button_clicked: SlotImpl<()>,
}

impl MyWidget {
    pub fn new(placeholder: String) -> MyWidget {
        let slotproxy_set_text;
        let slot_button_clicked = SlotImpl::new();

        let mut layout = LinearLayout::new(Orientation::Horizontal);
        layout.push_widget({
           let textedit = TextEdit::new(placeholder);
           slotproxy_set_text = textedit.slot_set_text().proxy();
           textedit
        });

        layout.push_widget({
            let mut button  = Button::new("Push me");
            button.signal_clicked().connect(&slot_button_clicked);
            button
        });

        return MyWidget{
            layout,
            slot_set_text: SlotImpl::new(),
            slotproxy_set_text,
            slot_button_clicked,
        };
    }

    fn on_text_updated(&self, s: String) {
        self.slotproxy_set_text.exec_for(s);
    }

    fn on_button_clicked(&self, _:()) {
        info!("button clicked!");
    }
}



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

pub fn new(placeholder: String) -> MyWidget {
    let layout = layout!(
        orientation: Horizontal,
        widget: text_edit!(
        	placeholder: placeholder,
        	slot_set_text: proxy!(slotproxy_set_text),
        ),
        widget: button!(
        	signal_clicked: connect!(slot_button_clicked),
        ),
    );

    return MyWidget{
        layout,
        slot_set_text: SlotImpl::new(),
        slotproxy_set_text,
        slot_button_clicked,
    };
}


Немного технических подробностей:
* Уже работает для Linux (Qt) и WASM (web-sys).
** В ближайших планах минимальная поддержка Windows/MacOS через Qt и поддержка Android (Java-jni, нативные виджеты).
** В среднесрочных планах поддержка нативных виджетов Win/Mac, поддержка iOS.
* Система сборки на build.rs-скриптах для cargo, которая позволяет из одних и тех же исходников собирать проект для любой платформы. Небольшой (2-5 строк) скрипт придется написать самому, используя готовые функции из библиотеки.
* В самой библиотеке есть еще Property, которые умеют хранить состояние и обладают встроенными сигналами/слотами. И немного других улучшалок.
* Никаких unsafe в интерфейсах для пользователя (внутри - только для работы с native-кодом).
* Никаких RefCell, Rc и прочих Arc в интерфейсах. Внутри их тоже практически нет, к релизу хочу выпилить совсем.


В основном вдохновлялся Qt, но изначально все писалось под web-sys, с последующим прикручиванием Desktop'а.


Тут хотелось бы обсудить 2 вещи (на самом деле 3):
1. Интересна ли вам такая библиотека.
2. Насколько удобным выглядит интерфейс.
3. Насколько Rust ущербен, порекомендуйте уже готовые библиотеки, и вот это вот все.

P.S. Буду держать вас в курсе, так что можете сразу ставить uniui тег в игнор.

 , , , uniui

trex6
()

beef - новый системный ЯП

Форум — Development

https://www.beeflang.org/

Особенности:

  • По заявлению автора, представляет собой смесь C++ и C#, с небольшими вкраплениями Rust.
  • Без GC, JIT и тому подобного.
  • Развивается параллельно с IDE (написана на самом beef и собственном тулките). Дизайн языка развивается с учётом удобства разработки IDE.
  • Автор делает упор на удобную отладку с помощью дебаггера, а не print.
  • Умеет все модные фичи: ADT, pattern matching, лямбды, дженерики, миксины, кортежи, опциональные типы и тд. Но не гарантирует null-safety.
  • Поддерживает рантайм рефлексию.
  • Не использует исключения. Используется тот же подход что и в Rust: Result + panic.
  • Проверяет проблемы с памятью в рантайме в отладочной сборке. В релизной сборке всё как в C/C++.
  • Предоставляет лёгкое взаимодействие с C/C++ кодом (не уверен в каком виде).
  • Основан на ворованном LLVM. Как будто кто-то сомневался.
  • Автор пилит язык последние 5 лет full-time.

Простой пример:

static Result<uint> GetMinusOne(uint i)
{
    if (i == 0)
        return .Err;
    return .Ok(i - 1);  
}

void Use()
{
    /* Handle result via a switch */
    switch (GetMinusOne(i))
    {
        case .Ok(let newVal): Console.WriteLine("Val: {}", newVal);
        case .Err: Console.WriteLine("Failed");
    }

    /* This invokes an implicit conversion operator, which will be fatal at runtime if an error is returned */
    int newVal = GetMinusOne(i);

    /* Result<T> contains a special "ReturnValueDiscarded" method which is invoked to facilitate failing fatally on ignored returned errors here */
    GetMinusOne(i);
}

В целом ближе к D, чем к Rust, так как содержит намного меньше гарантий.

 , ,

RazrFalcon
()

Вывод графики в Emacs

Форум — Development

Так как Emacs - универсальная платформа, возникла мысль о сабже. Однако чтение руководства для GNU/Emacs показало, что задача эта нетривиальная. Может, я не то ищу? Мне бы просто окно определённого размера в Emacs, пикселями которого я могу управлять как массивом байт.

 , ,

gedisdone
()

Компактная библиотека для растровой графики для C++.

Форум — Development

Посоветуйте subj?
Надо что-то, что может работать со слоями и примитивами.
Т.е. наложить один битмап на другой с использованием маски/альфаканала/етц и нарисовать сверху примитивы и текст.
Желательно на C++ и с возможностью статической линковки.
Ну и сохранить это всё в один зи форматов по выбору, png/jpeg/tiff/etc. Всё это должно работать без каких либо гуёв и 3d ускорения.

GTK и Qt мне кажутся несколько оверкилл.
Да, ImageMagick сейчас используется, но без матов о некоторых его особенностях высказаться не могу.

 , ,

WatchCat
()

Что нельзя сделать в языке java без метапрограммирования?

Форум — Development

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

 ,

wall_jvm
()

Есть ли современный аналог DDD?

Форум — Development

Интересует возможность наглядно отображать структуры данных при отладке: http://www.cs.angelo.edu/~mmotl/2305/manual/ddd/html/PICS/ddd-layout.png https://bcaptain.files.wordpress.com/2013/06/ddd.png

Может в каких-то попсовых IDE что-то подобное запилили.

Языки: Си, C++. Всякие хаскели и проч - не интересует.

 , , , ,

SZT
()

Серия статей «По языку в день» от Андрея Шитова

Новости — Разработка
Группа Разработка

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

Языки программирования восхитительны! Ты влюбляешься в какой-либо язык как только напишешь несколько тестовых программ. Чем больше изучаешь, тем лучше чувствуешь сам язык и идеи положенные в его фундамент.

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

  • Hello, World!
  • Функция, вычисляющая факториал рекурсивно или в функциональном стиле
  • Программу, создающую массив объектов и выполняющую полиморфный вызов методов на них
  • Реализацию сонной сортировки (sleep sort). Данный алгоритм не применяется в боевых условиях, но замечательно демонстрирует возможности языка в разрезе конкурентности

Список языков:

  • День 1. TypeScript
  • День 2. Rust
  • День 3. Julia
  • День 4. Kotlin
  • День 5. Современный C++
  • День 6. Crystal
  • День 7. Scala
  • День 8. Dart
  • День 9. Hack
  • День 10. Lua
  • День 11. Raku
  • День 12. Elixir
  • День 13. OCaml
  • День 14. Clojure
  • День 15. Nim
  • День 16. V
  • День 17. Go
  • День 18. Hy
  • День 19. Red
  • День 20. Mercury
  • День 21. Elm

>>> Подробности

 ,

perl5_guy
()

Вышла новая версия CMake 3.16.0

Новости — Разработка
Группа Разработка

Вышла новая версия популярной системы сборки CMake 3.16.0 и сопутствующих утилит CTest и CPack, облегчающих тестирование и сборку пакетов соответственно.

( читать дальше... )

>>> Подробности

 , ,

a1batross
()

Funkwhale — децентрализованный музыкальный сервис

Новости — Open Source
Группа Open Source

Funkwhale – это проект, который даёт возможность слушать и обмениваться музыкой внутри открытой децентрализованной сети.

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

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

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

У проекта есть развитое коммьюнити, а разработку можно поддержать как финансово, так и поучаствовав.

>>> Подробности

 ,

anonymous
()

Wget2

Новости — GNU's Not Unix
Группа GNU's Not Unix

Вышла бета-версия wget2 — переписанной с нуля качалки-«паука» wget.

Главные отличия:

  • Поддерживается HTTP2.
  • Функционал вынесли в библиотеку libwget (LGPL3+). Интерфейс ещё не стабилизировали.
  • Многопоточность.
  • Ускорение за счёт сжатия HTTP и HTTP2, параллельных соединений и If-Modified-Since в заголовке HTTP.
  • Плагины.
  • FTP не поддерживается.

Судя по мануалу, интерфейс командной строки поддерживает все ключи последней версии Wget 1 (кроме FTP) и добавляет много новых, главным образом, связанных с новыми методами аутентификации и HTTP2.

И вторая ложка дёгтя помимо FTP: к разработке причастен один из идейных противников компрессора XZ. Все архивы выкладываются как tar.gz или tar.lz.

>>> Объявление в рассылке info-gnu

 ,

question4
()