LINUX.ORG.RU

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

Как выучить C# за 21 день имея только опыт Common Lisp? Надо всего лишь...

Форум — Development

Вобщем, я тут в своей библиотеке для интероперабельности Common Lisp и .NET - запилил мега-фичу - прокси-классы.

Это такие классы, лисповые, которые с помощью магии метаобъектного протокола CLOS и немного System.Reflection.Emit - прикидываются .NET классами, а их объекты, соответственно - .NET объектами.

Это позволяет бесшовно интегрироваться с .NET кодом, например реализовывать .NET интерфейсы или вон, идиоматически писать на WPF, с MVVM, биндингами, командами и всем прочим.

Вон пример приложения, это браузер пакетов(лисповых неймспейсов) CL: https://files.catbox.moe/77wdbn.png

https://github.com/Lovesan/bike/blob/master/examples/wpf.lisp (потом как-нибудь еще добавлю пример с Avalonia, чтобы было кроссплатформенно вообще).

Вот соответствующий XAML. Как видно, вьюха напрямую биндится к свойствам вью-моделей, как будто у нее под капотом C#. https://github.com/Lovesan/bike/blob/master/examples/WpfUserControl.xaml

Код в принципе там понятен, особенно тем кто имел дело с WPF/Avalonia. Но документацию надо бы написать, да, работаю над этим. Докстринги это хорошо но мало.

 , , , ,

lovesan
()

Современные junior на самом деле так круты?

Форум — Talks

Наткнулся на вакансию https://hh.ru/vacancy/73523341

Это что реально для junior требования?

Для Ъ:

Обязанности:

    Поддержка серверов на базе ОС Windows Server (2008, 2012, 2016, 2019), Linux (CentOS, Ubuntu);
    Контроль и поддержка веб серверов (Apache HTTP Server, Nginx);
    Поддержка и настройка CI (Continuous Integration) на основе Jenkins;
    Контроль и поддержка серверов приложений (Apache Tomcat, Weblogic, Wildfly);
    Поддержка интеграционной сервисной шины (Oracle Service Bus, WSO2 Enterprise Integrator);
    Поддержка и настойка JIRA;
    Поддержка и настойка DOCKER контейнеров;
    Поддержка и настройка Zabbix;
    Проведение нагрузочного тестирования веб-приложений (Apache JMeter).

*Необязательно владеть всем вышеперечисленным, так как нагрузка будет балансировать в пользу задач, по которым есть необходимые компетенции.
Будет возможность обучиться остальному постепенно.

Требования:

    Опыт администрирования *nix подобных систем;
    Опыт работы с серверами приложений (Apache TomCat, WildFly, Weblogic);
    Опыт настройки сборок в Jenkins, GitLab или любой другой системе ci/cd.

 , ,

irton
()

Опус о формате opus

Форум — Talks

Вопрос компетентным меломанам!

На семью имеются: Десктоп (+ колонки, Linux Mint), 2 ноутбука (+ компактные колонки JBL, Linux Mint и Debian Testing), 2 планшета на Android, 4 смартфона на нём же. Ну и аудио Sony в авто, старое, как и сам автомобиль, поддерживает USB, но строго mp3.

Большая коллекция музыки, аудиокниг и лекций в форматах mp3 и flac (во flac только музыка). В основном всё хранится на внешних HDD и USB. Я что-то выиграю от перевода этого богатства на opus?

 ,

Old-Cat
()

Посоветуйте книгу по JS

Форум — Web-development

Собственно, подходит книга/интернет-ресурс, желательно на английском.

 

fernandos
()

С чего изучать Python

Форум — General

Что лучше Лутц или https://www.udemy.com/course/bestpython/ ???

 ,

tits
()

Почему во многих Питон-проектах не используют async/await и ООП, как в Java?

Форум — Development

Привет, всем. По работе смотрю новые питоновские проекты, и немного удивляет следующие детали:

  1. по сей день, пытаются все оформить сугубо через def() и форкать разные Py-скрипты через систему

  2. не смотря на наличие async/await в Python v3 - не используют и не пытаются

  3. если и объявят class , то он сугубо используется для DAO/DTO, ни каких сложных ОО-дизайнов не оформляется… type hints не испольуются, ABC-контракты не используются, GoF-паттерны тоже

  4. прикрываются якобы композицией, и что вообще ОО-дизайн - мертвый дизайн (у Golang лагеря насмотрелись, что ли?)

