• Делаете ли вы гимнастику для глаз?

    kawabanga
    @kawabanga
    Кому как,

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

    Если в Помодоро системе работаю, то каждые 25 минут.
    Ответ написан
    4 комментария
  • Как отрисовать стандартные views над LibGDX?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Во-первых, у вас game_fragment_container лежит выше, чем ваши view (потому что ниже в файле резметки), для начала стоит попробовать поменять их местами.
    Во-вторых, libGDX рисует всё в SurfaceView, если мне не изменяет память, а у него есть такой флажок setZOrderOnTop, и если он выставлен (надо проверять), то свой контент вы не увидите.
    Ответ написан
    1 комментарий
  • Почему пишут вот так?

    @nirvimel
    Так делается для того, чтобы оставить за собой возможность впоследствии поменять реализацию не меняя интерфейс. Например, в будущем может потребоваться заменить реализацию ArrayList на LinkedList, если бы в качестве типа переменной был указан конкретный класс, то к тому времени код мог бы уже обрасти различными обращениями к, специфическим для конкретного класса, методами, выходящими за границы интерфейса List. В таком случае при замене реализации на LinkedList пришлось бы выискивать в коде и выкорчевывать оттуда все обращения к специфике ArrayList. На сколько это адски сложная задача знают все, кому приходилось работать над крупными проектами. Поэтому люди, знакомые с этой проблемой, предпочитают предупреждать подобные проблемы заранее, то есть во всех местах, где возможна смена реализации в будущем (то есть почти везде), стараются пользоваться исключительно интерфейсами, вместо того, чтобы опираться на конкретные реализации. В данном примере, если в качестве типа переменной был бы использован интерфейс List, то смена реализации ArrayList на LinkedList решалась бы заменой всего одной строки не зависимо от масштабов проекта.
    Ответ написан
    Комментировать
  • Как победить ListView и swipeRefresh вместе?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    По-моему, ваша проблема в RelativeLayout'e. Надо ListView непосредственно в SwipeRefreshLayout ложить, тогда всё будет работать правильно.
    Ответ написан
    Комментировать
  • Как повернуть объект на определенный угол в OpenGL?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    glRotatef(angle, x, y, z); вращает на угол angle вокруг вектора (x, y, z). Если вы хотите вращать относительно конкретной оси, задавайте вектор вращения так: (1, 0, 0) - это, например относительно оси х.
    Ответ написан
    1 комментарий
  • Как заполнить ListView?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    Нельзя общаться с элементами UI не из MainThread. Вы это делаете в doInBackground(). Отдавайте catnames в качестве результата doInBackground, и просечивайте массив в адаптер один раз в onPostExecute. Это как минимум.
    А вообще асинктаски для сетевого взаимодействия использовать нехорошо. Есть нормальные библиотеки для этого, например - Retrofit.
    Ответ написан
    2 комментария
  • Подходят ли уроки Andriod Studo к Intellij IDEA?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Подходят. При изучении чего-то из программирования, делай упор на язык/платформу/SDK/whatever, а не на IDE. IDE приходят и уходят, а всё остальное - остаётся.
    Ответ написан
  • Что не так с кодом?

    @Tiberal
    public static void main (String[] args)
    Ответ написан
    Комментировать
  • Какие идеи приложений поделать для дизайн-портфолио интерфейсов мобильных приложений?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Дизайн мобильного приложения для Pornhub.com
    А то эти ваши магазины, погода и прочий шлак уже никому не интересны.
    Ответ написан
    2 комментария
  • Как оптимизировать алгоритм подсчёта суммы чётных чисел Фибоначчи?

    @To4a89
    Тоже вот наткнулся на это задание решил, но оказался не быстрее чем у uvelichitel, потом оптимизировал Ваш код, убрав модуль с медленным while.
    Получилось вот так
    def solution(A):
        total_sum = 0 
        a = 1
        b = 1
        for i in range(0, A - A % 3):           
            temporary = a
            a = b
            b += temporary
        total_sum = b // 2
        return sum([int(i) for i in str(total_sum)]) # Считает сумму цифр в числе total_sum
    Ответ написан
    Комментировать
  • Считается ли хорошим подходом создавать исключения в Java?

    @sirs

    if (box== null) throw new Exeption("Коробки нет на складе");
    if (box.ready) throw new Exeption("Коробка уже отсканирована");

    Куча if не есть хорошо. Почему бы вам просто не ввести понятие State, создать под него Enum со всеми возможными состояниями и применить шаблон, например, Strategy . Под каждое конкретное состояние объекта нужно будет написать отдельный обработчик и из метода кидать не Exception, а просто передавать управление в нужный обработчик.

    Как альтернативный вариант - посмотрите фреймворки, который позволяют организовать т.н. Route, может быть вам понравится такая реализация. Если коробка есть на складе - пройти по пути 1, если коробки нет на складе - пройти по пути 2, если с коробки уже считан код - пройти по роуту 3 и т.д. Такая реализация, например, поможет наладить транзакционность из коробки.
    Ответ написан
    2 комментария
  • Считается ли хорошим подходом создавать исключения в Java?

    @mitekgrishkin
    Как вам самому удобно. Единственное - просто кидать Exception - это издевательство над тем, кто будет это дело сопровождать. В вашем случае можно создать что-то типа UserException - это позволит отличать ваши исключения от общих остальных. Заодно подключите вывод сообщения.
    Ответ написан
    Комментировать
  • Как в PyCharm из проекта создать репозиторий на GitHub?

    @balamut108
    Py
    Создаёте новый проект, активируете VCS (Enable VCS), создаёте новый репозиторий Git, добавляете в него нужные файлы, делаете коммит, далее в VCS выбираете Import Into Version Control -> Share Project in GitHub.
    Это будет работать при условии что у Вас корректно настроены VCS в Settings -> Version Control.
    Ответ написан
    1 комментарий
  • Как лучше реализовать приложение "Расписание ВУЗа"?

    LeEnot
    @LeEnot
    Енот-андроид
    Вы замахиваетесь на создание программного комплекса.
    Для создания функционального продукта вам нужно обеспечить создание и редактирование расписания, его хранение и доставку до конечного пользователя (преподаватели и студенты).
    1. Для хранения вам нужно спроектировать и реализовать базу данных.
    В БД нужно реализовать поддержку различных факультетов/групп, разграничение прав доступа на создание/редактирование, группы пользователей (студенты-преподаватели-декан-админы). Наиболее простой и доступный вариант - MySQL
    2. Для передачи данных на мобильный телефон вам нужно спроектировать и реализовать REST Api. Реализуется в виде отдельного приложения для той ОС, на которой работает университетский сервер.
    3. Собственно приложение занимается отображением данных.

    Однако тут я вижу пару сложностей.
    1. Человеческий фактор. Для того, чтобы вашей системой пользовались, она должна быть удобна. То есть, не только вам, но и тем, кто будет смотреть расписание, а так же тем, кто его будет создавать/редактировать.
    Word вы в формат БД не переведете автоматом, а учиться работать с БД только для заполнения расписания никто не захочет. Вывод - нужно делать интерфейс работы с БД для обслуживающего персонала.
    Так же, далекто не у всех Android смартфоны, так что iOS вы оставляете "в пролете". Для обеспечения доступности расписания желательно сделать веб-интерфейс. Тогда можно будет заходить и с ПК, но этим вы добавляете еще одно звено в ваш комплекс.
    2. Сложность системы для реализации. В отсутствие опыта и силами одного человека невозможно изучить все представленные темы, а уж сделать качественный продукт - тем более.
    3. Неочевидный, но очень важный фактор - UI/UX, то есть, дизайн и юзабилити. Это отдельная и достаточно объемная задача, когда для каждой части комплекса, имеющей интерфейс нужно делать дизайн-макет, тестировать его на контрольной группе конечных пользователей, исправлять и так далее.
    Ответ написан
    Комментировать
  • Для каких задач Java лучше подходит, чем С++?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Стоит ли смотреть в любую сторону - зависит от того, чем вы хотите заниматься. Перейти можно с любого языка на любой, и С++ тут ничем особым не выделяется. У меня есть даже пример, когда команде переход с С++ на Java дался очень плохо.
    Да, в С++ вы должны управлять памятью, это отличный способ выстрелить себе в ногу, и поэтому сейчас советуют отходить от сырых указателей к shared/unique/etc_ptr.
    В Java сборщик мусора, да, но это давно не проблема в обычных приложениях. Управлять памятью в С++ - сложно.

    Методы из java-байткода в рантайме компилируются в платформенный код, это ускоряет очень сильно.
    Ответ написан
    Комментировать
  • Как сделать анимацию CardView?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    Можно использовать Property Animation.
    Ответ написан
    1 комментарий
  • Как эффективно удалить дубликаты из String[]?

    EugeneP2
    @EugeneP2
    Java Dev
    Эт почему нельзя использовать коллекции? о_О

    1. Для данного решение нужна коллекция java.util.HashSet. Методы equals и hashCode в классе String реализованы эффективно, так что HashSet без проблем отсечет все дубли.
    2. Зачем вы вообще строки грузили в массив? Сразу нужно было использовать HashSet.
    3. С чего вы взяли что это будит менее эффективней, чем заливать все в массив?
    4. Скорость доступа к элементам set-а такая же как и у массива: O(1).
    5. Если вы грузите миллионы строк в массив, то явно экономия памяти у вас не в приоритете.
    Ответ написан
    6 комментариев
  • Какие библиотеки для Android довели вас до слёз радости?

    TranE91
    @TranE91
    Senior Android Engineer
    UIL, Retrofit, Realm(отчасти), RxJava, DataBinding e.t.c.
    Ответ написан
    Комментировать
  • Какие библиотеки для Android довели вас до слёз радости?

    @aol-nnov
    странно, никто не вспомнил android support library :-D (кхм, как-то толстовато получилось, ну, да ладно :) )
    а так - да, dagger/butterknife для binding и dependency injection
    picasso для подгрузки картинок из сети
    retrofit+rx java

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

    gadfi
    @gadfi
    https://gamega.org
    с комментариями не получится, ,боюсь растечься мыслью по древу ))

    Picasso
    Retrofi+Gson
    в пояснениях не нуждаются

    dagger 2 мало с ним опыта, но ощущения приятные
    Data Binding - то чего давно хотелось, код чище, кода меньше (не всегда)
    Ответ написан
    5 комментариев