Задать вопрос
  • Обязательно ли маршрутизатор должен пропускать через себя весь трафик?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Странный вопрос. Если нужно, чтобы трафик ходил без маршрутизатора - поместите хосты в один сегмент.
    Ответ написан
    3 комментария
  • Как можно вылечить файлы с размером 0 байтов?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    Просто IT'шник.
    Безопасное извлечение(отмонтирование) придумали для слабаков.
    Сильно вероятно что файлы не успели еще физически записаться на диск т.к. запись идет кэшированно. Т.е. перед тем как вытащить флешку нужно было дать команду sync или отмонтировать диск(при отмонтировании тоже происходит sync ). Можете попробовать конечно востановить файлы но я думаю что шансов достаточно мало.
    Ответ написан
    2 комментария
  • Где взять уже настроенный LAMP-сервер на Ubuntu?

    @dmtrrr
    Backend developer
    ansible
    Ответ написан
    Комментировать
  • Как принять WiFi на большом расстоянии?

    Jump
    @Jump
    Системный администратор со стажем.
    Хорошая направленная антенна, на обоих устройствах и точная настройка этой самой антенны.
    Ну и разумеется прямая видимость, и отсутствие препятствий в зоне Френеля.
    Ответ написан
    Комментировать
  • Какой командой разархивировать вложенные архивы?

    BuriK666
    @BuriK666
    Компьютерный псих
    tar -xJf archive.tar.xz -C /path/to/directory/
    Ответ написан
    Комментировать
  • Как избавиться от ада зависимостей в Debian?

    @AVKor
    Как избавиться от ада зависимостей в Debian?

    В Debian такой проблемы нет.
    Ответ написан
    Комментировать
  • Адекватна ли модели БД?

    @Imrahil
    Ну вот вам например поиск по адресу...все вы уперлись в БД... запрос конечно сделаете но лучше так не надо.
    Ограничивайте сразу размеры полей.

    И вопользуйтесь советами Алексей Черемисин и Stanislav
    Ответ написан
    Комментировать
  • Как лучше организовать autocomplete-поиск по MySQL-базам?

    Последний вариант верный. elastisearch или sphinxsearch. Синхронизацию в реальном времени придется сделать у вас в приложении (пишите новый объект сначала в бд, и потом в es|ss).
    Ответ написан
    Комментировать
  • Какое оборудование для локальной сети выбрать?

    mikes
    @mikes
    30к не реально, за эти деньги можно только понаставить домашних роутеров и обычный комп (2 ядра 2 гига игровая видеокарта), Даже на микротиках не выйдет по деньгам
    Ответ написан
  • Как правильно писать в коде имена сложных терминов?

    @klim76
    android/java/sql
    3. Переводить на английский.

    true
    Ответ написан
    Комментировать
  • Как распознать дедлок?

    alfss
    @alfss
    https://career.habr.com/alfss
    Предлагаю попробывать на практие: https://www.tutorialspoint.com/java/java_thread_de...
    Ответ написан
    1 комментарий
  • Что лучше использовать для вебсокет-сервера на Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Могу посоветовать не использовать потоки. Используйте асинхронный aiohttp.
    Ответ написан
    3 комментария
  • Какую БД выбрать под node debian?

    Deissh
    @Deissh
    I like Python, Node.JS, Go, pain, bugs and my cat.
    Будет достаточно использовать MongoDb с кешированием в памяти, так как 1.5кк записей (по 200 байт) будет занимать не более 0.4 гб.
    Ответ написан
    Комментировать
  • Как увеличить производительность скрипта?

    @neol
    Самый очевидный вариант: сократить количество проходов по массиву.
    Второй проход вам совершенно не нужен, т. к. уже на первом можно подсчитать количество "закрашенных" точек (если точка ещё не закрашена - закрашиваем её и увеличиваем счётчик, иначе переходим к следующей). Имея количество "закрашенных" точек и площадь холста рассчёт сводится к одному действию, а сложность алгоритма уменьшается в два раза.

    Если я ничего не путаю, то получится как-то так
    w,h = input().split()
    w = int(w)
    k = 0
    h = int(h)
    canvasArea = w * h
    count = int(input())
    arr = [[0]*h for i in range(w)]
    for i in range(count):
      square = [int(l) for l in input().split()]
      for i in range(square[0],square[2]):
        for j in range(square[1],square[3]):
          if arr[i][j]==0:
            k += 1
            arr[i][j] = 1
      print(canvasArea - k)


    PS Маленький совет по поводу именования переменных: если вы когда-нибудь собираетесь заняться программированием за рамками олимпиадок, то вместо w,h,k и arr стоит использовать что-то типа width, height, filledCount, canvas. Так как в чуть более объемном коде будет значительно сложнее понять, что означают все эти однобуквенные переменные.
    Ответ написан
    1 комментарий
  • Может ли быть маркированый и не маркированый трафик на одном порту?

    Может.
    Ответ написан
    Комментировать
  • Зачем нужен Spring Cloud?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Spring Cloud нужен для автоматизации разворачивания сервисов на облачных платформах, типа AWS, Azure, GCP и прочем. Обычно он нужен тогда, когда система должна автоматически реагировать на изменение нагрузки и разворачивать новые инстансы десятками.
    Ответ написан
    4 комментария
  • С какой стороны подступиться к JAVA EE?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Последовательность изучения по этапам:

    Этап первый и решающий, на котором обучаюшийся осознает, что же именно называется JЕЕ (что речь не столько о конкретной версии каких-то бинарников, которые можно загрузить с сайта Оракла, если случайно кликнуть не на ту кнопку, а о стеке спецификаций, для каждой есть, как минимум, несколько имплементаций и т.д.)
    и по результатам определяется, с чего будет начинать, в свете свалившихся задачь. Скорее всего, начать придется с того, что такое контейнеры, в частности CDI, и провайдеры, в частности persistence API, он же JPA, он же ORM (что это такое, что называют application server, а что servlet-контейнером, или, грубо, в чем разница между, например, Wildfly и Tomcat, каким боком к ним относится Hybernate и нафига придумали Spring), а также, что такое модули и профайлы. Понимание принципиальной архитектуры JEE, хотя бы поверхностное - основа, без которой любое дальнейшее обучение будет бесполезным бубнением непонятных мантр.

    Этап второй, на котором обучающийся выбирает конкретную JЕЕ секту, вступает в нее и переписывает квартиру на имя гуру. Да, да - в JЕЕ все точно, как в жизни. Спецификация одна, но "самых правильных" имплементаций, разумеется, море... С какой-нибудь из них придетя начать (возможно, свалившиеся задачи уже как-то конкретизируют выбор). В любом случае, этап заканчивается загрузкой и установкой (сначала локальной, чтоб потыкать пальчиком, потом на серверах) какого-нибудь сервера/сервлет-контейнера, сервера БД и деплоя и запуска первого HelloWorld JЕЕ приложения по туториалу и с помошью большого количества такой-то матери (ибо придется разбираться с конфигурациями, дескрипторами, правами доступа и прочими настройками, которые все совершенно очевидны, когда уже понял, но похожи на магию, когда наступаешь на них впервые). На этом этапе самый главный вопрос, "почему именно оно заработало".

    Этап третий, наиболее драматический, на котором вопрос "а нафига оно вообще все нужно" может довести обучаюшегося до нервного срыва, когда он пытается "по-быстрому" допилить только что заработавший HelloWorld до нужного ему функционала. На этом этапе вспоминаются всякие JMS, JAX-RS, JAAS и прочие непонятные вещи, мелькавшие на первом этапе, ренее "маловажные нюансы" языка, вроде ClassLoader или сериализации, вдруг оказываются ключевыми и т.д. и т.п. Это наиболее важный и долгий этап обучения. Его можно считать пройденным, когда: А. разросшийся до размеров слона с одной ногой и тремя хоботами HelloWorld сносится, т.к. приходит понимание, что в JEE нельзя просто взять и от балды допилить... даже если кажется, что можно, расплата все равно придет. Б. перепробованы разные базы данных, разные имплементации и апдейты каких-то спецификаций, разные IDE и плагины к ним, и все бесполезно - нигде, даже в платных тулзах нет кнопки "сделать все феншуйно", и, наконец, В. обучающийся понимает, что вся эта ЕЕ хрень придумана с одной единственной целью - предотвратить использование сделанного "так, чтоб как-нибудь заработало", оставив только "сделанное правильно". Победить в этой битве, конечно, нельзя, но зато можно долго и интересно бороться разными хаками, эзотерическими фреймворками и вплоть до инструментализации байткода... предела фантазии нет. В этом и заключается суть обучения JEE - понять, как делать правильно, а как - себе дороже.

    Следующий этап уже, собственно, к обучению не относится - это практика. На нем выжившие начинают с нуля строить архитектуру приложения, выбирать решения в рамках предлагаемого EE набора технологий, постоянно задумываясь над масштабированием, отказоустойчивостью этих решений и т.д. и т.п. Основная мысль на этом этапе: "блин, как я вообще раньше мог делать по-другому"...
    Ответ написан
    5 комментариев