Говорю не про публичные проекты, которые в GitHub можно найти. А про многие, которые делает разработка в рос. компаниях. Картину наблюдаю на разных компаниях в течении последних двух лет.

Вот, я не пойму… Я что-то не понимаю или что? Вроде, появляются различные интересные фичи в Python3 , ряд вещей позволяет приблизится к написанию кода, как на Java.

Все-таки, Python не является Haskell, OCaml или каким-нибудь диалектом LISP. Это язык с элементами функциональщины, а не pure functional language, как Haskell. Так от чего не снабдить свой код asyncio, все граммотно оформить по ОО-дизайну с SOLID-принципами, четко разработь с event loop и прочим… Все какая-то портянка из 100500 глобальных def’ов вижу, в основном, в проектах. Да и вроде… Компании - солидные и платят этим Питонисам 250+ рублей в месяц. А стиль написания такой, за который могли бы уволить джуна в 2010ом, если речь шла про другой стэк (C#, Java).

Вопрос: от чего же в новых питоновских проектах на живой практике многие разработчики не пытаются применить фичи из последней версии языка, и приблизиться к дизайну/стилю кода, как на Java. И вообще, все сделать по канону чистенько, соблюдая SOLID. При наличии уже таких возможностей.

Это лень и нежелание просто? Или есть объективные причины забить болт на все это, и далее оформлять спагетти-код километровый?

P.S. не удтверждаю, что я - прав. Возможно, я совсем не прав. Я просто реально не понимаю, почему качество Питон-проектов, как было примерно таким 10 лет назад, то таким и осталось… Адепты на других языках, как-то более лучше развиваются в плане чистоты своих проектов. Опять сугубо моё ИМХО.

 , , ,

twinpeaks
()

Автоматизация вендовых GUI-приложений в Wine

Форум — Talks

Имеется вендовое GUI-приложение с кнопками и диалоговыми окнами. Насколько я понимаю, оно написано на обычном Win32, но я не уверен (кстати, как это проверить?). Приложение вендовое по сути и философии, то есть каких-либо ключей командной строки там нет и не предвидится.

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


Знает ли ЛОРовский хайвмайнд какой-либо способ это сделать? Куда копать?

Линукс тут при том, что вундервафля будет запускаться на безголовом линуксовом сервере в Wine. (Само приложение совместимо с Wine и отлично в нём работает.)

 , ,

intelfx
()

Разработка с помощью Tensorflow, VS и Conda

Форум — Development

После уставноки Tensorflow, VS и Conda с
Куча ошибок при попытках запуска кода:

Found 575 images belonging to 3 classes.
Found 69 images belonging to 3 classes.
2021-11-29 07:23:46.324131: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-11-29 07:23:46.991234: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1525] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 1401 MB memory:  -> device: 0, name: GeForce GT 710, 
pci bus id: 0000:08:00.0, compute capability: 3.5
C:\Users\kamil\.conda\envs\tensorflow\lib\site-packages\keras\optimizer_v2\adam.py:105: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.
  super(Adam, self).__init__(name, **kwargs)
Epoch 1/30
C:\Users\kamil\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\util\dispatch.py:1096: UserWarning: "`categorical_crossentropy` received `from_logits=True`, but the `output` argument was produced by a sigmoid or softmax activation and thus does not represent logits. Was this intended?"
  return dispatch_target(*args, **kwargs)
