• Нужны ли знания школьного курса алгебры для изучения дискретной математики?

    @red-barbarian
    ну что требуется легко понять
    открываем например Статьи в категории «Популярные и обзорные статьи»
    что не понятно изучаем
    Ответ написан
    Комментировать
  • Что значит ошибка NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference?

    @red-barbarian
    обычная практика с viewholder
    public int getItemCount() {
            if(cardfeedlist==null) return 0;
            return cardfeedlist.size();
        }

    это позволяет налету менять cardfeedlist например так
    public void swapCardfeeds(List<CardFeed> cardfeedlist){
        this.cardfeedlist= cardfeedlist;
        notifyDataSetChanged();
    }

    конструктор по умолчанию.
    Ответ написан
  • Как пинговать из одного python скрипта паралелльно несколько адресов?

    @red-barbarian
    из первого же примера из хабра
    # join threads to the main thread
    t1.join()
    t2.join()
    Ответ написан
    Комментировать
  • Правила хорошего тона protected или private?

    @red-barbarian
    Ну если подходить философски) , то класс это довольно самодостаточный кусок кода. Т.е. если что-то случилось, то ты идешь в этот класс и исправляешь или (дополняешь его - что не совсем правильно). т.е. функциональность лежит в одном месте (этакая модульность) и не размазана по коду. Все рады и поют пиво. Встает вопрос как разбить программу на такие классы. На помощь приходит принцип инверсиии зависимостей. Звучит страшно, но на деле это разработка сверху вниз. Т.е. пишешь ты работу со счетами. Понадобилось сохранять счета. Этокое хранилище. У него вырисовывается метод сохранитьсчет. Хорошо делам заглушку Хранилище, с методом сохранить. Затем по мере реализации логики, понадобился метод загрузитьсчет. вставляем в хранилище.
    т.е. у нас вырисовывается интерфейс класса Хранилище который требуется для логики. И метода этого интерфейса будут все public. и ничего лишнего.
    Отлично. приходит помощник, мы говорим "у меня нет время, но есть работа. нужно реализовать методы моего хранилища" Помощник берет за основу ваш интерфейс и реализовывает свою Impl. Методы интерфейса public, и остальные которые он выделил для своего удобства privat. Все рады и работа сменяется зависоном на toster.ru. но приходит начальник и говорит"wtf?!!!" ..;%:;№. "вы сделали реализацию на mysql, а у нас полклиентов работает на оракле!"
    Вы берете Impl, медитируете и понимаете, что можно в принципе переписать только часть класса для оракла, а часть оставить. но люди продвинутые и понимаете, что общий код можно выделить в базовый класс. Итак у вас вырисовывается Общий класс в котором есть public, private, protected. public и protected - могут быть абстрактными. Отлично. Вы реализовываете только часть которую нужно для оракла и все готово. Более того если нужно подключить MSSQL, вы легко это сделаете.
    Вот такая сказка. В ней намек - не плодите лишнего в интерфейсе. выделяйте то что нужно. Не делайте лишнего protected. только то что нужно переиспользовать потомками. Вы же не фреймворки пишите. Заранее не нужно впихивать ненужное.
    Ответ написан
    Комментировать
  • Как разбить на несколько контролов код в javafx?

    @red-barbarian
    Разбивайте функционал. Делегируйте выполнение того то напрямую не относиться к отображение в отдельные классы.
    Прочитайте про MVP. И чистую архитектуру.
    Ответ написан
    Комментировать
  • Постоянные ошибки, это нормально?

    @red-barbarian
    Если не будет ошибок, ничему не научитесь. )
    С возрастом к своим ошибкам относишься строже, но если подумать, то больше всех ошибок делают дети и они же по уровню способности решать незнакомые проблемы составят конкуренцию любому профессору.
    В общем все нормально.)
    А мозги требуют тренировки.
    Ответ написан
    Комментировать
  • Какой язык программирования учить для Android разработки?

    @red-barbarian
    java, а затем kotlin
    это два официальных языка. на них практически все примеры. и документация от гугл.
    java без него нет андроида)
    kotlin - почеловечнее язык. испоьльзует библиотеки(классы) java b его машину. много сахара для удобства и проч. но изучать лучше после java/
    ну еще можно c++ для особых случаев.
    Ответ написан
    Комментировать
  • Как воспроизвести решение данной функции sin(x)=x в python?

    @red-barbarian
    sin(x) - x = 0
    решение будет естественно с некой не нулевой точностью |d|.
    sin(x) - x = y(x)
    т.е. нужно искать такой промежуток [x1,x2], |x1-x2| = |d|
    на котором функция y(x) поменяет знак.
    или если в лоб,
    найти x
    y(x) > 0 and y(x+0.00001)<0
    или y(x)<0 and y(x+0.00001)>0

    решение можно оптимизировать
    Ответ написан
    2 комментария
  • Как подогнать размер ImageView под размер картинки в ней?

    @red-barbarian
    doc
    <ImageView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@mipmap/ic_launcher"
             />

    match_parent (fill_parent) – означает, что элемент займет всю доступную ему в родительском элементе ширину/высоту.
    wrap_content – ширина/высота элемента будет определяться его содержимым
    Ответ написан
  • Книги разработчиков?

    @red-barbarian
    https://www.ozon.ru/context/detail/id/7360633/Описание
    Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения. Это - основа для них. Потому что они являются профессионалами своего дела. В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как "Дядюшка Боб"), автор бестселлера "Чистый код", рассказывает о том, что значит "быть профессиональным программистом", описывая методы, инструменты и практики разработки "идеального ПО". Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования. Эта книга - больше, чем описание методов, она о профессиональном подходе к процессу разработки.
    Ответ написан
  • В чём основная концепция использования RxJava?

    @red-barbarian
    RxJava - это библиотека для реализации реактивного стиля в java
    реактивный стиль вещь похожая на более известный функциональный стиль программирования.
    выражается он в следующем
    есть поток данных, мы применяем к нему некие преобразования и получаем новый поток.
    например
    (поток запросов в сеть в виде адресов страниц)-> операторЗапросаВСеть -> ОператорПарсинга-> ОператорФормированияДатаОбъектов ->(отображение на экране)
    Популярность в андроиде, думаю, приобрел за счет простоты работы с многопоточностью. По крайней мере первые примеры применения в андроиде rx обычно про это.)
    вообще, это немного другой способ мышления. отличный от процедурного и ооп.
    есть источник, есть получатель и много преобразований.
    источник это observable, получатель это subscriber/observer . преобразования это разного рода операторы или их цепочки.
    В этом случае мы понимаем приложение как нити потоков данных. такая схема бывает проще чем схема из объектов. иногда.
    конечно, мы можем применять и гибриды из этих парадигм.
    вообще, это стоит попробовать. возможно она очень вам близка по стилю вашего мышления.
    Ответ написан
  • Как написать тест проверяющий порядок вызова методов у такого кода (JUNIT+MOCKITO)?

    @red-barbarian
    ? что тестировать. Вызов методов v?
    v = mock
    inOrder = inOrder(v)
    inOrder.verify(v).display(any)
    inOrder.verify(v).display(any)
    inOrder.verify(v).empty()
    примерно так
    Ответ написан
    Комментировать
  • AsynTask или Thread?

    @red-barbarian
    В отличии от FX тебя ждут неожиданности в виде пересоздания Активити при поворотах экрана (например). А соединение вероятно ты хочешь держать открытым. Поэтому изначально желательно разбить приложении на части.
    часть пересоздаваемая при поворотах - это активити
    часть независимая (неубиваемая) это всякого рода синглтоны. Для твоего случая что-то что будет предоставлять данные. Назовем его провайдером. Время должно не зависеть от активити.
    Далее дабы оформить нотариально разделение отображения данных и выкачку из нет - делаем интерфейс - контракт, договоренность по которому активити будет получать данные, а провайдер предоставлять. Данные уже готовые к отображению в активити . Контракт назовем репозиторием. Реализация репозитория - то что предоставляет готовые данные - repositoryImpl.
    На этом этапе можно подправить и FX проект. В идеале получиться все что до репозитория (сеть и прочее) - будет общее для двух проектов, после (UI) разное.
    Итого получается слои
    net/provider - repository - activity.
    далее ввиду сюрпризов (выше сказанных ) активити и нехорошей тенденции разрастания логики в активити ее желательно разделить используя такие шаблоны как MVP или MVVM. Для этого есть готовые библиотеки например Moxy или Android Architecture Components (ViewModel). Они позволяют разделить логику (разгрузить активити) и сохранить данные от уничтожения при пересоздании активити.
    Итого получается (например с MVP):
    net-provider-data-repositoryImpl
    ----------------------
    repository
    ----------------------
    presenter
    View (активити)
    презентер при создании запрашивает данные из репозитория и асинхронно получает их. после получения отображает их в UI
    Все что выше репозитория живет дольше активити/фрагментов. Поэтому держит соединение столько сколько нужно. Все это можно написать как отдельную часть независимую от android ил FX. Работать оно должно не в главных потоках (UI android или UI-FX). Как это реализовать - неважно. Можно вызывать из презентера AsyncTask. Благо презентер не будет убиваться. Также можно добавить в этот слой кеширование. (что бы запросы лишние не слать)
    примерно так)
    если логика приложений схожа, то можно к репозиторию добавить классы бизнес логики. тогда эта часть также будет независима от устройств.
    написано много и сумбурно, но на деле это просто разбиение на слои.
    Ответ написан
  • Курсы по java - программированию от GeekBrains и Университета Иннополис? Есть ли альтернативы?

    @red-barbarian
    Уверен что нужно начинать с бесплатных ресурсов. Поэтому автору вопроса можно порекомендовать (учитывая что это его не первый яп) следующие ресурсы:
    -лекции Головача Golovach Courses на youtube - он очень хорошо и подробно подал материал по core, многозадачности и проч.
    -лекции Сергея Немчинского - хорошие лекции по шаблонам, рефакторингу и чистому коду (как помыть кота) и проч.
    -лекции Николая Алеминкова и др.что бы уловить что такое tdd и что такое разработка через тестирование.
    Для практической работы можно порекомендовать ресурсы типа codingbat.com/java
    www.codewars.com
    и др.
    Ответ написан
    Комментировать
  • Где храниться Android Sdk и Emulator, и то что Android Studio загружал?

    @red-barbarian
    Setting -> Android SDK -. SDK Platform
    также
    Tools-> Android->AVD manager там в последней колонке нажать на треугольник
    Ответ написан
    Комментировать
  • Как пережить Lifecycle?

    @red-barbarian Автор вопроса
    Вероятно, самые популярные решения (почти из коробки) это
    Moxy
    а также гугловское решение Android Architecture Components
    Ответ написан
    Комментировать
  • В каком классе писать код для взаимодействия с кнопкой?

    @red-barbarian
    Какой именно код?
    Если повесить просто обработку клика, то можно в onCreateView. Если что-то сложное - т.е. взаимодействие со сложной бизнес логикой и использование данных из модели , то использовать паттерн MVP. Если взаимодействие между фрагментами, то в активити.
    Ответ написан
    Комментировать
  • Номер числа Фибоначчи?

    @red-barbarian
    n это число на проверку т. е. по условию А которое вводится пользователем, а вы в цикле сравниваете его с порядковым номером i.
    n нужно сравнивать с числами фиэбоначчи
    Ответ написан
    Комментировать
  • Как сделать пагинацию Jsoup Android?

    @red-barbarian
    вероятно, вы хотите:
    1) присоединить к listview адаптер
    2)на myListView.setOnScrollListener повесить запуск AsyncTask
    3)AsyncTask загружает контент, парсит и возвращает список.
    4) onPostExecute(List result){adapter.clear(); adapter.addAll(result); adapter.notifyDataSetChanged()} - заменяем данные и сообщаем адаптеру что сделали.
    1), 2) в onCreate
    3),4) в AasyncTask
    Ответ написан
    2 комментария