Профиль пользователя заблокирован сроком с 24 марта 2024 г. и навсегда по причине: систематические нарушения пункта 5.2 правил сервиса
  • Как сказать «ничего не делаем» используя условные операторы?

    @nApoBo3
    Continue

    Но вообще считается "дурным" тоном использовать не "основное" поведение внутри if.
    Ответ написан
    Комментировать
  • В чем проблема подключения к БД Oracle?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Вероятнее всего в том, что нужно jdbc-драйвер для Oracle использовать, а не для MS SQL Server.
    Ответ написан
    Комментировать
  • Можно ли в mysql хранить 200 колонок, для 10+млн записей?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Смотрим здесь. Получаем для обычного INT 4 байта на одно число, для BIGINT 8 байт.
    200 * 4 * 10'000'000 = 8'000'000'000 или 8Gb.
    200 * 8 * 10'000'000 = 16'000'000'000 или 16Gb.
    По нынешним меркам сущие пустяки.
    Хранить, конечно же, нужно в нормальной форме, иначе суммирование придётся делать в приложении.
    Ответ написан
    3 комментария
  • Как получить доступ к логическим дискам на выделенном сервере?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    С помощью Java

    ProcessBuilder.start()

    ты можешь вызывать скрипт операционной системы (bash или Windows CMD) и если
    у текущего пользователя хватит прав то ты можешь увидеть результат работы df например
    $ df
    Filesystem      1K-blocks      Used Available Use% Mounted on
    none              8061940         4   8061936   1% /mnt/wsl
    .....

    потом забрать этот результат через stdout и далее парсить результат в Java.
    Ответ написан
    5 комментариев
  • Где и как хранить файлы пользователей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если тебе нужно временное место - то используй системную переменную

    System.getProperty("java.io.tmpdir")

    Или с префиксом и суффиксом - есть готовая функция которая возвращает файл.

    Files.createTempFile("", ".tmp")

    Вместо игр со счетчиком от 0 до 1000 - лучше использовать текущую дату-время или GUID.
    Ответ написан
    Комментировать
  • Где и как хранить файлы пользователей?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Это вообще не вопрос. Реальная проблема в том, как проверить, сколько физического места занимает папка пользователей "users"?
    Во первых если это реальная проблема - почему вопрос совершенно о другом?

    Во вторых - у вас в примере виндовый диск, что как бы странно для хостинга. В случае линуха все решается либо командой du -sm /your/directory/* либо установкой ncdu, который сильно быстрее, и соответственно что-то типа ncdu /your/directory/.
    Ответ написан
    7 комментариев
  • Где и как хранить файлы пользователей?

    xez
    @xez
    TL Junior Roo
    1. Адреса должны быть относительными всегда
    2. Место хранения следует задавать переменной
    Ответ написан
    8 комментариев
  • На сколько популярно и корректно хранить данные в столбце в виде JSON строки?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В конце 20-го века, когда Эдгар Кодд развивал свою реляционную теорию было очень
    модно все данные нормализовывать для хранения их в БД. Это соотвествовало экономии
    ресурсов (диски мерялись килобайтами и мегабайтами) и нормализация хорошо ложилась на
    техно-стек. Все данные должны быть атомарны. И ты - плохой DBA и программист если
    кладешь в ячейку что-то более комплексное чем просто атом.

    В 2000х развитие веб и XML(XHTML/SGML, XSLT, XPath) дало толчок новым видам
    хранения информации в виде markup languages. Появляются технологии семанического веба.
    Мечтатели-теоретики создают RDF, OWL. Базы данных пытаются успеть втянуть в себя новые типы.
    Oracle начинает поддерживать XML+Schema как тип данных в таблице. Браузер начинает
    поддерживаеть трансформацию XML и обогащение его стилями. XML - моден. Его внедряют
    везде где можно и где не нужно. Даже в конфигах Apache Http и в сборщике Maven.

    Параллельно Дуглас Крокфорд работает над Java Scrip Obj Notation и создает лайтовый язык
    для описания объектов и документов. Они - конкурируют с XML но JSON практически побеждает
    в вебе, полностью захватывая веб протоколы (Ajax, WebSockets, e.t.c). И интеракцию с сервером.
    JSON становится более популярный для REST. Многие БД тоже начинают поддерживать JSON.
    Postgres даже делает бинарный JSON и добавляет спец-индексы для быстрого поиска атрибутов.
    Узко-специализированные системы такие как Mongo изначально заточены на храннение JSON
    информации.

    BigData плавно проростает в 2007 (кажется) и где-то в 2014 (или позже) году фреймворк Spark начинает поддерживать DataFrames + Structured Types которые по сути являются зеркалом JSON. Фреймворк
    позволяет грузить в бигдату JSON-lines датасеты, автоматически выводя схему.

    Это - финал. Я считаю что после такой конвергенции в бигдату JSON получил путевку везде где только можно.
    Сегодня вы можете без стыда использовать JSON везде в любых уровнях стека (даже в Redis) если
    у вас хватает памяти и вы уже порешали вопросы бизнес-согласованности данных и умеете эти
    данные инвалидировать и обновлять.

    Если поискать анти-паттерны применения JSON в базах данных - то я-бы предложил такую метрику.
    Если вы очень часто обновляете маленькое поле внутри большого JSON документа и это создает
    сильные I/O нагрузки то скорее всего вам надо перепроектировать вашу БД как-то по другому
    и вынести это поле во вне по отношению к документу
    Ответ написан
    5 комментариев
  • Почему не выполненяется условие?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    console.log(typeof settings);
    console.log(typeof flag);

    Почти уверен что там будет строка в одном или обоих случаях. Поэтому проверка и не работает.
    Ответ написан
    1 комментарий
  • В каком контексте значение класса String является неизменяемым в отличии от StringBuilder?

    @Dementor
    программист, архитектор, аналитик
    1. Нет! Строки неизменяемые. Конкатенация строк - это операция по созданию нового объекта с новой ссылкой.

    2. String это базовый тип для Java, а StringBuilder добавили только в 5-ю версию. Апгрейд существующего класса не стали делать по соображениям совместимости и чтобы не поломать String Pool, который для билдера не имеет смысла.

    3. Потому что это разные типы!!! Хотите, чтобы String и StringBuilder сравнивались по содержимому? Делайте дочерние классы, в которых переопределяйте сравнение, а потом экземпляры своих классов присвойте переменным типов String и StringBuilder - магия, сравнение заработало!
    Ответ написан
    Комментировать
  • В каком контексте значение класса String является неизменяемым в отличии от StringBuilder?

    xez
    @xez Куратор тега Java
    TL Junior Roo

    Почему нужно было помимо класса String создавать дополнительные классы по типу StringBuilder?

    Потому, что String - иммутабельный класс. Чтобы конструировать строки как раз добавлены StringBuffer (в версии 1.0) и StringBuilder (в 1.5).

    В данном примере строка s спокойно изменяется путем конкатенации, что аналогично sb.append

    В итоге у вас каждый раз создается новый объект. Не всегда это бывает уместно.

    2. Почему все методы StringBuilderнельзя было поместить в класс String, чтобы не плодить классы строк?

    Потому, что это нарушает принцип единой ответственности. Так же можно заметить, что мысль не стоит на месте и со временем появляются новые методы для конструирования строк.

    3. Почему s.equals(sb) равно false, если мы сравниваем только значения, а не ссылки

    Потому, что вы сравниваете разные объекты. StringBuilder - это не String.
    Ответ написан
    Комментировать
  • Как правильно сгенерировать Html форму в ajax?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день!
    Крайне не поддерживаю вариант с генерацией формы на стороне сервера и отправкой готовой html формы. Больше предпочитаю генерировать json и полученные данные сеттить в имеющуюся форму.
    А так, нет никаких правил. Можно и так и так.
    Ответ написан
    2 комментария
  • Как работает HashMap с многопоточностью?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Недетерминировано работает. Без синхронизации между потоками у нас нет гарантий последовательность и видимости, так что даже без одновременного вызова мутирующих методов есть шанс сломать инвариант.
    Ответ написан
    6 комментариев
  • Как сделать валидацию полей формы на ajax?

    @eres_time
    Добрый день !Используйте fromData.
    -----
    Пример https://stackoverflow.com/questions/6974684/how-to...
    Ответ написан
    Комментировать
  • Как компилировать jar в exe?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Во-первых, в 2023-м, как и во все предыдущие годы, и во все последующие, делать такого не надо. Если хотите распространять свой софт в виде платформозависимого бинарника, выбирайте соответствующий язык.
    Во-вторых, чтобы можно было без проблем открыть на другом ПК, можно в бинарник не компилировать. Уже лет шесть, как в составе JDK есть утилита jlink, позволяющая собрать приложение вместе с JRE и стартовыми скриптами.
    Ответ написан
    9 комментариев
  • Как узнать URL страницы с iframe?

    @maximq
    QA Engineer
    document.getElementById("iframe_id").contentWindow.location.href

    или
    document.getElementById("iframe_id").src

    https://stackoverflow.com/a/12069199
    Ответ написан
  • Можно ли перенаправлять не предусмотренные системой запросы на другие ресурсы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Информационная безопасность
    software engineer
    Конечно можно.
    Задача разработчика ресурса такие запросы не обрабатывать. Возможно блокировать. И всегда быть готовым, что кто-то пришлет непредусмотренный системой запрос.

    Собственно в этом заключается часть взлома чужого ресурса - понять, как сформировать запрос, который сделает что-то непредусмотренное и полезное для хакера.
    Ответ написан
    1 комментарий
  • Как работает static final?

    @rPman
    static по определению, без каких либо final и прочего, это поле класса а не экземпляра, сколько бы ты экземпляров объекта не создал, переменная будет одна и та же. Ты можешь (будешь) обращаться к этой переменной даже не имея экземпляра, т.е. ClassName.static_member_name, но конечно синтаксически ты можешь обращаться к статическому члену и через экземпляр объекта object_variable.static_member_name.

    final делает эту переменную - константой, т.е. мало того что эта переменная для класса будет в одном экземпляре, она не может быть изменена, а значит компилятор ее может оптимизировать до буквально ее отсутствия (например скалярные типы легко могут подставляться по мере использования в коде)
    Ответ написан
    Комментировать
  • Как работает static final?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Одно на все приложение.
    Ответ написан
    Комментировать