Задать вопрос
  • Какой ПК собрать под Linux?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    У меня макбук про, я туда поставил vmware fusion и запускаю любые дистрибутивы. Рабочие серверы арендую в облаке, например на digital ocean и в mail.ru. На работе кокло 100 клинетов intel nuc6 с целеронами на борту, с загрузкой по сети, коннектятся к кластеру линуксовых машин. Везде debian8/9. Проблем нигде с производительностью нет!
    Ответ написан
  • Может ли человек навредить мне "перехватом" пакетов?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    1) некий человек понтует
    2) ssh взломать - задача нетривиальная
    3) просто забейте
    4) намекните, а хорошо ли он выучил "тапы" УК?
    Ответ написан
    2 комментария
  • Для чего используется Java в современном вебе?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вот я, как раз сбежал обратно на яву после 8 лет программирования на python!
    И несказанно этому доволен - java8 стала очень и очень приятная, ну а бонусом прирост в скорости на моем приложении - 200х!
    И так, как минимум рекомендую для web посмотреть jooby.org, sparkjava.org и конечно же spring boot.
    На jooby как раз пишем маркет, очень весело и современно.
    Да, на котлин пока не смотрел.
    Ответ написан
    2 комментария
  • Как посчитать разницу между двумя данными в градусах значениями географической долготы в метрах?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Координаты, это условные точки широты и долготы на поверхности шара. К метрам и километрам они имеют отношение только при пересчете на поверхность шара. Считают обычно по формуле гаверсинусов. Подробно описано здесь - gis-lab.info/qa/great-circles.html
    На больших расстояниях может давать погрешность в 20-30 километров - расстояние от Москвы до Вашингтона например.
    Для более точных расчетов используют модель геоида - упрощенной модели Земли, но и формулы там совершенно другие.

    PS. Еще раз перечитал вопрос, и вот что хочу сказать...
    Долгота (меридиан) - окружность, проходящая через два полюса. Вторая долгота пересекает первую в точках полюсов, где расстояние между ними будет равно Нулю! Другими словами, расстояние между двумя долготами (двумя меридианами) сильно завит от широты (параллели), на которой измерять это расстояние .
    Ответ написан
    Комментировать
  • Правильно ли я работаю с сессиями и транзакциями Hibernate?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ух, сколько кода... Рекомендую сесси. хибернейта класть в servlet-filter, здесь ее открывать, и тут же ее закрывать.
    Стек вызовов у вас будет следующий
    filter ->
       -> servler
           hibenate
       <- servlet
    filter

    Примерно так - https://gist.github.com/mccxj/146009
    Ответ написан
    1 комментарий
  • Можно ли обойтись без предварительного создания пользователя при авторизации через tacacs+?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Другими словами, вам нужно создавать home-каталог, если прошла авторизация? А авторизация, как я понимаю, у вас проходит?
    Для этого в pam нужно подключить www.linux-pam.org/Linux-PAM-html/sag-pam_mkhomedir.html
    Но, есть одно но - этот модуль не может создавать вложенные подкаталоги.
    Например, если у пользователя каталог типа /mount/homes/office1/leah , то нужно создать /mount/homes/office1, а домашний каталог создастся автоматически.
    Ответ написан
    Комментировать
  • Не включается dhcp сервер линукс, как исправить?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Скорее всего у вас в конфиге dhcp указан нее тот диапазон адресов, что имеется у сетевой карты. Ну или где-то в конфиге напортачили.
    Ответ написан
    Комментировать
  • Infiniband по двум портам?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    У вас opensm запущен на одном из хостов? По идее должно работать.
    Ответ написан
  • Наиболее простой и быстрый способ проксировать запрос?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    простым маскарадингом проблему не решить разве?
    на этой машине устанавливает firewall, на интерфейс вешаете маскарадинг IP-адресов, в настройках openvpn сервера прописываете маршрут к этому хосту через ваш VPN.
    push "route 1.2.3.4 255.255.255.255"
    Ответ написан
    7 комментариев
  • Что дает Java Spring?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вся и идея spring и ему подобных в технологиях DI и IoC.
    Первая технология DI - Dependency Injection - внедрение зависимостей. Смысл следующий, пусть у нас есть класс, который зависит от другого класса, тогда контейнер автоматически найдет все зависимости и сам проинициализирует нужный класс. Пример: пусть у нас есть интерфейс "Фрукт", класс "Яблоко", интерфейс "Паразит", класс "Червяк". В класса "Яблоко" указываем в одном из методов или конструкторе зависимость от интерфейса "Паразит". Теперь положим в контейнер классы "Червяк" и "Яблоко", и попросим контейнер создать дать нам инстанс класса "Яблоко".
    Контейнер выполнит следующие действия:
    - посмотрит, что без класса, реализующего интерфейс "Паразит", он не может создать "Яблоко".
    - посмотрит на зарегистрированные классы, не реализует ли кто интерфейс "Паразит" и обнаружит класс "Червяк"
    - создаст инстанс класса "Червяк"
    - создаст инстанс класса "Яблоко" и передаст ему инстанс класса "Червяк"
    - отдаст созданный инстанс "Яблоко" нам.

    Теперь мы можем создать класс "Ева" с зависимостью от интерфейса "Фрукт", положить его в контейнер, и положить в контейнер класс "Адам" с зависимостью от "Ева" и попросить создать нам инстанс класса "Адам" :-)
    MutablePicoContainer pico = new DefaultPicoContainer();
    pico.addComponent(Fruit.class);
    pico.addComponent(Worm.class);
    pico.addComponent(Eve.class);
    pico.addComponent(Adam.class);
    .....
    Adam adam = pico.getComponent(Adam.class);


    Вторая технология IoC - Inversion of Control - контроль управления - это как раз и есть одна из реализаций принципа DI, когда внедрение зависимостей происходит через посредника - фреймворк.

    Легче всего разобраться с этим (а уж потом переходить к spring) - поработать с простыми контейнерами типа picocontainer , nanocontainer и guice.
    - picocontainer.com/introduction.html
    - https://github.com/google/guice
    Ответ написан
    Комментировать
  • На каком контроллере можно реализовать HID устройство (при нулевом опыте общения с аппаратной частью:)?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Например на STM32. Практически любая отладочная плата подойдет, например STM32F4DISCOVERY. Кстати, там демо-прошивка как раз этулирует компьютерную мышку и мыргает диодиками.
    www.st.com/en/evaluation-tools/stm32f4discovery.html
    Ответ написан
    Комментировать
  • Придумать хорошее тестовое для 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к разных форматов.
    Ответ написан
    Комментировать