• Чем отличается Java SE 8u281 от Java SE 16?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Ответ написан
    Комментировать
  • Что делать с кучей HDD?

    @rPman
    Набиваешь компьютер контроллерами, расширяющими количество sata (ide и другие, какие у тебя диски), можно несколько компьютеров, и физически подключаешь диски.

    Осторожно, разные способы подключения могут задавать разные ограничения. Например USB контроллеры ограничивают совокупную скорость подключенных к ним дискам (обычно правда только один диск можно) - usb2 до 30мбайт/сек, usb3 примерно сравнимо с sata (5гбит/сек это), pci дают не больше 100мбайт/сек (133 кажется), pci-e 8 максимум выдаст 8гбит/с.
    Т.е. к примеру не пытайся к одной старой pci подключить 5 дисков, совокупная их скорость не превысит 100мбайт, что нормально для одного диска но фатально для массива.

    Теперь второе, протестируй каждый диск на линейную и не только скорость, как в начале так и в конце, плюс собери статистику (например старые диски с большим количеством перемапленых бэд секторов могут давать нормальную скорость в одном месте но плохую в другом), каждому диску пропиши скорость в наихудшем.

    Третье, собирай софтварные рейды из дисков с приблизительно равными скоростями в худшем, и тем более не все в один огромный, это бессмысленнно, но примерно два года у меня проработал конфиг (потом разобрал так как купил норм диски) из старых дисков разного размера где был собран двухуровневый каскадный рейд, где из двух дисков был собран raid0 с чередованием (это ускоряет итоговый результат без резервирования) а затем с использованием этого логического тома и трех других собран raid5, при этом размеры всех дисков были разные, и были использованы специально созданные тома на тех дисках что больше, из остатков собрал raid0 (точнее тот что предлагает btrfs это просто объединение разделов в один, последовательным присоединением) но из-за ненадежности этот хвостовой так для хранения не использовался.

    С помощью linux nbd или iscsi утилита istgt (или aoe если есть возможность выделить отдельный сетевой кабель на каждый логический диск) или даже drbd можно объединить диски с разных физический компьютеров.

    Важно, не используй аппаратные рейды - это вендорлок, к тому же дешевые встроенные в материнку не дают никакого бонуса, а дорогие тут наверное бессмысленны.

    Вместо dmraid можно использовать фичи btrfs или zfs, где функции рейда встроены в файловую систему (осторожно btrfs raid5/6 заявлены как нестабильные, я не знал, пользовался несколько лет, вроде проблем нет, даже когда менял сбойный диск, но это конечно не аргумент)

    Не стоит создавать один огромный массив, мало того, даже в пределах большого диска я создаю несколько маленьких (хотя конечно это уже от твоих задач должно исходить), так как обслуживать маленькие заметно удобнее, к примеру изменение класса raid (raid1 -> raid5) или добавление диска raid5 и переконфигурирование можно делать поэтапно, плюс raid rebuild обычно медленней пересозадания (т.е. бакапишь данные с маленького, пересоздаешь с другой конфигурацией, тем более к примеру когда сначала у тебя были 3тб диски а потом станешь докупать 4..6тб, достаточно использовать терабайтовые куски чтобы горя не знать...

    Можно пользоваться lvm или все отдать на откуп btrfs, уже твое усмотрение. Я лучше буду работать с несколькими независимыми точками монтирования, разруливая при необходимости симлинками.
    Ответ написан
    2 комментария
  • Как каждый 10 секунд считывать данные с бд?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    while True:
    ...
    time.sleep(10)

    При чём здесь тyрникет, два человека и xml?
    Ответ написан
    4 комментария
  • Кто удалил файл?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    Есть ли подобные софты для отслеживания удаленных файлов? (кем, когда, какой). Посоветуйте
    А что можно сказать не зная ОС?
    В windows можно настроить аудит файлов.

    Опять же цели непонятно - вам выследить злоумышленника, или вернуть нужный файл на место?
    Чаще всего перемещают - нашли и на место.
    Иногда удаляют - для таких целей удобнее теневые копии использовать.
    Ответ написан
    2 комментария
  • Какое время писать в базу данных если пользователи в разных временных зонах?

    Писать в базу время в UTC будет проще всего.
    Нерекомендуемой альтернативной будет хранить время-дату в БД вместе с тайм зоной.
    Ответ написан
    1 комментарий
  • На чём мне написать десктопное приложение?

    MaKvc
    @MaKvc
    Отчаянный веб-разработчик
    Каждый будет советовать то, что ему ближе по духу. Я бы например использовал Qt. Если у вас есть временные рамки и недостаточно знаний и практики, можно взять Lazarus (Free Pascal). Да-да-да!!! Оно еще живое! Имеет кучу возможностей, огромную поддержку платформ, можно довольно быстро решить поставленную задачу.
    Ответ написан
    19 комментариев
  • Есть ли утилита для просмотра списка файлов в ZIP на S3 бакете?

    @rPman
    для ubuntu можно подключить s3 в качестве обычного каталога с помощью fuse утилиты s3fs и уже там любым архиватором работай с архивом
    Ответ написан
  • Не могу различить Node Js + Rect\Vue это фронтенд? Или уже Backend?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Нода выступает в 2 ипостасьях это дев тулза для сборки фронта и полноценный бэкенд. Вью и реакт это фронт, но в связке с серверным рендерингом они могут быть и выполненны на Бэке. Но в общем случае это бэк и фронт.
    Ответ написан
    Комментировать
  • Не могу различить Node Js + Rect\Vue это фронтенд? Или уже Backend?

    Aetae
    @Aetae
    Тлен
    По нынешнем временам "классическая" php-лапша из смеси php, html и css - это фуллстак, а не бэкэнд.
    Бэкэнд - то что на сервере, фронтэнд - то что на клиенте. Там и там - фуллстак.
    Ответ написан
    Комментировать
  • Как не сломать бд в докере?

    vabka
    @vabka
    Токсичный шарпист
    данные нужно хранить на внешнем VOLUME, который монтируется к контейнеру
    А лучшее вообще базы данных в докер не ложить
    Ответ написан
    3 комментария
  • Как работать с большим количеством запросов?

    @StiflerProger
    Просто каждый запрос делай в транзакции с "select for update".
    1. Сразу после получения запроса ставишь блок "select for update".
    2. Проводишь валидацию данных. Проверяешь оплату в другой таблице и тп.
    3. Добавляешь 10 рублей юзеру.

    Если у тебя юзер может даже после этого добавить себе 1000 раз по 100 рублей, то проблема в шаге #2.
    Т.е. твой момент с "более ее увеличивать нельзя" должен проверяться в шаге #2.
    Ответ написан
    Комментировать
  • Как проверить схожесть двух лиц?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Берете dlib - и делаете
    Ответ написан
    Комментировать
  • Почему Возвращает букву?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Потому, что 65 - это код английской буквы "A".

    Если вы хотите чтобы отобразило 65, нужно использовать либо модуль strconv, либо fmt.
    package main
    
    import "fmt"
    import "strconv"
    
    func main() {
      var i int64 = 65
      fmt.Println(strconv.FormatInt(i, 10))
      // или так
      fmt.Printf("%d\n", i)
    }
    Ответ написан
    2 комментария
  • Как сделать многопоточное выполнение команд?

    @rPman
    Абсолютно все действия, требующие на выполнение времени, должны быть асинхронными, запускаемые в отдельных потоках. Как минимум это работа с базой данных, сетевыми запросами и даже файлами.

    Проще - нужно чтобы сам обработчик работал не в одном потоке а в нескольких или даже процессах/серверах, т.е. запускай несколько обработчиков, а центральный, через который идет подключение, должен только перенаправлять запросы.
    Ответ написан
    Комментировать
  • Почему сервер не отвечает?

    @q2digger
    никого не трогаю, починяю примус
    security groups в амазоне настраивали?
    https://aws.amazon.com/premiumsupport/knowledge-ce...
    Ответ написан
    Комментировать
  • Существует ли библиотека для трансляции php кода в node.js?

    neuotq
    @neuotq
    Прокрастинация
    Технически сам язык конечно же можно перевести в другой, я думаю даже простенькие функции будут работать.
    НО! Дальше будет куча но. Обычной трансляцией не обоёдешься, так как много подводных камней и особенностей самого API PHP, принципов работы многих встроенных библиотек, хаков, костылей и просто приёмов которые используют люди в своих проектах и тп.
    В таком огромном и сложном проекте как Wordpress этого всего просто нереальное количество.
    Вы же понимаете часто даже код больших проектов, в рамках одного языка(любого) тяжело переводить с версии на новую версию. А тут на другой язык/платформу исполнения кода.
    Это в любом случае ручной труд, а автоматический транслятор вам только будет помогать переводить конкретные конструкции, а так огромное количество ручного труда для каждого файла/класса/функций и тп.
    Технически это возможно, но займёт огромное количество человека-часов, легче с нуля написать.
    Второй вариант найти решение с условной виртуальной машиной, которая исполняет php код внутри js окружения. Были когда-то подобные пакеты, но спроса нет и всё заглохло. Это тоже трудоёмкий процесс, нужно бежать и развивать свою такую штуку.
    Поэтому сегодня есть только условные прокси на node.js, которые запускают php скрипты на php(тем или иным способом, но исполняет их именно php).
    Поэтому мы приходим к технологии WebAssembly, там есть например проект wasmer, с помощью которого можно запускать wasmer-php. Но снова таки, это не трансляция кода, а просто запуск php в среде браузера, js тут уже чисто для управления и запуска самого wasmer...
    Ответ написан
    Комментировать
  • Почему C/C++ проекты очень долго компилируются?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Компилятор долго оптимизирует код. Смотрит, что где используется, что можно выкинуть, где можно переставить местами что-то неважное, где цикл развернуть, где еще чего. Очень много оптимизаций. Обработка каждого файла - долгое дело.

    Архаичная система заголовочных файлов же приводит к тому, что при изменении небольшой части проекта, фактически меняется куча файлов, которые все надо заново парсить и оптимизировать.
    Ответ написан
    4 комментария
  • Как первоначально компилировали сами компиляторы написанные на яву?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Так дочитайте историю создания языка С, об этом полно вполне интересных статей, в том числе и на русском.

    Сперва были только инструкции, которые вводили напрямую, потом через перфокарты/перфоленты, затем написали уже язык ассемблер, затем написали язык b, на котором написали C, затем уже на C перекомпилировали С и так далее.
    Ответ написан
    Комментировать
  • Как первоначально компилировали сами компиляторы написанные на яву?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    См. "Раскрутка компилятора". Кратко - создаётся (в машкодах, ассемблере, или другом языке) компилятор минимального подмножества языка, пригодного для разработки. Затем на этом подмножестве пишется компилятор, способный скомпилировать само это подмножество. Ну и дальше процесс продолжается итеративно, добавляются фичи в язык, дописывается компилятор и тд.
    Ответ написан
    Комментировать