Задать вопрос
  • Почему нельзя создать массив списков?

    axifive
    @axifive
    Software Engineer
    Так нет же запрета создать массив из ArrayList
    ArrayList<Object>[] list = new ArrayList[5];
    for (int i = 0; i < 5; i++) {
       list[i] = new ArrayList<Object>();
    }
    list[0].add(new Integer(1));
    list[0].add(new String("2"));
    list[1].add(new Float(5.0));

    как и ArrayList из массивов
    ArrayList<Integer[]> list = new ArrayList<Integer[]>();
    Ответ написан
  • Squid. Как отправить пакеты в определенный интерфейс?

    athacker
    @athacker
    В конфиге сквида параметр tcp_outgoing_address.
    Ответ написан
    Комментировать
  • Организация хранения большого количества небольших файлов в нескольких контейнерах с одной точкой монтирования. Как?

    athacker
    @athacker
    Вариант хранения всех файлов в облаке с монтированием локально по WebDAV вам не подойдёт? Винда умеет WebDAV-хранилища монтировать как локальный диск.
    Ответ написан
    1 комментарий
  • Как админу не грубить пользователям?

    athacker
    @athacker
    Почитайте "Тайм-менеджмент для системных администраторов" Томаса Лимончелли. Хорошая книга, и отчасти даёт ответы на вопрос "как организовать приём и обработку пользовательских заявок".

    Нужно внедрить тикетную систему, и всех вежливо склонять к заведению заявок именно через неё. Если не хотят заводить заявки пользователи -- заводите за них сами. Т. к. это позволит не терять заявки, и заодно будет видно, сколько времени потрачено на каждую заявку. Для заявок типа "сами нажали кнопку DND" можно сделать специальную отметку, чтобы при выгрузке отчёта по времени можно было отличать заявки по делу от вот такой хрени, и потом показать начальству, какой процент времени вы решаете проблемы совсем не профильного характера.

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

    Начать продвижение в массы тикетницы можно с молодёжи. Они более обучаемы, им легче разобраться с интерфейсами. Когда народ поймёт, что заявки через тикетницу выполняются быстрее, то сарафанное радио это постепенно разнесёт по всей конторе.

    И главное оружие админа -- это вежливость :-)

    -- У меня там проблема такая-то и такая-то!
    -- Извините, я сейчас занят такой-то проблемой. Создайте, пожалуйста, заявку, а то меня сейчас отвлекут, и я про ваш вопрос забуду.

    Ну и медленно, но неуклонно гнуть процесс именно к этому. Чтобы мысль "заведёная заявка а) выполняется и б) быстро, а озвученная на бегу в коридоре выполняется либо медленно либо забывается" постепенно дошла до всех.

    С новыми пользователями ещё проще, их можно сразу подсаживать на эту схему, мотивируя тем, что "у нас так принято, так построен процесс, вот тут инструкция, почитайте, пожалуйста. Если будут вопросы -- готов ответить".

    С одной стороны понятно, что вам совсем не интересно решать задачи саппорта, а интереснее повозиться с серверами, но с другой стороны, без организации процесса вам нормально возиться с серверами не дадут, будут постоянно дёргать. Поэтому простроение процесса саппорта и в ваших интересах тоже.
    Ответ написан
    Комментировать
  • Как писать библиотеки для gui? Что нужно знать?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Геометрию, математику и 2D графику - это основы. Графический интерфейс рисуется с использованием простых графических примитивов: пиксель, линия, прямоугольник, овал и прочее, а так же с отрисовкой готовых изображений различных форматов - png, jpg, svg, шрифтов и прочее. В целом структура графического интерфейса примерно такая: есть основной виртуальный экран, куда отрисовываются элементы интерфейса (по сути массив пикселей), есть дерево элементов со своими свойствами (размер, цвета, примитивы, хэндлеры действий, события и прочее), у каждого элемента есть свой z-индекс, или расположение на виртуальном экране по высоте (т.е. один элемент рендерится поверх другого). Рендер всего экрана должен проводить вычисления где какой элемент располагается, как перекрывает собой элементы под ним, какие у него есть прозрачные пиксели, а так же взаимодействие пользовательского ввода со всеми элементами на виртуальном экране.
    Ответ написан
    Комментировать
  • Почему Докер не синхронизирует изменения в volume?

    akelsey
    @akelsey
    Что бы меньше иметь проблем (меньше компонентов и надстроек, меньше проблем), если хостовой машинкой необходимо иметь виндоус:
    1. я бы не использовал Docker Desktop, удалил бы его (всё равно он использует WSL)
    2. установил бы докер как сервис в WSL2, например как тут https://dev.to/bowmanjd/install-docker-on-windows-...
    3. Монтировал бы линукс пути без всяких W:\\src
    4. с windows подсистема линукс вроде бы доступна на smb share \\wsl
    5. рассмотрел бы переход на линукс или хотя бы отдельно виртуалка под разработку.
    Ответ написан
    5 комментариев
  • Какая из книг лучшая для изучения java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    подскажите одну книгу,которую буду читать и не жалеть о том что теряю время в пустую

    Просьба очень странная. Даже невозможно нормального ответить.
    Авторов обычно трое. Шилдт. Эккель. И Хорстман. Все пишут про Java. Примерно
    одно и тоже. Но поскольку ты очень занятой и тебе времени не хватает - то я тебе
    не советую читать ничего. Работай и задавай вопросы здесь. Когда появится желание
    читать - выбери жестко одну тему. Например рефлексия. И читай только про нее.
    Вот так.
    Ответ написан
    1 комментарий
  • Как адресуются пакеты адресату с серым ip?

    paran0id
    @paran0id
    Умный, но ленивый
    Технология называется NAT.
    Ответ написан
    Комментировать
  • Как писать код на android?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужна нормальная клавиатура. Купи себе недорогое устройство класса "нетбук".
    На телефоне писать не надо. Это просто неэффективно. Зря портить себе зрение и пальцы.
    Ответ написан
    Комментировать
  • Почему не работают библиотеки Java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    1. Рекомендую использовать Intellij Idea
    2. В импортах у вас указаны пакеты из java EE, а у вас java SE.
    3. Если библиотеки не входят в ваш SDK, их надо подключать отдельно. Либо скачав и указав в classpath (IDE с этим может помочь), либо используя maven / gradle.
    Ответ написан
    Комментировать
  • Правильно ли решил задачу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно сделать коллекцию из этих строк
    "Two turtle-doves", "Three French hens"
    тогда алгоритм упрощается. Визуальная копи-паста уходит.
    Ответ написан
    4 комментария
  • Какие есть альтернативы базам данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Альтернатив - миллионы. Есть библиотеки которые предоставляют доступ к файлам наподобие баз данных. Это LevelDb например.

    Но обсуждать этот вопрос глубоко - нет смысла т.к. неясны требования к твоей системе хранения.

    Если тебе достаточно файлов (csv, json, xml) то ради бога! Храни в файлах. Это будет очень даже
    экономно с точки зрения TCO и никакой админ не нужен. А вот когда ты будешь гонять запросы
    по файлам и тебе понадобится индексирование, транзакции и изоляция - вот с этого момента
    можно обуждать всякие dbms или системы на файлах.
    Ответ написан
    4 комментария
  • Как правильно отправлять файлы в RESTfull приложении?

    @Dmtm
    Android
    сейчас, раз уже есть массив байт, то передавать вместе с классом, так проще
    а вообще - вынести работу с файлами в отдельный репозиторий (там и кеширование можно добавить для экономии) и в Book останется только имя файла
    Ответ написан
    2 комментария
  • Как поставить пароль на архив tar/gzip?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Tar и gzip это очень старые утилиты. Им по 30-40 лет. И создавались они в те времена когда симметричное шифрование еще не было так развито.

    Но архивчик можно после упаковки зашифровать другими утилитами например openssl.
    openssl enc -in file.txt -out encypted_file.txt -e -aes256

    Я так делал когда шифровал бекапы oracle dbms.

    Если переписать чуть лучше скрипт - то можно объединить операции tar->gzip->openssl в один пайплайн
    без воздания промежуточных файлов.
    Ответ написан
    3 комментария
  • Зачем нужна рекурсия в реальных случаях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Рекурсия нужна при обработке иерархических данных. Например - обойти файлы и каталоги
    в файловой системе и выполнить какое-то действие. Или действие с условием. Например если
    в текущем фолдере есть фолдер .git - то выполнить какой-то git script.

    Рекурсия может понадобиться при работе с документами XML/JSon (шаблон composer). И хотя
    в некоторых API рекурсия может быть частично скрыта за языками XPath/JSonPath тем не меннее
    ее рекурсивная природа остается налицо. Кроме того если вам достался узкий API типа DomDocument
    без поисковых диалектов - то обойти его можно на любом ЯП с рекурсивной функцией.

    Рекурсия нужна при парсинге сайтов. Это вобщем просто более расширенная трактовка работы с файловой
    системой. Если Url-s это как-бы файлы в web пространстве и они имеют ссылки друг на друга - то вы
    можете рекурсией это все обходить.

    Рекурсия почти всегда нужна при работе с графами. Берите любой алгорим на теорию графов и я готов
    спорить что 99% он будет содержать рекурсию.

    Все настольные игры (шахматы-шашки) в основе своего алгоритма альфа-бета поиска с отсечениями и
    BWF базируются на рекурсии.
    Ответ написан
  • Как хранить статическую информацию в spring-приложении?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Делать его бином тоже как-то не хочется

    Не совсем понятно почему не хочется. Экономишь память? Или время иниализации бина?

    У тебя проблема вовсе не в Spring. Здесь если убрать Spring за скобки - то ты также будешь ломать
    голову над тем как разложить твои данные по методам.

    Попробуй реши эту задачу вообще без Spring. Будет простое ООП-решение. Вот затащи его потом
    в Spring и вопрос сам собой решится.
    Ответ написан
    Комментировать
  • Подскажете по архитектуре "мультисервисного" приложения?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Это значит, мне надо сделать 1000 репозиториев, в каждом Х методов (получение по ID, получение по значению поля, одного объекта, коллекции...). И ещё 1000*Х методов в контроллерах....

    Зачем такой ужас. Делай только те репозитарии которые реально задействованы в бизнес-задачах.
    Из личного опыта могу сказать что если приложение спроектировано по умному - то ему не нужно
    выделять каждую таблицу в Entity.
    Ответ написан
    3 комментария