• Придумать хорошее тестовое для JUN front VUE?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я даю такое простое задание. Делаете список фильмов, актеров с поиском, данные берете через ajax от swapi.co. Все это с серверным рендерингом. И пагинацией. Реально, задание на час максимум. А уж имплементация вообще на вкус испытуемого. Хочешь бутстрап подключаете, хочешь роутеры прикручивайте. Но если не владеете, то реализовать фиг получится.
    Ответ написан
    9 комментариев
  • Java: Как узнать продолжительность видеофайла?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Как уже предложил в соседней ветке, используйте ffmpeg -i и парсите его вывод. Есть также библиотека https://github.com/bramp/ffmpeg-cli-wrapper для того же самого и https://github.com/kokorin/Jaffree

    Увы, фреймворк JMF, а также все альтернативы (xuggle и т.д.), как-то не особо пошли у java-сообщества. Обычно всю работу с бедиа делают на других языках, используя некие сервисы для связи явы с нужным функционалом :-(

    Буду приятно удивлен и непременно попользую, если кто подскажет вменяемую и развивающуюся альтернативу для медиа на яве.
    Ответ написан
    Комментировать
  • Spring: Как организовать чтоб объект из БД был в единственном экземпляре?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Да, в общем все правильно понимаете. За исключением последнего - записи, когда сущность изменилась. Здесь таки требуется сказать "менеджеру" явно, чтобы он скинул сущность в базу данных, если она изменилась. Это сделано во имя безопасности данных, когда мы изменили сущность, и "менеджер" должен знать, что данные можно уже скинуть, и они непротиворечивые.
    Ответ написан
    Комментировать
  • Что есть кто (unix, linux, ubuntu, debian, kali)?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Любая операционная система состоит из двух частей - ядро и окружение.
    Ядро понятное дело, это системные вызовы, работа с аппаратурой и процессами.
    Окружение - это то, с чем взаимодействует пользователь, набор утилит, программ и системы запуска.
    Как можно догадаться, на разные ядра можно прикручивать разное окружение. Состав ядра и окружения задает дистрибутив - набор из ядра и окруждения.
    Так вот, версии UNIX и отличаются именно этими наборами, есть дистрибутивы классических юникс-систем, типа BSD (openbsd, freebsd, solaris ...). Есть дистрибутивы Linux, отличающиеся в основном окружением, имея одно и тоже ядро linux.

    Теперь поговорим про окружение. В состав практически каждого окружения входит такая вещь, как пакетный менеджер., через который происходит установка и развертывание самого Окружения. Вот по типу пакетных менеджеров и отличаются обычно дистрибутивы linux. Есть debian-подобные подобные дистрибутивы (dpkg), есть redhat-подобные (rpm), есть альтернативные (pacman, yast, make world).

    В общем, все линуксы имеют в своем составе ядро linux + какой-то из пакетных менеджеров + систему запуска типа init/systemd/upstart + набор программ на выбор основателей дистрибутива

    Все юниксы имеют одно из ядер unix + все остальное тоже самое, но своё!

    Ну и вся история юникс красиво описана в https://ru.wikipedia.org/wiki/UNIX
    Ответ написан
    Комментировать
  • Как оптимально работать с данными в JSON?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Взять elasticsearch и в нем делать поиск, собственно в нем и хранить сами данные можно.
    Ответ написан
  • После обновления lvm возросла запись / чтение на дисках при использовании кеширования, что это может быть?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Очень похоже, что поменялся алгоритм кеширования. Но у меня встречный вопрос, а почему бы не использовать ceph?! Ваша конфигурация как раз очень хорошо под это дело подходит, KVM/QEMU отлично работает с ceph напрямую. При этом вы получите практически моментальную миграцию виртуалок, очень гибкую работу с распределеенм хранилищем, снапшоты, бекапы, восстановление, клонирование, миграцию, забудете про lvm и raid, получите или быстрый кеш на ssd, или быстрый пул. В дополнение, практически неограниченно растущее хранилище данных и облачное хранилище, вылет одно любого сервера не скажется никак на доступности данных для виртуалок.

    Из минусов - память на каждый терабайт дисков нужно гигабайт памяти, и нужна сеть 10гб между серверами.

    Настройка не займет больше 30 минут и часа чтения документации. Диски не нужно делать в raid! На каждом из серверов достаточно отвести по 8-100 гигов для рутового раздела и загрузки, все остальное нужно просто отдать в ceph.
    Ответ написан
    4 комментария
  • Парсинг Json-a в разные объекты?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    В любом случае вариантов как минимум два, или заглядывать вперед в потоке, или заново переоткрывать.
    Можно поступить хитрым образом - использовать https://docs.oracle.com/javase/7/docs/api/java/io/... и/или GSON stream API.

    В первом случае мы заглядываем в поток на какой-то размер, просматриваем его на наличии нужных нам маркеров, затем делаем unread и уже работаем как нам нужно.

    Во втором случае можно прочитать только первый элемент, найти нужные нам маркеры и например переоткрыть файл заново - https://memorynotfound.com/gson-streaming-api-read...
    Ответ написан
    Комментировать
  • При использовании ролей, как сервер поймет что зашел user?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Рекомендую посмотреть библиотеку www.pac4j.org
    Конкретно по ролям. Вариантов несколько, например:
    1) Авторизуем всех без разбора, авторизованные без пароля получают роль user
    2) Авторизуем только менеджеров и админов, неавторизованные автоматически будут - user
    3) Авторизуем менеджеров, админов, пользователей с паролями и из соцсетей, неавторизаванные автоматически будут unauthorized.
    Ответ написан
  • Как на c# или java читать заголовки файлов?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    На яве есть проект - apache tika tika.apache.org
    Как раз для этих целей.
    Вот здесь есть туториал https://www.tutorialspoint.com/tika/index.htm
    Сама тика поддерживает парсинг текста и метаданных из приблизительно 15к разных форматов.
    Ответ написан
    Комментировать
  • Как построить работу с BigData?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Все достаточно просто, перестаньте думать таблицами и начните думать ДОКУМЕНТАМИ.
    У вас есть всего два документа - два индекса. Индекс Пользователей, и индекс Операций.
    Пользователь представляет из себя документ со всеми полями таблицы member. А Операция, состоит из конкатенации полей member-operation-operationtype. Да данные в индексе Операции будут дублировать некоторые поля из Пользователей, но это и не страшно, это правильно, так как это фактически лог.
    Ответ написан
    Комментировать
  • Почему провайдер не видит mac адрес?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Скорее всего у вас проблема с определением скорости интерфейса. Ваш провайдер наверняка экономит на кабеле, и вместо 4-х пар дал две, да еще и на коммутаторе зарезал скорость типа 100Мб half dumplex. Вот некоторые карточки и ошибаются в определении автоматических параметров подключения.
    У провайдера узнайте точные параметры подключения, и пропишите их через ethtool, и вставьте в настройки интерфейса.
    Ответ написан
    Комментировать
  • Laravel 5.5 Scout + Elasticsearch ошибка "No alive nodes found in your cluster"?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    env('ELASTICSEARCH_HOST', 'http://localhost:9200'),
    Не?
    И проверить, запущен ли elastic. Можно через curl
    leah@xxx:~$ curl -XGET http://localhost:9200
    {
      "name" : "DR4r-FT",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "Q4TCatpdSkaMoqlezR-TQQ",
      "version" : {
        "number" : "5.1.1",
        "build_hash" : "5395e21",
        "build_date" : "2016-12-06T12:36:15.409Z",
        "build_snapshot" : false,
        "lucene_version" : "6.3.0"
      },
      "tagline" : "You Know, for Search"
    }
    leah@xxxx:~$
    Ответ написан
    7 комментариев
  • Как реализовать поиск по фамилиям в базе?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Странно, у меня для русских полей стоит russian аналайзер, из коробки, ищет по словоформам неплохо, но на фамилиях не тестировал. Попробуйте еще и fuzzy query.
    Вот прямо сейчас проверил: "лебедь датчик", находит "Светильник Лебеди ночник с датчиком света Космос".
    Ищу площадки, получаю "Серая площадка и круглая черн.ручка под замок"
    Ищу лампа, находит и лампу и лампой и лампы, и лампа.
    Ищу гвоздь, получаю Скоба пластиковая с гвоздем
    PS. Elasticsearch 5.1.1 если чо. Специально никаких плагинов с русской морфологией не ставлю с версии 2.x
    Ответ написан
  • Что такое полная виртуализациия, паравиртуализация?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Витруализация - процесс, полностью эмулирующий "компьютер", с процессором, памятью, набором железа, от видеокарты, до жестких дисков. В виртаулизации мы полностью помещены в закрытый ящик, из которого теоретически ничего не торчит.
    В случае полной виртуализации, устройства виртуальной машины полностью эмулируют работу оборудования, вплоть до регистров, памяти и т.д. В этом случае внетренняя программа практически не подозравает о какй-то подмене.

    Паравиртуализация, тоже самое, что и в предыдущем случае, но некоторые компоненты, например сетевые или дисковые (и другие) устройства могут быть доступны напрямую через вызовы наружу виртуальной машины (с некоторыми оговорками). Для работы с паравиртуализированным оборудованием нужны отдельные драйверы и программные вызовы.

    Паравиртуализация в общем случае работает быстрее, так как нет накладных расходов на ненужную эмуляцию.

    Это в простом виде.
    Ответ написан
    Комментировать
  • Асинхронность Node.js против Java, в чем подвох?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Полнейшая глупость! На данный момент: а по хорошему уже лет 10 минимум, существует куча асинхронных фреймворков и сетевых библиотек, которые работают ровно на том же самом принципе, как и nodejs.
    Примеров, у нас их есть:
    - фреймворки jooby.org, sparkjava, springboot
    - библиотеки (серверы) netty, undertow, akka
    По производительности ничуть не уступают nodejs.

    Ну а как все это работает? Есть два вида программирования, которые можно совмещать:
    Старый и много кем используемый
    - сервер ждет сетевое соединение
    - как только соединение произошло, сервер запускает процесс/поток и ему передает открытое соединение.
    В этом случае мы ограничены количеством потоков/процессов в системе, имеем большой оверхед на создание процесса/потока. Зато нам не нужно сильно заботиться о работе с сокетами.
    Новый хайповый/модерновый
    - при старте в сервере региструются обработчики данных (наши сервисы/приложения)
    - сервер открывает сокет и слушает все открытые им ранее сокеты, висит в ожидании события прихода/передачи данных на методе select/poll/epoll или побобном.
    - как только сервер получил ответ, он вызывает зарегистрированный обработчик и передает туда порцию полученных данных, принимает эти данные обратно и и отправляет в сеть на нужное соединение
    В этом случае сервер работает в один поток, просто последовательно вызывая обработчики и отдавая им данные. Быстро, очень быстро, ловко, нет накладных расходов. Зато, если какой обработчик пытается сделать блокирующую операцию - виснут все остальные обработчики, поэтому обработчики с сервером общаются сообщениями и стараются не занимать много процессорных ресурсов. Программирование получается сложное.

    Также можно совмещать эти два подхода, делая и пул потоков и работая в асинхронном режиме.

    На почитать сюда например - https://ru.wikipedia.org/wiki/Epoll
    Ответ написан
    4 комментария
  • Какую основную рабочую ОС используют в повседневности для Java-разработки?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я - MacOSX + eclipse. Рядышком - Ubuntu + eclipse (хороший парень, пивка можно выпить). Немного дальше - windows + intelliJ (я сторонюсь его, маниак какой-то, да и на нас странно поглядывает, но пиво пьет с нами). Где-то далеко по телеграму, по его словам (тоже маниак, но приличный вроде, пива с нами не пьет, далеко ехать говорит) - MacOSX + intelliJ.
    Ответ написан
    Комментировать
  • Когда нужно использовать Spring Boot?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Посмотрите jooby.org, как замену springboot и springMVC. В Jooby и то и то органично совмещаются.
    Ответ написан
    Комментировать
  • Как взять первые 30 итераций?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Меняем
    for x in responsedata['data']:
    на
    for x in responsedata['data'][:30]:
    Да и вообще, как-то так:
    for item in responsedata['data'][:30]:
            for ph in item['SearchedWith']:
                print '%s:%s' % (ph['Phrase'], ph['Shows'])
                b = str(ph['Phrase'].encode('utf8'))
                c = str(ph['Shows'])
    
                # записываем в файл каждую фразу, полученную от Яндекса
                f.write(b + ':' + c + '\n')
    Ответ написан
  • Библиотека обработки аудио на python в реальном времени?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если под линуксом, то можно использовать биндинги к gstreamer.
    Ответ написан
    Комментировать
  • Какие дистрибутивы Linux вы посоветуете для практики NASM и C с низким порогом входа?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Попробуйте xubuntu.
    Облегченная ubuntu с легкой гарафоболочкой xfce4.
    Ответ написан
    Комментировать