• Возможно ли найти неоплачиваемую стажировку?

    @Wan-Derer
    plustilino,
    Компании выгоднее брать молодых

    Компании выгоднее брать молодых и опытных. А таких мало, на всех не хватает. Молодые могут быть (а могут и не быть!) более активными, это да. Но их активность часто как тот пар, который в свисток. Старые более рациональны и быстрее находят решение незнакомой проблемы. Старому чтобы хорошо работать не надо перерабатывать. Ему не надо мучаться похмельем после гулянок. А ещё ему не надо менять работу раз в полгода.
    Написано
  • Возможно ли найти неоплачиваемую стажировку?

    @Wan-Derer
    nespamer, не нужна тебе стажировка, иди работай. Вот для примера мой путь. Если ты считаешь что не готов, огорчу: ты никогда не будешь готов. Всегда найдётся собеседующий, у которого припасён вопрос "на засыпку". Но и всегда найдётся работодатель, у которого будет работа именно для тебя. Чем раньше выложишь резюме, чем раньше натренируешься проходить собесы - тем скорее устроишься.
    Удачи!

    ЗЫ: по стажировкам - их таки есть. Мне периодически прилетают, я их выкладываю в чат на JavaRush. Или в Яндекс попробуй. Но там на входе алгоритмические задачи. Ещё я посмотрел их "Открытый лекторий" - мне вообще не понравилось: преподы предельно странные. Думаю, другие компании (Титькоф там и пр.), а также галеры тоже что-то такое проводят, ищи на их сайтах.
    Написано
  • Какой стек использовать для десктоп приложений в гос.предприятиях в 2023 году?

    @Wan-Derer
    Qt присоединилось к санкциям, так что тоже не годится.

    - можно рассмотреть Java + JavaFX. Плюс в том что C# - это "улучшенная Java", изучать будет проще. Минус - непонятный статус JavaFX - она выпилена из JDK и теперь поддерживается отдельными ребятами и какова её судьба - непонятно;

    - Kotlin давно что-то обещает для десктопа, но как с этим обстоят дела я н в курсе;

    - Dart + Flutter. Dart - приятный язык, похож на Java. Собрать приложение под desktop можно (правда для сборки под винду придётся использовать полную Visual Studio). Насколько Dart подходит для сложных систем - не знаю;

    - ну.... NodeJs с обёртыванием в Electron. Считается что это адский костыль, тормоза и мрак. Ну и JavaScript (да даже и TypeScript) для тырпрайза - такой себе праздник;

    - говорят что Delphi всё ещё жив....

    В целом, десктоп сейчас это боль. Всё что есть хорошее заточено под WEB. И всё равно придётся туда переползать, хотим мы того или нет.
    Написано
  • Как запрограммировать датчик?

    @Wan-Derer
    Igorr2121212, Если бы ты писал понятнее, тебя бы лучше понимали. В конце концов ответы нужны тебе, а не нам. Поэтому потрать немного больше букв и времени и сформулируй свои вопросы так чтобы на них можно было ответить.
    Написано
  • Объясните, зачем нужен Material UI?

    @Wan-Derer
    Александр, согласен, в MUI DatePicker излишне попсовый, а выбор диапазона - только за деньги :) Я недавно мучился с выборот библы, мне обязательно нужен был TreeView. В итоге склонился к MUI, но до сих пор сомневаюсь :)
    (и это при том что я вообще не фронтэндер)
    Написано
  • Как наполнять Flux по мере поступления данных?

    @Wan-Derer Автор вопроса
    Dmitry Roo, Спасибо. Хочу немного пояснить для тех кто будет это читать :)
    Во-первых, из лямбды действительно нельзя бросить проверяемое исключение.
    Во-вторых, если написать так:
    public Flux<MyObj> getFlux() {
    
      String query = "select * from............................'";
    
      Flux<MyObj> res =  Flux.create(
        sink -> sink.onRequest(r ->
          {
            try (Connection con = dataSource.getConnection()) {
              final Statement statement = con.createStatement();
              final ResultSet rs = statement.executeQuery(query);
    
              while (rs.next()) {
                sink.next(MyObj.builder()
                  // билдим объект
                  .build());
                 System.out.println("создаём объект");
              }
    
              sink.complete();
    
            } catch (SQLException e) {
              e.printStackTrace();
            } 
          }
        ));
    
      System.out.println("выходим из метода");
    
      return res;
    }

    то мы увидим что выход их метода произошёл раньше чем созданы объекты. Мы собственно за это и боролись - за асинхронность! Мы создали "контейнер", передали его дальше, а по мере поступления новых объектов - докидываем их в "трубу", а на той стороне их сразу получают.
    Отсюда важный вывод: мы не можем бросить исключение в этом методе: мы же отсюда уже ушли :)
    Но мы можем сделать следующее:
    } catch (SQLException e) {
      e.printStackTrace();
      sink.error(e);
    // или так:
    // sink.error(new Exception("Database Problem. Query: '" + query + "'. Exception: " + e.getMessage()));
    }

    т.е. "внедрить" в наш поток объектов сведения об ошибке. И на принимающей стороне мы можем их получить:
    @Test
    public void shouldGetAllMyObj() throws Exception {
    
      AtomicReference<String> err = new AtomicReference<>();
    
      final Flux<MyObj> myObjList;
      myObjList = myRepo.getAllMyObj();
      myObjList.subscribe(
        item -> { обработка валидных объектов },
        error -> err.set(error.getMessage())    // здесь ловим ошибку
      );
    
      System.out.println(err.get());
      if (err.get() != null) throw new Exception(err.get());     // например, можем бросить исключение
    
    }


    Добавлю что у sink есть методы для описания того что надо делать при ошибке: завершить, продолжить, сделать повторный запрос и т.д.
    Написано
  • Объясните, зачем нужен Material UI?

    @Wan-Derer
    WbICHA,
    Антд намного лучше

    Обоснуй! :)
    Написано
  • Можно ли установить setTimeout(0) в данном случае?

    @Wan-Derer
    А что тебе мешает попробовать? :)
    Написано
  • Квадраты в мониторе порта?

    @Wan-Derer
    flexpc, Например, в цикле read() из него пока он available(). Сделать это перед отправкой своей команды. Вообще, конечно, надо почитать доки на модуль и уточнить что он там шлёт и в какие моменты.
    Написано
  • Как наполнять Flux по мере поступления данных?

    @Wan-Derer Автор вопроса
    Спасибо, почитаю. Пока сделал так:
    public Flux<MyObj> getFlux() {
    
      String query = "select * from............................'";
    
      return Flux.create(
        sink -> sink.onRequest(r ->
          {
            try (Connection con = dataSource.getConnection()) {
              final Statement statement = con.createStatement();
              final ResultSet rs = statement.executeQuery(query);
    
              while (rs.next()) {
                sink.next(MyObj.builder()
                  // билдим объект
                  .build());
              }
    
              sink.complete();
    
            } catch (SQLException e) {
              e.printStackTrace();
            } 
          }
        ));
    }


    Проблема в том что try - catch получается сделать только внутри create(), иначе идут ошибки из-за необработанных исключений. Но мне бы хотелось пробрасывать исключение наружу метода getFlux() чтобы, например, давать 500-ю ошибку внешнему сервису.
    Как это можно сделать?
    Написано
  • Почему процессоры gpu не любят разветвлений в программе?

    @Wan-Derer
    Ubuntu Pro, Если речь про процессоры общего назначения, то нет, неправильно. Процессор общается с ОЗУ не через шину, а через собственный контроллер памяти, соответственно шина никак не мешает ему выбирать команды и обмениваться данными. Кроме того, процессор имеет встроенную кэш-память, так что ряд вычислений он вообще выполняет "внутри себя", без обращения к чему-либо.
    Шина нужна для связи процессора с внешними устройствами: видюха/звуковуха, диск, порты, сеть и пр.
    Скорость программы зависит от её характера. Если это много счёта и минимум обращения к внешним устройствам - шина влияет мало, если идёт интенсивный обмен с диском - то да, проц будет в основном стоять и ждать пока данные прочитаются/запишутся.
    Что касается многопроцессорных систем, то тут тоже всё зависит от ПО. Даже на одинаковых процессорах можно наблюдать неравномерную загрузку ядер. Так что ответ тут: как напишешь, так и будет работать :)
    Написано
  • Компактная электронная схема для питания светодиодов от батарейки с регулировкой яркости и длительности?

    @Wan-Derer
    Павел Мельников,
    - ногу АВР можно нагрузить до 40 мА, применительно к светодиодам это что-то около 100 мВт, т.е. довольно ярко. Можно и параллельно 2 цепочки резистор - светодиод;
    - питание АВР - до 5 В, не путать с Ардуино, там стоит дополнительный стабилизатор. Надо смотреть доки, но вроде минимум 1.8В. Я бы рекомендовал литиевые батарейки или аккумы.
    - также надо смотреть про частоты. У АВР максимальная частота 16 МГц (у некоторых 20) при питании 5В. При пониженном питании гарантируется работа на 8 МГц. Также 16-20 это при тактировании от внешнего кварца или генератора. При использовании внутренней RC-цепочки максимум 8 МГц. У Тини-85 есть ещё внутренний синтезатор частоты, там можно играться с частотами в широких пределах. Но для данного проекта хватит минимальной частоты в 1 МГц или даже ниже.
    Написано
  • Компактная электронная схема для питания светодиодов от батарейки с регулировкой яркости и длительности?

    @Wan-Derer
    Павел Мельников, У Тини-13 8 ног. Две - питание, одна - RESET, тебе остаётся 5. В теории, можно отключить RESET и использовать его как обычную ногу, но так делать не рекомендуется т.к. RESET нужен для программирования обычным (ISP) программатором.
    Есть ещё 8-ногие Тини-45 и -85, у них больше памяти + ещё какие-то навороты. Для опытов я бы рекомендовал 85-ю. Ну или разных купить и использовать по мере роста аппетитов :)
    Написано
  • Компактная электронная схема для питания светодиодов от батарейки с регулировкой яркости и длительности?

    @Wan-Derer
    Павел Мельников, Резистор обыкновенный. Светодиод - элемент нелинейный, поэтому условно говорят что он питается не напряжением, а током. Соответственно, надо рассчитывать сопротивление исходя из номинального тока через СД, напряжения питания схемы и падения напряжения на самом СД. Методики есть в интернетах.
    Для изучения МК AVR рекомендую следующие материалы:
    - книга: Белов, Самоучитель разработчика устройств на микроконтроллерах AVR;
    - блог: easyelectronics.ru/category/avr-uchebnyj-kurs/page/5 (читать снизу вверх);
    - если совсем-совсем неохота заморачиваться: https://alexgyver.ru/lessons/
    Написано
  • Компактная электронная схема для питания светодиодов от батарейки с регулировкой яркости и длительности?

    @Wan-Derer
    Василий Банников, я думаю, основной жор там будет у светодиода :)
    Павел Мельников, схема такая:
    - питание - резистор - светодиод - нога МК. СД зажигается низким уровнем на ноге, назначенной выходом;
    - если нужна кнопка, то: нога - кнопка - земля. Нога должна быть назначена как вход с внутренней подтяжкой к плюсу.
    Написано
  • Как я могу конвертировать число в символ?

    @Wan-Derer
    yourDaddy1337, Чтобы получить ответ, задай вопрос. Пока ничего непонятно. Как программа должна интерпретировать число? Что ты ожидаешь получить в ответ на ввод 3? Какие ещё могут быть числа (диапазон) и как их надо интерпретировать?
    Написано
  • Как создать компонент React из строки (2)?

    @Wan-Derer Автор вопроса
    WbICHA, хм... Почти сделал, и тут откуда ни возьмись..... И что (не)удивительно, структура данных - один в один как у меня :)
    Написано
  • Как создать компонент React из строки (2)?

    @Wan-Derer Автор вопроса
    WbICHA,
    К тебе джейсон приход, каким боком тут вообще строка?

    Я могу сделать из JSON строку, содержащую синтаксис JSX.

    в чём проблема пройтись рекурсивно по всем элементам и возвращать TreeItem

    Проблема во вложенности. Я могу сделать <TreeItem ...></TreeItem> , но не могу <TreeItem ...> логика </TreeItem> (или пока просто не понимаю как).
    Написано
  • Как собрать проект Node.js?

    @Wan-Derer Автор вопроса
    Да, наверно, эт я что-то протупил :) Самое обидное, на этом хостинге можно размещать бэкенды, но на ограниченном числе языков: PHP, Perl (блин, на нём ещё пишут??), Ruby, Python - и все "не мои".
    Написано