2021-11-29 07:23:49.612822: I tensorflow/stream_executor/cuda/cuda_dnn.cc:366] Loaded cuDNN version 8100
2021-11-29 07:23:50.894726: W tensorflow/core/common_runtime/bfc_allocator.cc:275] Allocator (GPU_0_bfc) ran out of memory trying to allocate 1.08GiB with freed_by_count=0. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.
2021-11-29 07:23:51.946854: W tensorflow/core/common_runtime/bfc_allocator.cc:275] Allocator (GPU_0_bfc) ran out of memory trying to allocate 1018.38MiB with freed_by_count=0. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.
2021-11-29 07:23:53.234559: W tensorflow/core/common_runtime/bfc_allocator.cc:275] Allocator (GPU_0_bfc) ran out of memory trying to allocate 729.89MiB with freed_by_count=0. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.
2021-11-29 07:23:53.563607: W tensorflow/core/common_runtime/bfc_allocator.cc:275] Allocator (GPU_0_bfc) ran out of memory trying to allocate 562.77MiB with freed_by_count=0. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.
2021-11-29 07:23:53.979189: W tensorflow/core/common_runtime/bfc_allocator.cc:275] Allocator (GPU_0_bfc) ran out of memory trying to allocate 360.53MiB with freed_by_count=0. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.
2021-11-29 07:23:53.984987: W tensorflow/core/common_runtime/bfc_allocator.cc:275] Allocator (GPU_0_bfc) ran out of memory trying to allocate 532.02MiB with freed_by_count=0. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.
2021-11-29 07:23:54.724332: W tensorflow/core/common_runtime/bfc_allocator.cc:275] Allocator (GPU_0_bfc) ran out of memory trying to allocate 790.02MiB with freed_by_count=0. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.
2021-11-29 07:23:54.878406: W tensorflow/core/common_runtime/bfc_allocator.cc:275] Allocator (GPU_0_bfc) ran out of memory trying to allocate 289.45MiB with freed_by_count=0. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.
2021-11-29 07:23:55.423657: W tensorflow/core/common_runtime/bfc_allocator.cc:275] Allocator (GPU_0_bfc) ran out of memory trying to allocate 866.56MiB with freed_by_count=0. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.
2021-11-29 07:23:59.404689: E tensorflow/stream_executor/cuda/cuda_driver.cc:1018] failed to synchronize the stop event: CUDA_ERROR_LAUNCH_TIMEOUT: the launch timed out and was terminated
2021-11-29 07:23:59.408237: E tensorflow/stream_executor/gpu/gpu_timer.cc:55] INTERNAL: Error destroying CUDA event: CUDA_ERROR_LAUNCH_TIMEOUT: the launch timed out and was terminated
2021-11-29 07:23:59.411331: E tensorflow/stream_executor/gpu/gpu_timer.cc:60] INTERNAL: Error destroying CUDA event: CUDA_ERROR_LAUNCH_TIMEOUT: the launch timed out and was terminated
2021-11-29 07:23:59.414816: I tensorflow/stream_executor/cuda/cuda_driver.cc:739] failed to allocate 8B (8 bytes) from device: CUDA_ERROR_LAUNCH_TIMEOUT: the launch timed out and was terminated
2021-11-29 07:23:59.418365: E tensorflow/stream_executor/stream.cc:4476] INTERNAL: Failed to enqueue async memset operation: CUDA_ERROR_LAUNCH_TIMEOUT: the launch timed out and was terminated
2021-11-29 07:23:59.422467: I tensorflow/stream_executor/cuda/cuda_driver.cc:739] failed to allocate 8B (8 bytes) from device: CUDA_ERROR_LAUNCH_TIMEOUT: the launch timed out and was terminated
2021-11-29 07:23:59.425739: E tensorflow/stream_executor/stream.cc:4476] INTERNAL: Failed to enqueue async memset operation: CUDA_ERROR_LAUNCH_TIMEOUT: the launch timed out and was terminated
2021-11-29 07:23:59.429235: E tensorflow/stream_executor/cuda/cuda_driver.cc:1163] failed to enqueue async memcpy from device to host: CUDA_ERROR_LAUNCH_TIMEOUT: the launch timed out and was terminated; 
host dst: 0xd4cd14bb90; GPU src: (nil); size: 8=0x8
2021-11-29 07:23:59.434156: I tensorflow/stream_executor/stream.cc:4442] [stream=000002486DC6B350,impl=000002486F3F0610] INTERNAL: stream did not block host until done; was already in an error state     
2021-11-29 07:23:59.437962: W tensorflow/core/kernels/gpu_utils.cc:69] Failed to check cudnn convolutions for out-of-bounds reads and writes with an error message: 'stream did not block host until done; 
was already in an error state'; skipping this check. This only means that we won't check cudnn for out-of-bounds reads and writes. This message will only be printed once.
2021-11-29 07:23:59.444743: F tensorflow/stream_executor/cuda/cuda_dnn.cc:213] Check failed: status == CUDNN_STATUS_SUCCESS (7 vs. 0)Failed to set cuDNN stream.

Первый раз имею дело с tensorflow, очень нужна помощь с обьяснениями как их запускать… Заранее спасибо за любую помощь!

 , ,

katemisik
()

Подскажите бесплатный хостинг LAMP с поддержкой 3-х фреймворков:

Форум — Web-development

Подскажите бесплатный хостинг LAMP с поддержкой 3-х популярных фреймворков:

  • Symfony 5 >=
  • Yii2
  • Laravel 8 >=

