• Почему не запускается программа?

    GavriKos
    @GavriKos
    Программа не запускается, потому что есть ошибки компиляции. Чтобы правильно ссылаться на класс R, нужно подключить его к текущему файлу при помощи ключевого слова import. Ну и современные IDE умеют подсказывать что то на этот счет.

    Код файла с ошибкой на пастбин залейте - будет проще подсказать.
    Ответ написан
    Комментировать
  • Что выгоднее - встроенный Tomcat или отдельный?

    @protven
    Вы совершаете типичную ошибку новичка, вместо того чтобы учить спринг, начинаете задаваться вопросом-
    "А что выгоднее <тут какой-то абстрактный вопрос, который нужно решать уже в боевом проекте>".
    В целом это такой себе вариант проявления прокрастинации.

    У вас сейчас есть дефицит памяти при деплое ? Если да, то докупите памяти, она стоит копейки или не запускайте много экземпляров приложения и продолжайте учить спринг.
    Если нет, то продолжайте учить спринг.

    PS Разница есть, и она в пользу одного Томката на несколько приложений. Но разница ничтожная. Использовать ембеддед контейнеры сервлетов выгоднее с точки зрения микро-сервисной архитектуры. Но вам это сейчас не нужно.
    Ответ написан
    2 комментария
  • Почему цикл не выводи столбик?

    Даже если исправить все синтаксические ошибки в коде, то всё равно выражение
    arr[num - '0'] адресует область памяти перед массивом, а не сам массив, т.к. символ '0' имеет код 48.
    Ответ написан
    Комментировать
  • Как работает эта программа, определяющая порядок байтов в компьютере?

    15432
    @15432
    Системный программист ^_^
    Создаётся переменная типа unsigned short int, которая почти во всех современных компиляторах имеет размер 2 байта. Затем ей присваивается значение 1. В случае архитектуры Little Endian, единица запишется в младший байт переменной, а в случае Big Endian - в старший байт. Дальше именно это и проверяется - конструкция *((unsigned char *) &x) получает значение младшего байта переменной. Если там оказался ноль, значит архитектура Big Endian.

    Код, делающий то же самое, но проверяющий старший байт:
    #include <stdio.h>
    unsigned short x = 1; /* 0x0001 */
    int main(void)
    {
      printf("%s\n", *((unsigned char *) &x + 1) == 0 ? "little-endian" : "big-endian");
      return 0;
    }
    Ответ написан
    Комментировать
  • Как получить доступ к n-му элементу GridView из адаптера?

    @aol-nnov
    я бы в модели завел свойств нужных и менял бы их.
    Ответ написан
    4 комментария
  • Зачем goto в исходниках Python?

    un1t
    @un1t
    Стандартная практика обработки ошибок или освобождения ресурсов в Си. Обычно в таких случаях goto более удобен и читаем чем альтернативные решения.
    Однако в данном конкретном примере функция очень короткая и в ней нет множества ветвлений, поэтому конечно проще написать без goto, но видимо сила привычки или задел на будущее.

    Вот напиример функция из питона с более уместным использованием goto

    static int
    ast_type_init(PyObject *self, PyObject *args, PyObject *kw)
    {
        Py_ssize_t i, numfields = 0;
        int res = -1;
        PyObject *key, *value, *fields;
        fields = _PyObject_GetAttrId((PyObject*)Py_TYPE(self), &PyId__fields);
        if (!fields)
            PyErr_Clear();
        if (fields) {
            numfields = PySequence_Size(fields);
            if (numfields == -1)
                goto cleanup;
        }
    
        res = 0; /* if no error occurs, this stays 0 to the end */
        if (numfields < PyTuple_GET_SIZE(args)) {
            PyErr_Format(PyExc_TypeError, "%.400s constructor takes at most "
                         "%zd positional argument%s",
                         Py_TYPE(self)->tp_name,
                         numfields, numfields == 1 ? "" : "s");
            res = -1;
            goto cleanup;
        }
        for (i = 0; i < PyTuple_GET_SIZE(args); i++) {
            /* cannot be reached when fields is NULL */
            PyObject *name = PySequence_GetItem(fields, i);
            if (!name) {
                res = -1;
                goto cleanup;
            }
            res = PyObject_SetAttr(self, name, PyTuple_GET_ITEM(args, i));
            Py_DECREF(name);
            if (res < 0)
                goto cleanup;
        }
        if (kw) {
            i = 0;  /* needed by PyDict_Next */
            while (PyDict_Next(kw, &i, &key, &value)) {
                res = PyObject_SetAttr(self, key, value);
                if (res < 0)
                    goto cleanup;
            }
        }
      cleanup:
        Py_XDECREF(fields);
        return res;
    }
    Ответ написан
    Комментировать
  • Какие есть библиотеки для offline распознавания текста?

    @akass
    Developer
    tesseract
    Ответ написан
    Комментировать
  • Как создать многоуровневый json?

    Нужно смотреть на JSON объекты ({ ... }) конкретно как на объекты в ООП, а не как на ассоциативный массив. Создай конкретные модели со всеми связями между собой, которые ты собираешься сериализировать в JSON. Если нужен список серверов/групп/клиентов, то используй именно список ([ ... ]) сериализированных моделей.
    Ответ написан
    Комментировать
  • Почему в C++ нужно строить всю программу на ООП (длинный вопрос)?

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

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Для больших игр неминуемо пишется свой инструментарий, потому что художникам надо быстро проверять, как смотрится арт в игре, геймдизайнерам править баланс, нарративщикам добавлять запятые в диалоги и так далее, а заставлять каждого компилять игру из C++-сорцов запрещено международной конвенцией по гуманному обращению с пленными и декларацией прав человека. Поэтому неизбежно будут какие-то тулзы, куда можно скормить png, mp3 или txt, подвигать ползунки и посмотреть, как это будет в игре.
    Иногда из этого выходит вот Unity3D или UE, иногда TES Construction Set, иногда оно так и остается в недрах.

    Disclaimer: я никогда не работал в геймдеве:)
    Ответ написан
    Комментировать
  • Конструкция SomeInterfacesomeObj - как правильно использовать?

    @onepavel
    Консультация и разработка мобильных приложений
    кодить не читая книги - зло!
    package com.company;
    
    import java.util.LinkedHashMap;
    
    public class Main {
    
        public static void main(String[] args) {
            MapData<String,Integer> mapData = MapData.map(new Zoidberg(), 10);
            System.out.print("");
        }
    }
    
    class Pair <K, V> {
        public K key;
        public V value;
    
        public Pair (K key, V value){
            this.key = key; this.value = value;
        }
    }
    
    interface Generator <T> {
        public T next ();
    }
    
    class MapData <K, V> extends LinkedHashMap<K, V> {
    
    
        public MapData (Generator <Pair<K, V>> gen, int size){
            for (int i=0; i!=size; i++){
                Pair <K, V> p = gen.next();
                put (p.key, p.value);
            }
        }
    
    
        public static <K, V> MapData <K, V> map (Generator <Pair<K, V>> gen, int size){
            return new MapData (gen, size);
        }
    }
    
    class Zoidberg implements Generator<Pair<String,Integer>> {
    
        @Override
        public Pair<String, Integer> next() {
            return new Pair<String, Integer>("i_will_read_books", 10);
        }
    }
    Ответ написан
    Комментировать
  • Как воспринимает переменные С++?

    Как разные. Регистр символов учитывается.
    Ответ написан
    1 комментарий
  • В чем различия между массивами String [] args и String... args?

    tarzan82
    @tarzan82
    Запись вида methodName(T... args) называется varargs (Variable Arguments)
    Удобство в том, что можно передавать сразу аргументы и не создавать массив и количество аргументом может быть 0 или N. Пример:

    public static void vargs(final String... strings) {
    	System.out.println(strings);
    }
    
    public static void arrs(final String[] strings) {
    	System.out.println(strings);
    }
    
    public static void main(final String... args) {
    	vargs(); // ok
    	vargs("1", "2"); // ok
    		
    	arrs(); // compilation error
    	arrs(new String[] {"1", "2"}); // ok
    }

    Есть пара моментов: методы с varargs нельзя перегружать и varargs должен быть последним аргументом

    public static void manyParams(final String... strings, final Integer number) {
    	// compilation error
    }
    
    public static void manyParams(final Integer number, final String... strings) {
    	// ok
    }
    Ответ написан
    Комментировать
  • Как в массив типа Integer записать значение типа int?

    public static class Integer implements MyRandom <java.lang.Integer> {
            private Random rand = new Random();
    
            public java.lang.Integer GetRandom() {
                return rand.nextInt(10);
            }
        }

    Сделать вот так

    Ну или переименовать свой класс из Integer во что-то другое
    Ответ написан
    1 комментарий
  • Какая разница между Java и Python?

    Python позволяет быстрее вести разработку

    Это заблуждение. На первый взгляд это действительно так, до первого серьёзного рефакторинга. Когда вам вместо чисел начнут приходить строки в функцию, вы об этом узнаете лишь в рантайме.
    Ответ написан
    3 комментария
  • Выпадает ошибка open failed: EROFS (Read-only file system), как исправить?

    a13xsus
    @a13xsus
    Lazy developer
    java.io.FileNotFoundException: /1.gif: open failed: EROFS (Read-only file system)

    private String saveFilePatch = "/1.gif";

    А зачем сохранять в корень файловой системы? Конечно она read-only. Сохраняйте на SD карту или в пользовательские папки.
    Ответ написан
    4 комментария
  • Как сделать reverse протокола приложения на андроиде?

    sim3x
    @sim3x
    wireshark
    decompile apk
    Ответ написан
    Комментировать
  • Подобрать формулу для нахождения шага между значениями?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    if ($maxValue/25<=25) $d=5; else $d=50;
    Ответ написан
    Комментировать
  • Что использовать для даты?

    TrueBers
    @TrueBers
    Гуглю за еду
    С чего это он deprecated? У него deprecated конструктор без локали, а сам класс живёт и здравствует.
    Создаётся через поиск в гугле... тьфу ты, через java.util.Calendar
    Ответ написан
    3 комментария
  • На каком аккаунте держать приложение в Google Play моем или заказчика?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Странный вопрос!
    Это приложение не Ваше, а Заказчика.
    Вам за него заплатили деньги!
    Поэтому ответ однозначен: разместите на аккаунте Заказчика.

    UPD:
    1. Вам необходимо было заранее договориться с Заказчиком о том, что Вы впишите себя в Credits/About внутри приложения, возможно оформить письменное соглашение на то, что заказчик имеет право использовать ваш продукт в любых целях, сохраняя информацию о Вашем авторстве в заранее утверждённом разделе приложения (Credits/About).
    Теперь - можете попробовать сделать это сейчас, но заказчик Вам ничем не обязан, хотя авторство автоматом сохраняется за Вами.
    2. Можете написать в гугл, чтобы он добавил поле автора отдельно. Возможно, они прислушаются и сделают это.
    Ответ написан
    4 комментария