• Как решить вопрос ожидания в асинхронном программировании?

    @Akela_wolf
    Extreme Programmer
    Тут проблема не в асинхронном коде, а в том что обработка ваших данных занимает слишком много времени. Если бы у вас обработка данных была синхронной - была бы та же проблема.

    Таким образом, у вас 2 варианта:
    1. Увеличить таймаут на nginx (или кто там отвечает 502 Gateway timeout), чтобы он ждал ответа 10 минут. Пользователю при этом тоже придется ждать. На фронте в это время можно рисовать "крутилку" или запустить прямо в браузере тетрис :)
    2. Делать общение с фронтом асинхронным тоже. Пользователь загружает файл, файл уходит в обработку и фронту сразу же возвращается 200 OK + идентификатор задачи. Фронт с определенной периодичностью (10-30 секунд) опрашивает по идентификатору бэк "ну что, закончилась обработка?". И как только закончилась - бэк ему отдает итоговый файл. Пока обработка не закончилась - бэк может отдавать данные о количестве обработанных записей, что позволит фронту рисовать прогресс-бар, например.
    2а. Тоже самое что и в п.2, но уведомление о завершении задачи посылает бэк через WebSocket.
    Ответ написан
    Комментировать
  • Какой Exception лучше использовать в данном случае?

    @Akela_wolf
    Extreme Programmer
    java.lang.IllegalStateException
    Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation.
    Ответ написан
    Комментировать
  • Почему ArrayList пустой?

    @Akela_wolf
    Extreme Programmer
    Так запрос же асинхронный. То есть вы его запускаете и говорите "вот когда данные придут - запиши их в список". И не дожидаясь пока запрос выполнится - возвращаете список (который, разумеется, пустой - запрос же еще в процессе выполнения).

    Поэтому, если уж вы начали использовать асинхронные запросы - надо жить в асинхронном мире дальше, везде протаскивая Mono и Flux.

    Либо переходить на Kotlin с его корутинами (которые прекрасно интегрируются с Mono/Flux)
    Ответ написан
    Комментировать
  • Логотипы на QR-кодах, какого размера?

    hint000
    @hint000
    у админа три руки
    Лучше всего никакого. Это в очередной раз маркетологическая хрень побеждает здравый смысл.
    QR устроен так, что в нём избыточная информация, это сделано специально для надёжного считывания, например, когда попала грязь, или уголок кода оторвался, или камера не может как следует сфокусироваться, и т.д.
    Чем больший кусок вы заслоните логотипом, тем меньше останется избыточной информации. Т.е. ваш QR ещё будет считываться в идеальных условиях, но чуть какой-то дефект или помеха - не считается. А ведь люди старались, изобретали, как закодировать именно с избыточностью. Если бы они знали, что их непростую интеллектуальную работу вот так маркетологи будут спускать в унитаз, то они бы заранее оставили пустое место в середине - вперёд, ребята, лепите логотипы вот сюда.
    Ответ написан
    Комментировать
  • Какое железо лучше для нагруженного веб-сервера?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Для нагруженных сервисов железо не так важно, важна архитектура.
    Железо - это вертикальное масштабирование и оно всегда имеет ограничения, с которыми все сталкиваются через полгод-год-два. Впрочем, этот твой вопрос тому доказательство.
    Надо делать упор на горизонтальное масштабирование, чтобы не зависеть от характеристик железа.
    Другими словами, должно быть много недорогих (слабых) серверов, а не один дорогой и мощный.
    Лично мне такой подход позволяет держать нагрузку ~24000 запросов в секунду на десяти дешёвых серверах.
    Если нагрузка возрастёт, то я куплю ещё 2-5-10 дешёвых серверов вместо того, чтобы думать о характеристиках железа
    Ответ написан
    Комментировать
  • Нормальная ли практика удалять, изменять, создавать данные get запросом, а не post?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ненормальная. HTTP-клиенты, включая бразуер, рассчитывают на идемпотентность GET-запросов, а потому могут выполнить его без спросу или повторить произвольное количество раз. Так что не удивляейтесь, если после захода на страницу с комментариями произойдёт их удаление, хотя вы ничего не нажимали.
    Ответ написан
    2 комментария
  • Есть ли смысл изучать iOS разработку сегодня?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сегодня - готовы, завтра - не готовы, послезавтра - снова готовы.
    Никто точно не знает будущего, так что никто не сможет ответить однозначно.

    Вон, доллару тоже пророчили, что он взлетит до небес, но он даже не вышел за отметку 200, а сейчас уже и вовсе ниже 80. Однако никто точно не знает, что будет завтра: может быть, всё же взлетит, или останется на текущем уровне (плюс-минус), или вообще упадёт ниже плинтуса. Почему бы и нет?
    Ответ написан
    7 комментариев
  • Как разделить строку java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Метод split принимает регулярно выражение, соответственно можно написать, что разбивать нужно по одному или более пробелу someString.split("\\s+"), либо разбить по одному и отфильтровать пустые строки из возвращённого массива.
    Ответ написан
    Комментировать
  • Насколько реально с нуля выучиться на информационного безопасника?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Всё в жизни достижимо.
    В 21 веке, и особенно в айти, всё можно изучить самостоятельно.
    Все знаменитые хакеры получили свои знания самостоятельно, а не на каких-то курсах.
    При этом они не спрашивали посторонних, стоит ли им это делать или сложно ли это будет сделать. Они просто делали то что им нравилось.

    Вам тоже никто не мешает заниматься тем, что нравится.
    Тут главное мотивация и целеустремлённость.
    Вам никто не мешает сесть за стол, и вместо первого письма на хабр открыть гугл, набрать бесплатные курсы по программированию, и начать осваивать его не на базовом уровне.
    Сейчас не 19 век, когда надо работать с 6 утра до 10 вечера чтобы только-только прокормиться. Свободного времени у людей вагон. Его никто не запрещает использовать на то, чтобы изучить любую специальность.

    Подобные письма на Хабре публикуются примерно раз в неделю.
    И сам факт его публикации вызывает обоснованные сомнения в успешности данного предприятия, именно в контексте ИБ, по двум причинам:
    1. Специалист по ИБ должен уметь работать с информацией. Находить её там, где её вообще нет. По каким-то косвенным крупицам восстанавливать ход событий. Не говоря уже о том, чтобы просто поднять с пола то огромное количество информации, которое открыто лежит в интернете по интересующему вопросу. В частности по вопросу "Можна мне вайти, и если да то как?"
    2. Специалист по ИБ, который занимается не бумажками (как это чаще всего бывает в реальности), а "шифрами, взломами и всем что связано", должен обладать нечеловеческой усидчивостью и умением концентрироваться. Подходить к любому вопросу основательно, и не останавливаться, пока он полностью не проработан.

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

    Вот монолог настоящего хакера, https://habr.com/ru/post/27055/
    Сравните его со своим "Хочу ли я?.. Могу ли я?.. "
    Ответ написан
    3 комментария
  • Как перепрограммировать браслет (Mi band 5)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Берёте программу Mi Fit или Xiaomi Wear.
    Декомпилируете, изучаете исходники, смотрите, откуда берётся прошивка и как заливается.
    Скачиваете прошивку, дизассемблируете (процессор Huangshan на архитектуре RISC-V), изучаете код на ассемблере.
    Пишете свою, компилируете, заливаете в браслет.
    С ненулевой вероятностью вам придётся написать свои дизассемблер, ассемблер/компилятор и программу для заливки прошивки.
    Ответ написан
    1 комментарий
  • Почему parseFloat не работает нормально?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Проверьте, что возвращает et.getText().toString()
    Ответ написан
    1 комментарий
  • Как обьеденить слова в колекции?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый вечер.
    1) У вас есть проблема тут:
    public String translate(String en) {
    
            for (Map.Entry<String, String> d : dictionary.entrySet())
                System.out.print(d.getValue() + " ");
            return en;
        }

    Вам нужно в метод передать слово на англ. языке, а вернуть слово на русском. А вы передаете и возвращаете англ. слово
    Add a new method translate(String en) which take some string in English, and returns
    its translation in Russian as the value of the type String.


    2) Это по идее, даже лишнее. В задании сказано, что пополнять словарь вы будете при помощи метода addNewWord
    public MyTranslator(HashMap<String, String> dictionary) {
            this.dictionary = dictionary;
        }


    3)
    как правильно нужно написать метод транслейт, что бы он находил в словаре нужно слово, обьеденял с другими и выводил в консоле, как указано в задании?

    Вам нужно используя метод get ввести ключ (слово на англ) и получить перевод ().
    Например,
    public String translate(String en) {
    return this.dictionary.get(en);
        }

    P.S. Тут коллега Dmitry Roo прав. Надо в метод translate получить строку, разбить ее на части, достать переводы с собрать в коллекцию. Я тут ошибся.

    4)
    Add code to read string from console and pass it into translate method. Print result to
    console.

    Создайте метод, который поможет прочитать и добавить слова в словарь из консоли. Смотрите в сторону Scanner, System.in
    Ответ написан
    Комментировать
  • Стоит ли вложить все рубли в покупку пк, чтобы их хоть как-то сохранить?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Ситуация не просто пугает - хочется закрыть глаза и как Баранкин в мультике повторять "вот я, вот я превращаюсь в воробья..."
    В золото вложи. Купи чего-нибудь этакого на распродаже в санлайте, раз комп будет просто пылиться. Золото занимает куда меньше места, а цену не теряет...
    Ответ написан
    4 комментария
  • Стоит ли вложить все рубли в покупку пк, чтобы их хоть как-то сохранить?

    @kalapanga
    Комп и в обычное-то время - плохое вложение, если только он не Ваш основной инструмент зарабатывания денег. Сейчас и тем более. А если он ещё и использоваться не будет....
    По большому счёту, когда коллапс уже случился, поздно метаться.
    Ответ написан
    Комментировать
  • Стоит ли вложить все рубли в покупку пк, чтобы их хоть как-то сохранить?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    Чтобы куда-то вкладывать, ну там в ПК, золото или гречу, надо понимать принцип экономических инвестиций.
    Можете потерять в деньгах послушав простых людей (не в обиду присутствующим сказано), тех кто основывается на собственных предположениях. Не там вы вопросы задаёте.
    Это тема"железо", а "не удачных долгосрочные инвестиции". Курите тему самостоятельно. Читайте статьи на профильные темы на специальных ресурсах.
    Ответ написан
    Комментировать
  • Говорят в России недостаток IT специалистов составил 1 млн, так ли это?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Да, не хватает миллиона программистов - профессионалов от мидлового уровня с опытом работы в коммерческих проектах не менее трёх лет. А начинающих, которые только хотят стать программистами, переизбыток.
    Ответ написан
    9 комментариев
  • Как починить поломанную тему ZSH - FISH?

    vabka
    @vabka
    Токсичный шарпист
    Поменяй шрифт в своём эмуляторе терминала на такой, который поддерживает powerline-символы (обычно, в его названии есть аббревиатура PL (powerline) либо NF (nerdfont))
    Найти такой ты можешь, например, на https://github.com/powerline/fonts или на https://github.com/ryanoasis/nerd-fonts
    Ответ написан
    1 комментарий
  • Неужели у многих программистов проблемы с зубами?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Просто стоматология - это часто востребованная и одновременно очень дорогая медицинская услуга. По этой причине она редко входит в медицинские страховки, и поэтому же о ней отдельно упоминают те компании, у которых в ДМС стоматология есть.
    Ответ написан
    Комментировать
  • Как завершить установку WSL 2?

    vabka
    @vabka
    Токсичный шарпист
    Докер же как раз поднимает у тебя wsl2 и он просит чтобы ты сам установил ядро, и даже кидает ссылку, как это сделать.

    Если принципиально хочешь обойтись без wsl2 - вырубай его поддержку в docker desktop и используй virtual box или hyper-v - тогда докер развернёт виртуалку с линуксом на них.
    Ответ написан
    2 комментария