• Кто несет ответственность за нелицензионное ПО на арендованном сервере?

    @cicatrix
    было бы большой ошибкой думать
    Юридические вопросы, к сожалению, не решаются вот так, жёсткими определениями. Достаточность или недостаточность определяется конкретным судьёй на конкретном заседании по конкретному вопросу.
    И очень много переменных - кто наехал, с каким обвинением, есть ли гос. интерес, какой адвокат, болит ли голова у судьи, нравится ли ему ваша физиономия, и пр.
    Многие недолюбливают юристов, потому что считают, что те высасывают проблемы из пальца, однако, они руководствуются принципом, лучше перестраховаться, чем потом огребать по искам.
    Я к чему - внести в пользовательское соглашение конкретные формулировки, что ответственность за контрафактное ПО, детскую порнографию и призывы освободить Навального на жёстких дисках лежит исключительно на ваших добропорядочных клиентах, вам ничего не стоит, однако на гипотетическом судебном разбирательстве будет однозначно трактоваться в вашу пользу.
    Ответ написан
    21 комментарий
  • Почему использование .equals(null) плохо?

    @boristhecat
    Разве в данном контексте оно отличается от obj == null?

    Отличается. Если obj равен null, то obj == null вернёт true, а obj.equals(null) выкинет java.lang.NullPointerException, так как Вы пытаетесь вызвать метод, используя ссылку, которая ни на что не ссылается (null).
    Как уже верно написал Денис Загаевский, используйте c == null ? Color.WHITE : c.
    Ответ написан
    Комментировать
  • Почему использование .equals(null) плохо?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Ну там же написано, ты хоть прочитал? Давай процитирую:
    This method calls equals(Object), passing a null value as the argument. According to the contract of the equals() method, this call should always return false.

    Даже онлайн переводчик справился.
    В твоём случае надо писать c == null ? Color.WHITE : c;
    Также лучше использовать какие-нибудь из аннотаций NonNull/Nullable.
    Ответ написан
    Комментировать
  • Java консольный ввод. Почему не получается ввести строку?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    После ввода чисел программа закрывается, и h остаётся не заданным. Напишите пожалуйста верный вариант программы и почему ввшеприведенный вариант не работает?


    Попробуйте так:
    package com.company;
    import java.util.Scanner;
    public class Main {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int y=in.nextInt();
    float x=in.nextFloat();
    in.nextLine();
    String h = in.nextLine();
    System.out.printf("x = %.3f, y =%d, h=%s \n", x,y, h);
    in.close();
    }
    }


    Вот, ответ на ваш вопрос:
    https://stackoverflow.com/questions/13102045/scann...

    для чего нужно in.close() в каких случаях добавлять в каких не нужно?

    При вызове метода закрывается сканнер. Однако, так как Scanner имплементирует интерфейс Closable, вы можете использовать Scanner с try with resouces и явно не вызывать метод close()
    Ответ написан
    Комментировать
  • Что нужно знать о maven, чтобы добавить его в своё резюме?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Разберитесь еще с мультимодульными проектами, плагинами и флагами запуска.
    Ответ написан
    Комментировать
  • Что нужно знать о maven, чтобы добавить его в своё резюме?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    По maven можно много чего изучить. Я как-то раз приобрел вот, этот курс на Udemy и в принципе, он понравился. Также конечно же есть куча бесплатных курсов и видеоматериалов.
    - научитесь работать с maven на уровне cli
    - изучите структуру maven проекта
    - изучите плагины и зависимости, BOM. Обратите внимание на dependencyManagement & pluginManagement
    - разберитесь в maven lifecycle, maven wagon, waven reactor и т.д.
    - изучите мультимодульность
    - изучите профили maven
    - посмотрите, как можно деплоить приложения на maven central при помощи различных сервисов (packageCloud, nexus)
    Ответ написан
    Комментировать
  • Почему maven не находит ApiContextInitializer из Telegram bots api?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Ну судя по всему этот класс был удален в указанной вами версии.

    Вот, подробная информация:
    https://github.com/rubenlagus/TelegramBots/wiki/Ho...

    ApiContextInitializer.init(); has been removed and is not required anymore, instead:

    TelegramBotsApi telegramBotsApi = new TelegramBotsApi(DefaultBotSession.class);
    
    // When using webhook, create your own version of DefaultWebhook with all your parameters set.
    TelegramBotsApi telegramBotsApi = new TelegramBotsApi(DefaultBotSession.class, defaultWebhookInstance);
    Ответ написан
    2 комментария
  • Как решить вечную проблему со сбором данных?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Гугл формы. В визуальном редакторе создается опрос - выбираются типы возможных ответов (вплоть до регулярок). Можно запрашивать некоторые данные в зависимости от предыдущих ответов. В итоге все это добро автоматически собирается в гугл spreadsheet.

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

    Если в компании есть gsuite - то так еще проще, но он не обязателен.
    Ответ написан
    Комментировать
  • Что делать с джуниор программистом, который самоучка и не с этой планеты?

    @anton99zel
    29а класс средней школы №7
    Во первых:
    Нужно разделять личные качества и профессиональные!!
    (Какая разница, что он бедный или хулиганил....)
    Второе:
    Если профессиональные качества вас устраивают, то пусть человек работает и не мешайте ему.
    Если не устраивают, то ищите другого специалиста
    Третье:
    Срыв сроков это не только его вина или еще чья то. Часто так бывает, что это общая вина: заказчик меняет ТЗ, менеджмент обещает сроки, лишь бы ухватить заказ, технический директор не вникает в процесс.... В итоге всё вешается на джуна.
    И еще:
    Программист это творческая профессия. Это не оператором работать по 8 часов по некому алгоритму. Тут и думать надо и вникать и прорабатывать отдельные моменты. Нужно создавать условия для комфортной работы, а не наседать и стоять над душой. Но чтобы релакс не затягивался, даже долги нужно планировать.
    Далее необходимо понять, почему возникают задержки:
    Если это плохая планировка времени, то пусть работает как ему удобно (в ночное время или вечернее), если задержки возникают из-за недостатка знаний, значит нужно их подтягивать, включая курсы или помощь наставников.
    И:
    Он склонен всю задачу целиком держать в своей голове и думать над ней один. И чтобы никто не отвлекал. Обсуждать с кем-либо задачу, даже просто общаться в корпоративном чатике среди рабочего дня - все это вроде не дает видимых проблем, но по нему видно, что это его сильно раздражает.

    Меня тоже раздражает отвлекаться каждые 5 минут на сообщения, которые вообще не относятся ко мне. А бесконечные обсуждения могут бесконечно обсуждаться.
    Взялись работать - работайте. Летучка 10 минут каждый день с утра. 60 минут в понедельник. И всё. Ибо нех.
    С ним же никогда не было начальника

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

    Работы было бы меньше, если бы вы, там наверху, между собой всё порешали, а потом уже приходили со своими хотелками, а не переобувались каждый день со своим ТЗ "не знаю что хочу".
    Ответ написан
    Комментировать