• Как создать бесконечный поток Java, не нагружая процессор на 100%?

    Вам вместо того чтобы запрашивать информацию о файле в бесконечном цикле, нужно подписаться на изменение файла.
    Тогда ОС сама вас уведомит, что файл изменился.
    https://docs.oracle.com/javase/7/docs/api/java/nio...
    Ответ написан
    3 комментария
  • Какие существуют визуальные обработчики данных?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Excel сам по себе уже заточен для визуального представления хранимых данных. Для этого есть сводные таблицы, графики и тд
    Конечно можно в связке с Excel использовать. Power Query, но он больше заточен на большие массивы данных.
    Ответ написан
    1 комментарий
  • Как правильно создавать архитектуру?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Вообще, нужно взять бумажку и задать на высшем уровне абстракции все возможные в текущем представлении сущности. Если разговор о "змейке" - задаете вопрос, что у вас в игре есть как сущности. Скажем, есть змея, есть стены, есть жрачка, их пишете как сущности. Затеяли добавить "муху" - пишете тоже. Затем пишете, кто что умеет делать: змея умеет ползать, стукаться в стены или жрачку, расти и возможно что-нибудь ещё, стены просто стоят, жрачка умеет появляться, съедаться. И так далее, пока всю игру в примитивах не опишете. Дальше - каждая сущность это класс, каждое отношение это метод, каждый параметр, выясненный в процессе, это свойство класса. Но чем дальше в лес, тем больше грабли. На уровнях выше начинаются модули со своей инкапсуляцией, события, гонки всякие, а-ля "кто съел яблоко, вы или противник", асинхронное взаимодействие, подписки на что-либо, и так далее, интерфейсы становятся сложнее, какие-то объекты передаются как параметры и всё такое, но общий принцип остается - сначала большими кусками всё делится на куски поменьше, определяются интерфейсы (кто что может спросить или повлиять на кого), пытается реализовываться, потом, вполне возможно, находятся противоречия, которые приходится устранять рефакторингом, и по спирали.

    Что поизучать - сначала просто базовое ООП, чтобы понять, из чего вообще строить программу, что такое объект, класс, интерфейс, наследование, полиморфизм (та же жрачка может быть нескольких видов, например, но "съедается" она одинаковым образом), инкапсуляция (а-ля "не лезь в мои свойства своими лапами"). Все эти SOLID и прочие аббревиатуры, а также паттерны и антипаттерны, появятся в процессе, когда от архитектуры перейдете к дизайну самих сущностей и написанию кода методов. По-моему так.
    Ответ написан
    Комментировать
  • Как понять, что грузит VPS?

    @rPman
    Погуглил насчёт процесса sbin/licctl, он относится вроде как к запросу на использование лицензии или вроде того и у многих также грузит ЦП. Купил лицензию у хостера, сразу ситуация стала лучше (это видно на графиках).
    Ой они хитрюги...

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

    p.s. если у тебя vps или dedicated то ответственность за все там происходящее висит только на владельце, за исключением случаев, когда пользуешься услугой обслуживание системы (тогда доступа к vps-ке не дадут, что правильно) - это будет вариант software as service

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

    Продумываю как и где размещать серверный код
    в VCS.

    Есть 2 сервера они по сокетам кидают сообщения в мастер сервис
    Стек IP/TCP и не такое стерпит. AWS замечательно поддерживает этот стек.

    По сути получается 2-3 репозитория.
    Совершенно не понятно появление этой сути.

    Нужна доставка кода через гитлаб на сервер, подскажите на какие сервисы aws обратить внимание.
    Gitlab умеет работать в связке с AWS. Сервисов набегает сразу: EC2, S3 (если статический сайт), ECS, Fargate, Lambda (она шикарна).

    Нужен ли докер
    /задумчиво../ Нужна ли железная птица Гаруда юному принцу Лю, если он потерял свои шлёпацнцы и не знает куда пойдёт после обеда?
    Ответ написан
    Комментировать
  • Что делать при ошибке в MySQL: "Указан слишком длинный ключ. Максимальная длина ключа составляет 1000 байт"?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Все дело в том что utf8mb4_unicode_ci использует 4 байта для кодирования одного символа, плюс 1 байт хранит длину строки. Соответственно (255+1)*4 = 1024.
    Уменьшит размер данных можно, и даже нужно, с учетом что текущие данные не будут повреждены. Проверить максимальную длину строки:
    SELECT MAX(fieldname) FROM table;

    Выбор размера данных зависит от их возможных значений. Например если поле может быть только "да", "нет" , "иногда" то достаточно varchar(6)

    Кроме того если строковое поле имеет ограниченный набор значений имеет смысл использовать enum или отдельную таблицу со словарем
    Ответ написан
    Комментировать
  • Какую структуру данных выбрать для подсчета элементов?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Вам нужен std::map или std::unordered_map. Самому писать структуру данных не надо.

    Первое будет деревом поиска, второе - хештаблицей.
    Дерево поиска гарантированно будет работать стабильно быстро. Хеш таблица будет работать быстрее, но если вам не повезет, то может работать очень долго. Но предпочтительнее, на мой взгляд, таблица.

    В качестве ключа используйте пару {Тип транспорта, номер маршрута}. В качестве значения - счетчик остановок.

    Еще вам нужен еще один map из тип транспорта-> std::set или std::unordered_set номеров маршрутов.

    Для построения структур один раз приходитесь по всем остановкам и увеличивайте счетчик в первой структуре. Добавляйте маршрут к транспорту во второй структуре.

    Для поиска ответа пройдитесь циклом по всем элементам set из второго map - это все маршруты. Смотрите в первом map'е сколько остановок у этого маршрута и выбирайте максимум.
    Ответ написан
    2 комментария
  • Какие навыки нужны для DevOps-инженера?

    @Macbet
    Linux программист
    Для работы девопсом надо отличные знания linux ( ну или windows смотря какой у тебя стек) и это не просто команды в баше, это как устроено ядро, как ОС с памятью работает, сети нужны 100% притом в очень хорошем понимании, + 1/2 скриптовых языка, у нас в компании это Ruby + я на golang тулзы пописываю а тот Roadmap что товарищ выше указывал, он не особо правильный, ты никогда не сможешь хорошо работать с тем же k8s без знания сетей, базы тоже нужны, помимо баз надо разбираться в веб-серверах, различных системах виртуализации kvm/xen/openvz(на выбор), системы мониторинга + надо понимать что ты придешь в компанию и там очень редко кто использует "современный" стек технологий все эти consul'ы и nomand'ы это очень здорово, но придется зачастую много легаси править :)
    Ответ написан
    3 комментария
  • Какие навыки нужны для DevOps-инженера?

    notyoursql
    @notyoursql
    Database Administrator
    Linux нужно знать на хорошем уровне, да и все перечисленное тоже, и уж тем более сетевые протоколы. Потому что другое название девопса - infrastructure engineer.
    Вот насчет навыков программирования - вопрос спорный, но без Линуксов и баз данных точно далеко не уедешь.
    Ответ написан
    Комментировать
  • Оптимизация сайта под требования PageSpeed Insights. Как исправить долгий ответ сервера 650 ms?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Включите логирование запросов в базу и посмотрите, сколько их (и за какое время) выполняется при заходе на страницу и основных действиях - нажатиях на кнопки и т. д. Скорее всего, найдёте ваши 650 мсек именно там. Уменьшение количества обращений в базу и улучшение скорости её ответа - обычно первый кандидат на оптимизацию. Ну и кэширование, разумеется, да.
    Ответ написан
    1 комментарий
  • Запрос на обновление таблице?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В MySQL можно через REGEXP_SUBSTR.
    Но вообще, такой формат хранения создаёт кучу проблем. Переделывайте на нормальную таблицу (id_строки, id_языка, строка).
    Ответ написан
    1 комментарий
  • Как "православно" настроить Blue/Green deployment через terraform на aws?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Фишка из 2015 года от сотрудника Hashicorp. Нужно создавать ASG c lifecycle-ом на каждую LC и разруливать переключение трафика на балансировщике.
    В Terraform можно делать вот так:
    resource "aws_launch_configuration" "myapp" {
      name_prefix = "myapp_"
    ...
    resource "aws_autoscaling_group" "myapp" {
      name = "myapp - ${aws_launch_configuration.myapp.name}"
      min_elb_capacity =  = "${var.myapp_asg_min_size}"
    ...
      lifecycle { create_before_destroy = true }

    Пока количество инстансов в статусе InService не достигнет min_elb_capacity, они не будут прицеплены к балансировщику. Затем уже сам балансировщик по хелсчекам у себя должен поменять статус новым инстансам как InService и начнёт пускать на них трафик, в этот же момент TF начнёт удалять старую ASG.
    Ответ написан
    Комментировать
  • Существует ли корреляция между языком программирования и интеллектом?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Думаю можно оценивать сложность языка количеством использованных абстракций или толщиной мануала) Так среди естественных языков русский или японский принято считать сложными, а английский сравнительно простым. Что, впрочем, вовсе не свидетельствует об интеллектуальном превосходстве россиян над англосаксами.))
    Ответ написан
    2 комментария
  • Псевдографика в консоли Windows. Как это делается?

    Есть одна библиотека. gui.cs
    Ответ написан
    Комментировать
  • Как пишутся большие веб-сайты с тяжелым функционалом?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    Читай блоги таких проектов, пример: https://m.habr.com/ru/company/avito/blog/339996/
    Ответ написан
    1 комментарий
  • Как защитить себя в чужой wi-fi сети?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Использовать VPN для шифрования трафика.
    Ответ написан
    1 комментарий
  • Docker не находит текстовый файл, в чем может быть проблема?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Очевидно, в контейнере нет такого файла. Попробуйте его туда положить.
    Ответ написан
    Комментировать
  • Есть ли готовое решение для отображения информации о датасете в удобном для чтения виде?

    @dmshar
    Не совсем понятно, что вы хотите.
    " для отображения информации" что-бы "вообще код не писать" - экспортируйте свой датасет в csv-файл и работайте хоть EXCEL, хоть Tableau (для визуализации), хоть в SPSS.
    Если у вас данные - это временные ряды, то можете попробовать Grafana.
    Описательные статистики выводятся в pandas (ага :-) ) одной командой data.describe().
    Только вот я бы не сказал, что построить ту-же гистограмму проще в EXCEL или в Grafana чем в Python. Даже в Tableau что-бы получить то, что вам надо - надо хорошо разобраться в инструменте.
    Ответ написан
    3 комментария
  • Есть ли простой способ передать задачу в Go?

    WinPooh32
    @WinPooh32
    Stack Overflow answer searching expert
    Пример замыканий:
    package main
     
    import (
        "fmt"
        "math/rand"
        "time"
    )
     
    type kelvin float64
     
    func measureTemperature(samples int, sensor func() kelvin) { // measureTemperature принимает функцию в качестве второго параметра
        for i := 0; i < samples; i++ {
            k := sensor()
            fmt.Printf("%v° K\n", k)
            time.Sleep(time.Second)
        }
    }
     
    func fakeSensor() kelvin {
        return kelvin(rand.Intn(151) + 150)
    }
     
    func main() {
        measureTemperature(3, fakeSensor) // Передает название функции другой функции
    }

    Источник
    Ответ написан
    2 комментария
  • Какую файловую систему выбрать для жёсткого диска?

    opium
    @opium
    Просто люблю качественно работать
    Ext4 конечно если нужна надёжность и скорость
    Ответ написан
    Комментировать