• Подойдёт ли мини-ПК на Arduino/Raspberry pi для обучения программированию?

    @rPman
    Да, с некоторыми оговорками по тому, чего именно собираешься программировать.

    И настоятельно рекомендую не использовать малинку как основной компьютер, дорого медленно глупо. Основное место им - компактные и энергоэффективные компьютеры

    Если желаешь найти максимально дешевое железо и при этом что то программировать, настоятельно рекомендую собрать машину x86 на базе mitx материнских плат со встроенными процессорами от intel серии N, можно на их базе найти готовые 'железки' (коробка) от 10т.р.
    например на базе N5105 от 10.5т.р. (полистай там опции есть)

    Если собирать самому, настоятельно рекомендую открыть каталог твоего магазина и выбрать материнки mitx + встроенный процессор, пропуская AMD (я люблю эту компанию но встраиваемые решения от них отвратительны) и совсем уж старые версии, старее 2016г, выбирая минимальную ram по цене и любой ssd диск (если linux можно даже с флешки потерпеть какое то время, но это экономия 'на спичках', сэкономишь тысячу, потратишь нервов на сто)

    Само собой монитор клавиатура и мышка тебе нужны, но все современные (последние лет 20) телевизоры позволяют подключать к себе компьютер, так что на этом тоже можно сэкономить, но как очень временное решение. Так же можно найти БУ, за дешево, если к примеру маленький экран.

    p.s. если с деньгами совсем швах, то можно заранее потратить выделенные деньги на нормальный смартфон, купить usb-хаб с подключением к его разъему и настроить на нем debian-root, это по факту полноценный linux, в некоторых случаях можно добиться запуск почти любого приложения. Подключить монитор в данной ситуации можно через miracast/chromecast (телевизоры последние 5-10 лет) либо вместо usb хаба покупать докстанцию (это просто первая попавшаяся модель как пример) с поддержкой dp/hdmi (при выборе смартфона проверять поддержку подключения, таких мало).

    upd. p.p.s. в продолжение темы рабочего места из смартфона
    так как за работой не всегда проводится много времени, можно воспользоваться облачными решениями, найти любого провайдера с почасовой оплатой и поднимать там машину, работая на ней удаленно, к примеру селектел (дорогой) позволяет за 5р сутки за ip address + ~5р в час за 2cpu8ram10g-ssd + копейки на бакап, поднимать и выключать машину по требованию.
    Ответ написан
    2 комментария
  • Подойдёт ли мини-ПК на Arduino/Raspberry pi для обучения программированию?

    @FedorWK
    Arduino не подойдет.

    Raspberry Pi - вполне. Только желательно брать от 4GB RAM, что бы можно было запустить браузер, если нет другого ПК.
    Но в любом случае, для первоначальной настройки понадобиться другой ПК, чтобы записать Линукс на SD карту.

    Можно попробовать аналогичные альтернативные SBC, например Orange Pi или Rock Pi. Получится дешевле и в некоторых конфигурациях производительнее, но поддержка и комьюнити у Raspberry лучше.
    Ответ написан
    3 комментария
  • Как в Reactor Netty Http Server получить тело POST-запроса?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    public Publisher<Void> addReport(HttpServerRequest req, HttpServerResponse resp) {
            return req.receive()
                    .asString()
                    .doOnNext(string -> {
                        // todo :: make some handy job with string
                        System.out.println(string);
                    })
                    .flatMap(__ -> resp.status(HttpResponseStatus.OK)  
                            .addHeader(ACCESS_CONTROL_ALLOW_ORIGIN, "*")     // CORS
                            .sendString(Mono.just("")));
        }
    Ответ написан
    5 комментариев
  • Как в Reactor Netty Http Server получить тело POST-запроса?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    https://www.baeldung.com/java-netty-http-server. Здесь кажется есть ответ.
    Ответ написан
    Комментировать
  • Как использовать netty?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Общее представление можно получить из книги Maurer, Wolfthal - Netty in Action. Документацию по API читать на официальном сайте. Ну и сразу готовиться к тому, что придётся постоянно лазить за ответами в исходники, как самого Netty, так и использующих его проектов. Найти их можно на Github'е. Кроме того, стоит учесть, что без знания принципов сетевого программирования шансов на успешное освоение нет.
    Ответ написан
    Комментировать
  • Проблема c CORS запросом, как исправить?

    zorakk
    @zorakk
    полтора года веба
    Обычно запрос XMLHttpRequest может делать запрос только в рамках текущего сайта. При попытке использовать другой домен/порт/протокол – браузер выдаёт ошибку.

    Подробнее читайте на https://learn.javascript.ru/xhr-crossdomain
    Ответ написан
    1 комментарий
  • Почему преобразовывается "16" в "шестнадцать"?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Расширение браузера или браузерный перевод, скорее всего, виноваты. В браузерном API нет, емнип, встроенных средств вывода чисел прописью, соответственно, виноват либо браузер конкретного пользователя, либо что-то на стороне сервера.
    Ответ написан
    4 комментария
  • Как правильно пользоваться Java оператором If и Switch?

    noder_ss
    @noder_ss
    Линуксоид-энтузиаст и SQL разработчик
    63fe22d1a0635309932217.png
    Тут оберните результат в скобки, без скобок работает только на первую строку, а у вас их две. А на будущее - не загружайте код в виде видео, это неуважительно из-за невозможности цитировать строчки и ужастно неудобно. Просто скопируйте и вставьте в вопрос.
    Конечный код:
    if(role == 2){
    System.out.print("Текст");
    int code = Armour.nextInt();
    }
    Ответ написан
    2 комментария
  • Генерация данных на Java?

    @Dmtm
    Android
    Ответ написан
    Комментировать
  • Как защитить админку?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Любая авторизация должна выполнятся на строне сервера, всё что на стороне клиета обходится на раз!
    Как именно - дело Вашею Есть десятки систем авторизациию Имя + пароль - самая распостраненная
    Ответ написан
    1 комментарий
  • Как получить результат из exec с русскими символами?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Точного ответа на твой вопрос сразу нельзя дать. Потому - что тут идет экспертное дерево вопросов и ответов.
    Непонятно где ты запускаешь. В среде разработки или в консоли.

    Попробуй сначала в консоли сделать так.

    C:\>chcp 866
    Active code page: 866

    Запустить приложение.

    И потом еще так.
    C:\>chcp 1251
    Active code page: 1251
    Ответ написан
    4 комментария
  • Как ограничить качество звука в видео с помощью FFmpeg?

    i229194964
    @i229194964
    Веб разработчик
    ffmpeg -i input_video.mp4 -c:v copy -b:a 64k output_video.mp4
    Ответ написан
    2 комментария
  • Почему сайты на сервере работают медленно?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Гадание на листьях опавших с ветвей сакуры нифига не даст.

    Тупо ставьте метки по ходу выполнения кода, в конце считайте время выполнения кусков, смотрите какой кусок тормозит, разбивайте его на более мелкие таймфреймы, пока не вычлените проблемный кусок. Из опыта - 90% что тормозят запросы в бд, но вышеописанным способом это легко вычисляется.

    Так же есть вероятность что проблема не на бэкенде, а в подгрузке ресурсов типа фонтов или скриптов со сторонних сервисов, которые сейчас работают не очень стабильно (ну да, "а что случилось?"). Опять же легко проверяется разницей между выполнением всего кода и полной загрузкой страницы.
    Ответ написан
    2 комментария
  • Как вносить изменения в шаблон страницы без перезагрузки томкат?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Установите live reload

    https://chrome.google.com/webstore/detail/liverelo...
    https://addons.mozilla.org/ru/firefox/addon/live-r...
    https://addons.mozilla.org/ru/firefox/addon/livere...

    И включите возможность в İDE (по ссылке ниже есть инструкция для intellij idea)
    https://stackoverflow.com/questions/33349456/how-t...
    Ответ написан
    Комментировать
  • Как вносить изменения в шаблон страницы без перезагрузки томкат?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Тут говорят, что можно включить hot reload для Thymeleaf. Это позволит автоматически обновлять страницу при изменении шаблона без необходимости перезапуска сервера. Для этого нужно добавить следующие строки в файл application.properties:

    spring.thymeleaf.cache=false
    spring.thymeleaf.enabled=true

    После этого, при изменении шаблона, он должен автоматически перезагружаться и отображаться на странице.
    Ответ написан
    Комментировать
  • Можно ли настроить сеть от одного абонента к другому посредством wi fi направленных антенн?

    @TheBigBear
    СтарОдмины мы
    Если прямая видимость - без проблем можно до 500 Мбит до 11 км вытянуть используя диапазон 5 ГГц и спецоборудование, например Микротик. Всё утыкается в бюджет
    Вопрос другой - а зачем?
    Что мешает на роутере правильно QoS настроить? Тогда ничего лагать не будет - роутер сам будет приоритеты трафика разруливать
    На компе, что торренты качает - с самом торренте ограничение на 50 Мбит поставь - хватит выше крыши
    По секрету скажу, FullHD трансляция - это около 5 Мбит
    4K При частоте 24 – 30 кадров в секунду – порядка 35 – 45 Мб/с.
    4K При частоте 40 – 60 кадров, битрейт составляет 58 – 65 Мб/с.
    У меня на работе полсотни человек сидит на 100Мбитном канале. Если верить Zabbix - средняя нагрузка Интернет канала - 22 Мбит в рабочее время с редкими скачками
    Ответ написан
    4 комментария
  • В чем минусы событийно ориентированного подхода?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Ну да, Вы перепутали сообщение и событие. Вызов метода объекта в ООП можно интерпретировать как сообщение этому объекту из конкретного места и контекста в выполняющемся коде.
    Это не то же самое, что события. Нет никакой шины или очереди событий.
    Для событийного программирования существуют Pub\Sub механизмы, в рамках которых есть паблишеры, которые формируют событие в любом месте и контексте кодовой базы, а есть подписчики, которые реагируют на конкретные типы событий, обрабатывают и передают их дальше или терминируют.
    Этот подход иногда полезен, но часто он рубит распыляет логику по куче обработчиков. Такие системы очень сложно отлаживать, трудно тестировать, практически невозможно доказывать корректность программы для любой допустимой входной последовательности событий. Антипаттерн это потому, что после некоторого порога сложности начинает накапливаться много формальных событий и неочевидных состояний системы. Эта мешанина трудно воспринимается и анализируется человеком
    Ответ написан
    7 комментариев
  • В чем минусы событийно ориентированного подхода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не претендую на правду. Просто несколько мыслей.

    В чем минусы событийно ориентированного подхода?
    Насколько я понимаю, Алан Кей (тот кто придумал термин Объекто-ориентированный) старался придерживаться именно этого подхода. т.е. кто-то отправляет сообщение, а объекты в системе на него реагируют, каждый по-своему.
    По сути у нас есть message bus, в который добавляется сообщение, а объекты системы слушают этот самый message bus.

    Мысль первая. Наследие.

    Когда мы говорим о наследии Алана Кея - надо просто глянуть что он создал практически.
    А создал он язык Smalltalk. Поэтому логично изучать минусы событийного подхода на
    примере софта который написан с использованием Smalltalk. Кто из коллег в топике
    знает примеры такого софта? Я - к сожалению не знаю.

    По ссылкам википедии https://en.wikipedia.org/wiki/Smalltalk можно видеть в категории
    influenced мы просто видим что Smalltalk
    влиял на Java, Go, Swift. Но я здесь не согласен потому что мы не можем измерить глубину
    этого влияния. Это все равно что сказать что Сталин влиял на Черчилля. Как влиял? На 10%?
    Или более чем половину? Сложно. Насчет Java я тут сказал-бы что сомнительно. ООП? Может быть.
    Акторы? Нет. В Java изначально нет акторов. Они существуют позже в виде фреймворков но
    языком не поддерживаются.

    По поводу MessageBus. Если брать технологию акторов которая используется в Erlang.
    то там скорее не message bus а очереди сообщений между потоками-акторами.
    Если про Smalltalk сказать нечего то про Erlang я могу сказать что на нем написаны
    две единицы софта такие как RabbitMq (очень надежная и неубиваемая система MQ).
    Может не супер-производительная. И CouchDb которая выделяется своей
    устойчивостью ко всяким сетевым сбоям. Реклама говорит что Кауч работает
    практически при мигающей сети, при обрывах и т.п. лучше чем аналогичый TCP-IP совт.

    Мысль вторая. Что Кей говорил про ООП.

    У меня есть цитатник. Я туда собираю некоторые слова на лытни. И иногда слова Кнута, Дейкстры
    и прочих it-академиков. Вот из цитатника Кея:

    I made up the term "object-oriented," and I can tell you
    I did not have C++ in mind.

    Что в этой прямой речи можно понять. Что господин Кей открещивается от современного ООП.
    А фактически все современное ООП зеркалит то что есть в С++. Здесь вы можете со мной спорить
    о первенстве (я не буду спорить я не знаю). Но абсолютно очевиден факт что мир пошел по пути
    жесткой синхронщины в 80х. И пока все еще идет. Будут ли примитивные типы int/double обьектами
    не суть важно. Тут важно что Кей постулирует среду в которой двигаются сообщения. Как сеть в миниатюре.
    А классическое ООП С++ - лишает нас этой среды и заменяет ее вызовом метода. Никакого сообщения
    в С++ нет и быть не может потому что сообщение НЕ существует в отрыве от основного потока который
    инициировал вычисления. Умрет поток - развалится весь стек и параметры и все. В противоположность
    в языке Erlang поток (процесс) приёмник может дохнуть много раз но стек сохраняет свою живучесть
    просто повторяя вычисления заново. И здесь мне кажется и идет развилка путей.

    И здесь как-раз мы может говорить о недостатках. Очевидно что у нас появляется лаг приемки-передачи
    сообщения. У нас появляются мягкие гарантии времени обработки. И многое другое.

    Интересно почему в 80х Алан Кей проигрывал. Я думаю что победил прагматизм. В те далекие 80-е
    комьютеры были еще слабыми. Частота мерялась сотнями килогерц и мегагерцами. И в расчетах
    каждый такт был важен. И красивые и академические языки такие как Lisp, Prolog, Smalltalk
    просто проигрывали языку С в силу оверинжинеринга. А поскольку С++ был вначале действительно
    ООП-надстройкой над С - то он предлагал и ООП-подход и скорость портабельного ассемблера.
    И хотя я лично не люблю С++ (я считаю его перегруженным техническими долгами прошлого)
    я признаю что бизнес выбирая С++ выбирал просто скорость вычислений. Академизм и красивые
    доказательства правоты программ были тогда не нужны. Нужно чтоб банковское приложение
    быстро считало кредиты и выдавало зарплаты и пенсии.

    Сегодня, когда мы нежемся в сладкой неге мощных процессоров и даже (!) облаков - мы можем
    себе позволить любого уровня парадигмы и абстракции. Цена 1 абстракции стала настолько дешево
    стоить что нам дешевле в банках запускать Java/Net приложения и на ходу фиксить ошибки
    чем долго разрабатывать на С++ и иметь неопредленнное поведение и тяжелый анализ
    в случае падения. Даже такой уродец как Python взлетел как язык интеграции а не разработки.

    Мысль третья. Нестандартные и асинхронные архитектуры реализованные в железе.

    Недавно смотрел анонс нового процессора от Чака Мура (это тот самый Мур который создал закон имени себя).
    Мне кажется это пример той самой асинхронной клетки о которой мечтал Алан Кей.

    Мысль четвертая. На кого похож Алан Кей?

    Не знаю как вам. :) А мне он уж очень напоминает Боливара Траска из Люди Икс Дни Минувшего будущего.

    Мысль 5. Что делает Алан Кей на фото?

    Бренчит на музыкальных инструментах. Наверное блюз. Блюз потерянных архитектур :)
    Ответ написан
    Комментировать
  • Как оценить количество ресурсов, необходимых для работы микросервиса?

    @vitaly_il1
    DevOps Consulting
    Как уже сказали - для сферического сервиса в ваккуме - ответа нет.
    В K8S есть свои нюансы с конфигурацией pods, но в целом все как всегда:
    - написать бета версию
    - запустить load test
    - проанализировать и прикинуть, где надо увеличить систему (sizing) а где оптимизировать
    - починить код, базу данных и т.п.
    - все повторить - load test и т.п.
    Ответ написан
    Комментировать