PHP 7 >=

Нужен именно бесплатный хостинг!

 , , , ,

pup_kin
()

Опрос разработчиков C++: IDE vs Emacs + LSP (clangd)

Форум — Development

Важно мнение разработчиков C++ (необязательно использующих Emacs) на тему:

какие возможности, хорошо реализованные в различных IDE для C++, отсутствуют (недостаточно полно реализованы) в Emacs.

Под «IDE» подразумеваются любые передовые среды разработки, в том числе не open source и работающие только на оффтопике, если они работают удаленно с таргетом линукс.

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

Критерии сравнения (уточните название IDE, чтобы я мог протестировать):

1 - отдельные возможности (features). Предполагаемый вариант ответа:

«Не использую Emacs, но вряд ли там можно сделать [feature_name] так, как можно сделать в [my_ide]».

2 - целый рабочий процесс (workflow). Предполагаемый вариант ответа:

«В Emacs будет непросто выполнить [цепочка действий, например, рефакторинг] таким образом, как можно выполнить в [my_ide]:»

  • - действие1
  • - действие2
  • - действие3

Цель вопроса?

Выделить разность по функционалу не в пользу Emacs, если есть. Особенно в свете развития LSP (например, clangd), с помощью которого индексация кода и построение различных связей между его элементами могут быть вынесены на отдельную машину. Т.е. ряд возможностей выносится за пределы средства разработки будь то Emacs, IDE, Vim и т.д. А значит возможности Emacs и IDE в этом плане уравниваются.

 , , ,

nasecom
()

Правильный деплой Python приложения - как лучше?

Форум — Desktop

Есть некое приложение на Python, чисто серверное без GUI (хотя в данном случае не важно). Оно использует ряд модулей.

При разработке и отладке на целевой системе я просто использовал virtualenv. Теперь встал вопрос - как лучше сделать бандл, чтобы его могли:

  1. Ставить люди, не шарящие в кишках питона. Просто брать и ставить.

  2. Ставить в любое место.

  3. Без интернета.

То есть в идеале - надо сделать папку, в которой приложение, и все site-packages которые оно использует. И прямо из этой папки должно все стартовать.

Все что пишут по поводу Python deploy - либо докер, либо virtualenv, либо накатывать через pip пакеты на целевой системе. Это какое-то не то. Как можно сделать проще?

PyInstaller делает то что нужно, но он не подходит потому что заворачивает все в бинарники. Мне надо чтобы py файлы остались и можно было править код по живому.

 

James_Holden
()

Альтернативы Android studio

Форум — Development

Хочу написать маленькое приложение под андроид с максимально простым GUI и функционалом для пересылки sms. Не хочу делать это на Qt. Хочу пилить в вимчике или чет типа того - есть какой-то quick start guide?

Из инструментов для разработки рассматриваю react-native, но в общем и целом готов выслушать альтернативные предложения.

Интересует есть ли уже LSP для таких кодовых баз, если есть - для каких языков? Если нет, то и хрен бы с ним, как собирать то - где почитать стоит?

 , , , ,

pon4ik
()

IT через 10 лет

Форум — Talks

Ваше видение развития IT, интернета, линукса, чего угодно через 10 лет. От общей политики до технических вещей.

 , ,

yu-boot
()

Как укротить проприетарщину?

Форум — Mobile

Или как выйти максимально сухим из воды?

Есть у меня аппарат с lineage os 16.0 на котором практически отсутствует что либо из несвободного ПО. Пока не жалуюсь - батарейка используется экономно, память непонятно чем не захламляется, root спокойно обеспечивается через magisk.

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

 , ,

ados
()

В какой скоростной реальности вы живете?

