Ответы пользователя по тегу Java
  • Как подключиться к H2/SQLite БД в Play! Framework?

    mrRontgen
    @mrRontgen
    Scala lover.
    Раз и два. Для вашей версии плея все подробно описанно и должно работать. Если все равно не удается найти датасоурс, то
    • Скачайте в другую директорию Play! версии: 1.2.7 (возможно у Вас какие нет каких-то библиотек )
    • Создайте голый проект и настройте его по документации


    А если и в этом случае не будет работать (в чем я очень сильно сомневаюсь, так как давным давно у меня все это работало), то стектрейсы в студию!
    Ответ написан
    Комментировать
  • Как автоматически запускать тесты в процессе сборки пакета в Play Framework 2.3.9?

    mrRontgen
    @mrRontgen
    Scala lover.
    Пройдите сначала все тесты, а потом собирайте продакшн. При сборки продакшн версии по исходникам проходят куча оптимайзеров и обфускаторов (js,css,sass, и прочие штуки), которые не нужны при тестах. Запустите в консоле activator test && activator dist и не парьтесь.
    Ответ написан
    Комментировать
  • Как в play framework матчить доменное имя?

    mrRontgen
    @mrRontgen
    Scala lover.
    Никак. Напишите метод, типа
    def index(client: String, /* other params*/) = Action {....}

    И на веб сервере настройте переброс домена третьего уровня в queryString.
    Или попробуйте request.host match {....}
    Ответ написан
    Комментировать
  • Какую базу данных лучше использовать в java?

    mrRontgen
    @mrRontgen
    Scala lover.
    Вы определитесь сначала чего Вы хотите сделать, а потом думайте над технологиями.
    Ответ написан
    Комментировать
  • Будет ли scala востребована на российском рынке?

    mrRontgen
    @mrRontgen
    Scala lover.
    Это утверждение не совсем верно
    Но если проект пишется на java, то scala разработчик туда будет не нужен.


    Scala - даже в том виде, в котором она сейчас, раскрывает гораздо больше возможностей JVM, нежели чем Java. Scala - это не Haskell на JVM и утверждение, что jmv общая тоже не совсем корректно. Scala - это попытка совместного примирения императивной и функциональной парадигмы. Все это дает гораздо больше возможностей грамотно и быстро применить какой-нибудь алгоритм для решения задачи. И если на чистой Java потребуется 50 строк кода для решения задачи, то на Scala - половина, а то и меньше :), а код получается более выразительный! (здесь не надо "кусаться", задачи бывают разные)

    Отсутствие 100500 вакансий на hh это не повод паники ( на linkedin ~2k). Язык молодой, но он очень стремительно набирает обороты. Насколько я знаю, Huawei начинают пилить интеграционные решения в России на scala(вместо оракловских продуктов). Так что все не так плохо :)

    У Одерского и компании очень большие перспективы и амбиции! Так что, по моему мнению, Scala(или ее "апдейты") еще удивят программистов!
    Ответ написан
    7 комментариев
  • Как выполнить цикл в потоке в Java/Thread?

    mrRontgen
    @mrRontgen
    Scala lover.
    Попробуй вот так:
    import java.util.concurrent.*;
    
    class CMatrix {
    
        private double det = 0;
    
        int availableProcessors = Runtime.getRuntime().availableProcessors();
        ExecutorService executorService = Executors.newFixedThreadPool(availableProcessors);
    
        public void callback(Double[][] A, int N, Double[][] m, int j1) throws InterruptedException {
            det += Math.pow(-1.0, 1.0 + j1 + 1.0) * A[0][j1] * determinant(m, N - 1, false);
        }
    
        /**
         * 
         * @param A
         * @param N
         * @param isMain - if true then shutdown and await all threads
         * return
         * @throws InterruptedException
         */
        public double determinant(Double A[][], int N, boolean isMain) throws InterruptedException {
            //todo: if N=0
            if (N == 1) {
                det = A[0][0];
            } else if (N == 2) {
                det = A[0][0] * A[1][1] - A[1][0] * A[0][1];
            } else {
                for (int j1 = 0; j1 < N; j1++) {
                    Calculate calculate = new Calculate(A, N, j1);
    //                calculate.setcMatrix(this); //todo: you may call callback from other thread
                    Future<Double[][]> result = executorService.submit(calculate);
                    try {
                        callback(A, N, result.get(10, TimeUnit.SECONDS), j1);
                    } catch (InterruptedException | ExecutionException | TimeoutException e) {
                        e.printStackTrace();
                    }
                }
            }
            if (isMain) {
                executorService.shutdown(); //it just signal. System will wait for all task completed.
                executorService.awaitTermination(60, TimeUnit.MINUTES);
            }
            return det;
        }
    }
    
    class Calculate implements Callable<Double[][]> {
    
        private int N;
    
        private Double[][] A;
    
        private int j1;
    
        public Calculate(Double[][] a, int n, int j1) {
            N = n;
            A = a;
            this.j1 = j1;
        }
    
        private CMatrix cMatrix;
    
        public void setcMatrix(CMatrix cMatrix) {
            this.cMatrix = cMatrix;
        }
    
        public CMatrix getcMatrix() {
            return cMatrix;
        }
    
        @Override
        public Double[][] call() throws Exception {
            Double[][] m = new Double[N - 1][];
            for (int i = 1; i < N; i++) {//-----Надо это организовать в потоке
                int j2 = 0;
                for (int j = 0; j < N; j++) {
                    if (j == j1)
                        continue;
                    m[i - 1][j2] = A[i][j];
                    j2++;
                }
            }
            return m;
        }
    }


    Многопоточный рекурсивные функции это по хардкорному. Я даже понятия не имею что там будет со стеками вызовов.
    Может лучше сначала используя многопоточность посчитать определители всех дополнительных миноров и записать их с параметрами в какой нибудь LinkedList, а потом, когда все задачи отработали, в одном цикле в главном потоке посчитать определитель.

    P.S. Посмотри еще forkjoin. Там есть RecursiveTask.

    P.S.P.S. Вот тут рекурсивная сортировка docs.oracle.com/javase/8/docs/api/java/util/concur...
    Ответ написан
  • Как настроить аутентификацию на сайте с помощью аккауна google ?

    mrRontgen
    @mrRontgen
    Scala lover.
    Тут же все написанно https://code.google.com/p/google-oauth-java-client/
    Ответ написан
    Комментировать
  • Какие ЯП будут более востребованными через 10-15 лет?

    mrRontgen
    @mrRontgen
    Scala lover.
    Изучай алгоритмы и структуры данных. Они будут жить вечно! А когда понадобиться, то применишь эти знания на любом ЯП (возможно даже на новом), и цены тебе не будет!
    Ответ написан
    Комментировать
  • Куда двигаться дальше в обучении?

    mrRontgen
    @mrRontgen
    Scala lover.
    Посмотри курс и книжку (она вроде есть в русском переводе). Там рассказывается про много алгоритмов и связанных с ними структур данных. Эти знания можно применить в любом языке программирования. ИМХО jvm языки более востребованы и свои позиции не хотят сдавать, а если тебя впечатляет функциональная парадигма, то Weclome to Scala
    Ответ написан