• Какой дистрибутив Linux выбрать?

    @jershell
    Нужен вайн, надо проводить тесты, идете на winehq.org и проверяете каждое из приложений, там написано работает или нет.
    Если всё работает, то хватит любого наиболее популярно дистрибутива с живым рускоязычным комьюинити, например Ubuntu 20.04 или Manjaro.

    Пример с PS https://appdb.winehq.org/objectManager.php?sClass=...
    Ответ написан
    6 комментариев
  • Как установить библиотеку котлин?

    @jershell
    1. Перевести проект на gradle. Для этого сначала ставим этот самый градл, потом создаем папку, переходим туда в консоли и пишем
    gradle init
    Будет что-то такое.
    Starting a Gradle Daemon (subsequent builds will be faster)
    
    Select type of project to generate:
      1: basic
      2: application
      3: library
      4: Gradle plugin
    Enter selection (default: basic) [1..4] 2
    
    Select implementation language:
      1: C++
      2: Groovy
      3: Java
      4: Kotlin
      5: Swift
    Enter selection (default: Java) [1..5] 4
    
    Select build script DSL:
      1: Groovy
      2: Kotlin
    Enter selection (default: Kotlin) [1..2] 2
    
    Project name (default: rm_me): moy_proekt


    Это сгенерирует дефолтный проект gradle для kotlin

    2. Далее мы можем подключать любые зависимости, какие захотим. Для этого в сгенерированном проекте открываем файл build.gradle.kts и в секцию dependencies добавляем
    dependencies {
      implementation("io.ktor:ktor-server-netty:1.3.2")
    }


    тут более подробно, но используется gradle синтаксис, а не kts
    https://ktor.io/quickstart/quickstart/gradle.html

    и почти всё тоже самое, но чуть чуть подробнее тут https://github.com/jershell/kotlin_slow_start
    В общем сама цель перевести сначала проект на gradle, поскольку у котлина зависимости почти все через него и подключаются.
    Ответ написан
    1 комментарий
  • Какие видеокарты подходят для Wayland + KDE Plasma?

    @jershell
    В интернете гуляет слух, что Wayland + Plasma ужасно работают на видеокартах Nvidia.

    Не гуляет, а так и есть. Мы говорим про Wayland, следовательно он работает c драйвером через буферный API. Их несколько, от Intel & amd - GBM, а от nvidia EGLStreams. Nvidia отказалась от поддержки GBM, сославшись...это долгая история длится вот уже 3-й год. В общем, что сейчас мы делаем на лине, покупаем карты AMD и не знаем проблем. Драйвер открытый и отлично интегрирован в системы (ubuntu/manjaro, про отстальные не знаю)
    Или не трогаем wayland и ждем когда композиторы научатся работать с EGLStreams(kde вот научилась) или когда б***ская nvidia поддержит GBM(никогда).
    Ответ написан
    1 комментарий
  • WebSockets+Ajax или просто WebSockets?

    @jershell
    Большинство примеров в интернете образуют связку WebSocket+Ajax,

    Первая причина. Чаще всего уже есть сервер, который имеет какой-то rest api и тут приходит необходимость в нотификациях или что-то подобное, вот и прикручивают ws справа.

    Вторая. Вебсокет немного сложнее чем http. Надо учитывать, как шарить вызовы между инстансами сервера, ведь вебсокет может жить очень долго, в отличии от http, который выполняется не больше минуты. А так же учитывать блокировку, если какой-то метод залочит поток в котором обрабатываеся вызов, то будет большая беда. Поэтому вызовы при обработке должны быть неблокирующими(suspend, async, etc) или выполнять каждое действие в отдельном потоке, но тут потоков не хватит, да и дорого потоки плодить. В общем зависит от среды выполнения.

    Третья. Формат сообщения. В вебсокете не предусмотрен какой-то один формат сообщения, каждый должен выбрать его сам. Это или json-rpc или grpc или graphql или что-то подобное, что явно говорит, что ваш вызов №X завершился с результатом Y. В противовес http, который имеет параметры и какой-то ответ на эти праметры. Один, всегда.

    Четвертое. сопутствующие проблемы инфраструктуры. Часто используется nginx, и в проде вы подключаетесь не к своему(им) http серверу, а к nginx, который и держит соединение. Если отваливается одна из сторон, то вторая об этом никак не узнает сразу(а иногда и вовсе) Это решается настройкой nginx, требует знаний, в противовес http, где по умолчанию настройки минимальны. Отсюда проблема пингов и понгов, они есть в протоколе, но ими невозможно управлять из браузера. Люди просят API чтоб можно было хоть как-то обработать или pong или отправить ping, но увы и ах, этого нет. Поэтому появляются такие реализации как socket.io где ребята запихали свои самописные пинги.

    Как я уже сказал, ws сложнее чем http, но не столь критично, некоторые сложности опустил в виду того, что они зависят уже от инструментов реализации, ну или просто забыл. Ну и на ваш вопрос мало ответов, потому что как вы могли заметить тема оооочень обширная.
    Ответ написан
    Комментировать
  • Хочу быстро научиться кроссплатформенной мобильной разработке. Что выбирать? React Native | Flutter | Angular или что то ещё?

    @jershell
    React Native - проблемы в отладке как были так и есть, невнятные стектрейсы.
    Flutter быстрее, чем React native и у flutter типы из коробки(dart). В общем Flutter лучше.
    А если хочется как в властелине колец, одно кольцо чтоб править всеми, то есть kotlin multiplatform, нативная разработка на одном языке под все платформы.
    Если надо вот прям совсем срочно взять и написать, то flutter на текущий момент лучшее решение.
    Ответ написан
    Комментировать
  • На какой язык программирования перейти?

    @jershell
    Kotlin - современный и прагматичный, умеет в js/wasm/exe/jvm. Работать с ним одно удовольствие, почему бы не попробовать?
    Ответ написан
    Комментировать
  • Как эффективно изучать веб python и с чего начать?

    @jershell
    Сам начинал с django и не стану его советовать. К сожалению в последнюю с ним встречу он был уже не так актуален как хотелось бы. Сейчас задачи часто хотят быть выполнены асинхронно, выбираем все что имеет полноценную поддержку. Поэтому буду советовать https://aiohttp.readthedocs.io/en/stable/ и пишем свой restful | jsonrpc | или иной сервер для начала. Если это сложно, то flask + sqlalchemy + любимый шаблонизатор для разогрева.
    Ответ написан
  • Как организовать принцип передачи данных между клиентом и сервером?

    @jershell
    Получается такой порядок вопросов
    1. Сообщение (текстовое или бинарное) (формат ИЛИ свой ИЛИ protobuf ИЛИ jsonrpc ИЛИ xmlrpc ИЛИ и.т.д)
    я бы порекомендовал jsonrpc 2.0 поскольку понятен человекам и как миниум на него посмотреть чтоб взять идею как основу.
    2. Транспорт. Если security и не париться, то https, если париться, то TCP в ssl. Если нет security то нет разницы, все есть tcp, Если удивить педагога, то UDP, но тут уж сами с усами, придется слать ACK самому и по какому-то принципу, его придется тоже описывать.
    Ответ написан
    Комментировать
  • Как работать с API внутри Websocket сервер?

    @jershell
    Или использовать jsonrpc https://github.com/jershell/simple-jsonrpc-js вот по этой спеке www.jsonrpc.org/specification

    или переходить на socket.io и не выдумывать сложности
    или выбрать другой формат сообщений
    или писать свою формат обмена сообщениями
    Ответ написан
    Комментировать
  • Какой HTML шаблонизатор выбрать?

    @jershell
    Ну раз свиг понравился, но проект умер, используйте аналог от мозилы https://mozilla.github.io/nunjucks/
    Ответ написан
    Комментировать
  • Внедрение WEB API в проект MVC?

    @jershell
    Сложно что-то сказать, но посмотрите в сторону jsonrpc.
    Спецификация - www.jsonrpc.org/specification
    Библиотека jsonrpc для nodejs и браузера - https://www.npmjs.com/package/simple-jsonrpc-js
    Ответ написан
    Комментировать
  • Что еще поднять на домашнем сервере для обучения?

    @jershell
    Если цель именно обучиться, то обязательно нельзя пропускать:

    Если админить корпоративные сети:
    1. LDAP+Radius
    2. Все что подняли ранее и требует аутентификации следует пересадить на LDAP
    3. Почтовый сервер имеет какой-нибудь веб интерфейс?
    4. L2TP\IPsec

    Если базы данных, то несколько postgressql в режиме репликации M-S-S
    Про виртуализацию уже писали выше, но яб добавил это туда же LLVM+XEN
    Ответ написан
    Комментировать
  • Что нужно знать Back-end разработчику в 2014 - 2015 гг.?

    @jershell
    Наверное выделил бы таки вещи как Git, RestFul api, Английский.
    Ответ написан
    Комментировать