Голосования — Голосования


  1. USB 3.0+, Wifi ac 408 (44%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. USB 2.0, Wifi g/n, ssd 277 (30%)

    *************************************************************************************************************************************************************************************************************************

  3. USB 2.0, Wifi g/n, hdd 155 (17%)

    *************************************************************************************************************************

  4. null modem, dial-up 43 (5%)

    *********************************

  5. USB 3.0+, Wifi ax 43 (5%)

    *********************************

Всего голосов: 926

 ,

bga_
()

X11 опасен?

Форум — General

Подсобите советом, только осваиваю Linux, в частности Debian, и возник вопрос, а так ли опасен X11, в плане кейлогеров и т.п.?

Если я правильно понимаю, то доступ к «прослушиванию» клавиаутры/мыши/экрана есть у приложений, запущенных из-под текущего пользователя (конечно, если не делать xhost +). Если данные приложения я устанавливаю из оф. репозитория, получается, что вероятность кейлогеров и прочего минимально, отсюда вроде как напрашивается вывод, что и не сильно опасен X11 по умолчанию, я не прав? Почему рекомендуют запуск в отдельном сервере (Xpra, Xephyr и т.п.)?

Пробовал запуск программ в отдельном Xephyr, но так и не придумал, как быть с тем же буфером обмена. Не удобно получается, когда браузер допустим в отдельном сервере запускается, а менеджер паролей в другом и пользоваться буфером обмена не получается. Разве что какой-то общий файл в темпе делать, но это неудобно.

 ,

Dstart
()

Что должен знать специалист ИБ на старте

Форум — Security

Здравствуй, ЛОР. Собственно, вопрос в топике. Хотелось бы узнать и для атакующей (пентест), и для защищающей стороны.

Если я хочу стать специалистом с нуля, с чего мне начинать?

П.с ВУЗ не предлагать, так как в планах есть, однако хотелось бы прийти туда, уже зная на что делать упор и параллельно учиться.

 

KrasnoGlazik
()

МЕТАПАРСЕР: каталог минималистичных парсерных игр

Форум — Games

Привет!

Сегодня я запустил небольшой онлайн-каталог парсерных игр https://metaparser.syscall.ru/

Для тех кто не знает. Это такие игры, в которых текст надо вводить с клавиатуры.

Игры работают на облегчённой версии интерпретатора INSTEAD (модуль МЕТАПАРСЕР-3), выглядят просто и запускаются быстро (на компьютере и вашем смартфоне). Никакой графики (хотя, движок их поддерживает), музыки, авто-подсказок, дополнения по клавише «таб» и прочей мишуры.

Зачем?

Сложно сказать. После долгого марафона развития INSTEAD3 мне захотелось вернуться к кристальной простоте настоящей интерактивной литературы. А настоящая интерактивная литература это, все-таки, игры с текстовым вводом. И ничего кроме текста и фантазии. Впрочем, как и в настоящей литературе.

Отдаю себе отчёт, что вряд-ли библиотека привлечёт к себе много внимания, но… Кто знает, может быть я не одинок.

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

Парсер, живи! :)

А пока, добро пожаловать! https://metaparser.syscall.ru/

P.S. Также сделал приложение для vk: https://vk.com/app6934806_85944929

И пользуясь случаем, приглашаю всех заинтересованных в телеграм чат проекта: https://t.me/insteadtalk

 , , ,

gloomy
()

Запустил Nix на Android

Форум — Mobile

Не знаю в какой раздел писать, запустил Nix на Android, без рута, user namespaces, СМС и регистрации. Можно ставить и запускать тонны счастья из nixpkgs. Пока требуются Termux и proot, но есть планы их понемножечку выкинуть.

https://github.com/t184256/nix-in-termux

Nix-еры ЛОРа, есть кто с 64-битными мобилками и планшетами? Потестите, плиз.

Скрипт перед запуском лучше все же прочитать.

UPDATE 1: Упаковал в отдельное приложение: Запустил Nix на Android (комментарий)

https://github.com/t184256/nix-on-droid-bootstrap

https://github.com/t184256/nix-on-droid-app

UPDATE 2: Ставить отсюда: https://nix-on-droid.unboiled.info

 , , ,

t184256
()

Некропостинг и юзерскриптинг

Форум — Development

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

Я долго собирался с силами, и вот недавно всё-таки осилил этот десяток строк на Javascript.

// SPDX-License-Identifier: MIT-0

// ==UserScript==
// @name     Highlight older messages on linux.org.ru
// @version  2
// @grant    none
// @include  https://www.linux.org.ru/*
// @run-at   document-end
// ==/UserScript==

(function () {
  
  // Configurables.
  const old_message_age = 30; // Days.
  const old_message_background = '#000000';
  // -------------

  document.querySelectorAll('div.sign time').forEach(function (element) {
    const element_datetime = Date.parse(element.attributes.datetime.value);
    const age_in_seconds = (Date.now() - element_datetime) / 1000;
    const age_in_days = age_in_seconds / 3600 / 24;
    
    if (age_in_days > old_message_age) {
      element.closest('article').style.background = old_message_background;
    }
  });
})();

 , некропостер, ,

i-rinat
()