LINUX.ORG.RU

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

Какие нативные браузерные api нужно учить?

Форум — Web-development

Не хочу учить jquery, хочется сразу писать на чистом браузерном апи. Их же очень много. Какой из них стоит учить? Вы какие нативные браузерные api используете? И все они в основном experimental, шо это значит? Когда они станут зелеными? И ещё. Мне понравился писать с => функциями, let, const и т.д. Правильно ли я делаю? На IE мне насрать.

 , ,

Deleted
()

браузер для старого лаптопа с 2gb ddr2 333 MT/s

Форум — Desktop

По причинческим технинам мне приходится временно пользоваться старым лаптопом с 2gb ddr2 333 MT/s. После установки arch (ну если честно manjaro, потому что процесс установки arch делает мои глаза совсем красными) и awesomewm им даже можно пользоваться и таки даже смотреть на тытрубе как «жопами вертят всякие б…и» (с) Ноль и даже в 666 раз пересматривать вторую часть Чужих.

Но! Я привык к фаерфоксу, но кажется он течет как девушка при менструации. Очень часто приходится перегружать старичка и по наблюдениям именно из-за фаерфокса. Еще иногда включаемый скайп вызывает демонов из ада (кто этих банановых яваскрипт мальчиков заставлял переписывать удобную программу на веб42 ноль ноль? Какой-то там jabber демон на эрланге написан (в котором даже строк нету) и работает же. Можно? Можно! А Amy Whinehouse не торчит уже 9 лет. Можно? Можно!. В общем «хочешь скайп - убей фаерфокс, хочешь фаерфокс - убей скайп»).

Я тогда подумал про оперу, но по-моему с ней что-то не то. Или это со мной что-то не то? Или я просто не умею ее готовить? Она, например, умеет показывать кино из какого-нибудь kinogo из коробки? По-моему это не работало. Что надо установить? А есть плагины вроде print to pdf, adblock plus, youtube adblock (!) и т.д.

Подскажите пожалуйста:

  • Какой браузер поставить на старичка (только не надо пожалуйста про lynx)?
  • Хромиум ведь такая же обжора и «тётка» как фаерфокс, правда?
  • Если оперу, то как ее довести до состояния, в котором ей можно пользоваться?
  • Что такое opera mini? Этот «реланиум» мне поможет?
  • Не существует ли какого-нибудь firefox mini для старичков?

PS Я понимаю, что можно ответить «не е.. мозги, докупи память». Но у этого компьютера уже метастазы, память - это далеко не единственная его проблема, я не знаю сколько ему осталось, да и то все это временно (как все мы). У меня тоже временные проблемы.

Спасибо с горы!

 ,

dissident
()

нажатие «i» при включенной русской раскладке

Форум — Admin

Я помню. что добавлял когда-то что-то такое в .vimrc, т.е. если память меня не подводит это возможно.

Проблема:

  • vim в visual mode
  • надо перейти в insert mode (например нажимая «i», вместо insert0
  • к сожалению включена русская раскладка и «i» - это «ш» В результате ничего не происходит

Не могу выгуглить как это обойти, чтобы неважно от раскладки vim переходил в insert mode при нажатии «i» или «ш». Может у кого-нибудь есть такой сниппет в .vimrc?

 ,

dissident
()

Ветки 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
()