Задать вопрос
  • Linux на SSD рядом с Win10, на внешний HDD или виртуализация?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для некоторых задач разработки или работы с BigData можно использовать WSL
    https://learn.microsoft.com/en-us/windows/wsl/install

    Ситуация когда WSL с чем то у меня не справлялся - это обычно нехватка памяти или ядер CPU.
    А так... пока изучаешь есть весь тулсет, компилляторы gcc/clang и языки Python/Perl/Ruby.

    Еще из недостатков - некоторое усложнение маппинга файловой системы. Windows файлы
    будут видны через виртуальный путь типа /mnt/c/....
    Ответ написан
    Комментировать
  • Возможно ли взломать шифр Вернама на псевдослучайных числах?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если формула твоего ГПСЧ будет простая (типа последовательности) и если злоумышленник
    сможет отправлять свои открытые тексты то он выявит этот xor очень быстро.

    Вообще Керхгофс писал о том что секретность должна быть на 100% перенесена в тело ключа а не
    алгоритма. В этом - главный принцип криптографии. Мы исходим из предположения что злоумышленник
    знает код
    . Он его видел. Он - бывший ваш сотрудник. И если он увольняется то он уходит со всеми
    секретами в голове. И чтобы этого не было Керхгофс говорит - "окей мы не можем защитить код. Код - утекает
    в пространство известной информации. Но мы можем сделать замену кода (КЛЮЧА!) настолько быстрой
    и легкой
    что увольнение сотрудника не будет нам стоить очень дорого"

    Уволился сотрудник который имел доступ к секретам - перегенерируй все секерты заново и спи спокойно.
    Ответ написан
    Комментировать
  • Насколько отличается шифр Вернама через суммирование и xor??

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вернам - это бесконечно большой блокнот. Это не шифр, а скорее некая теоретическая концепция.
    Под капотом Вернам может использовать xor или подстановки (что в принципе взаимозаменяемо
    для известного алфавита).

    С практической точки зрения (https/ssl/tls) удобнее использовать блочные шифры с временным
    ключом который живет короткое время и потом генерируется заново.
    Ответ написан
  • Как скрестить ElasticSearch и MySQL?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В этом мало смысла потому как назначение Эластика - это делать быстрый поиск в не-структурированных
    (non-structured) данных таких как логи, дампы сетевого трафика или просто месседжи или текст.

    Назначение MySQL (процентов 99) это хранение реляционных данных. Тоесть данных где есть нормализация
    (1-2-3 НФ).

    И где... в какой части вы пересекаетесь - непонятно. Либо неправильно используется MySQL либо не там Эластик.
    Ответ написан
    2 комментария
  • C# и несколько CPU?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Во всех языках разработки в ThreadPool обычно есть ручной параметр количества threads,
    который можно установить самому. Это более правильно поскольку только разработчик
    знает природу запускаемых потоков. Например если это CPU-bound приложение то поток желательно
    мапить на физическое АЛУ а если это потоки другого рода I/O bound то их можно сделать побольше
    типа SetMaxThreads и задать столько сколько нужно исходя из задачи.
    Ответ написан
  • Почему не работает import java.util.Scanner?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    java.util.Scanner - начиная с версии 1.5.

    Надо проверить на какую версию среда настроена.
    Ответ написан
    Комментировать
  • Возможно ли соединить работающий java код и так же работающий скрипт python?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Самая простая интеграция - это pipe в Unix. Этому методу 100 лет в обед но обычно
    разработчики не помнят о нем.

    java app.jar | python3 app.py

    Из недостатков - это в одну сторону работает. Как MQ.

    Если запускается джоб на java который передает информацию к python-job то можно вызвать через
    ProcessBuilder. Здесь можно проверить код возврата и принять решение о том правильно
    ли Python отработал. Из недостатков - запуск процесса - не очень быстрое событие поэтому
    на высокую частоту не стоит расчитывать.

    Если взаимодействие - более быстрое и сложное типа RPC то тогда java может быть например REST
    клиентом а python - сервером.
    Ответ написан
    Комментировать
  • С чего начать изучать разработку приложений под Linux?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если ты хочешь программировать под Linux то тебе нужно знать функции ядра Linux.
    Это так называемые syscalls. Системные вызовы. Работа с файлами. С сокетами.
    С объектами мультизадачности (mutex). Языки могут быть любые но принципы
    будут примерно одинаковые.

    +Надо определиться с доменной областью. Вряд-ли вы будете писать системный софт.
    Системщиков вообще мало и пишут они очень узко. Скорее всего это будет что-то прикладное
    поэтому надо искать прикладные задачи и искать типичный профиль такой прикладной задачи.
    FastCGI приложение например там или ETL процесс или какие-то сетевые штуки. Ищите
    практические задачи. Иначе сам по себе вопрос потеряет смысл.
    Ответ написан
    8 комментариев
  • Можно ли создать базу данных на одной таблице?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Такие эксперименты были. Лет 5 назад когда был еще жив sql.ru, один человек продвигал
    модель т.н. квинтетов. Это таблица с 5 полями которая полностью описывала любую
    доменную область. Я к сожалению не могу нигде найти следов описания этой системы
    но возможно это оно https://cyclowiki.org/wiki/QDM . Читайте смотрите.

    Второе. В эпоху новых версий DBMS (Oracle/PG/MySQL) когда мы можем использовать
    JSON/XML внутри ячейки, сама идея EAV теряет смысл. Поле атомарно? Атомарно.
    Значит законы реляционной алгебры мы не нарушаем и JSON совершенно легальный
    тип для реляционок. Хотя лет 30 назад его использование было-бы кощунством
    в БД. Но это можно было списать на жесткую экономию ресурсов и чрезмерную
    математичность моделей Бойса-Кодда. Сегодня все используют JSON и нет никаких
    архитектурных доводов против. Поэтому создавайте NoSQL табличку где есть
    key и есть значение в виде либерального типа документа. Как делают MongoDb, CouchDb.
    И если связать их в иерархию то получится вполне себе те-же самые квинтеты.

    Про EAV лучше забудьте. Их любят преподаватели SQL и теоретики. Но практически EAV
    слишком медленно работает чтобы развивать его в бизнес-приложении или в промышленности.
    Мир тяготеет к упрощению. И поэтому JSON - это упрощение EAV. И работает быстрее.
    Ответ написан
    6 комментариев
  • Как выводить цифры числа слева направо?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно делать накопление числа в строку а потом в конце перевернуть ее

    >>> "".join(reversed("улыбок тебе дед макар"))
    Ответ написан
    1 комментарий
  • Почему начинает прыгать скорость торрента?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поскольку торрент это не протокол скачивания с сервера а скачивание с таких-же как ты
    владельцев файла, то вопрос переходит в другую плоскость.

    Надо спросить почему канал между тобой и другими владельцами ресурса стал прыгать.
    Торрент здесь скорее всего непричем. А причем может быть провайдер, который регулирует
    (shaper) скорость к частным направлениям.

    Или причем могут быть условия. Вечернее время. Час наибольшей нагрузки. Другие
    пользователи роутера которые тоже в этот момент с тобой что-то качают.

    Вот иди и проверяй все эти версии.
    Ответ написан
    Комментировать
  • Как часто стоит открывать и закрывать соединение при записи в БД из Kafka?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В самом вопросе есть какой-то конфликт интересов. С одной стороны сессии БД надо экономить.
    Тоесть нужно их закрывать. С другой стороны реакция на это сообщение в БД должна быть быстрой.

    Мне кажется что без какого-то дополнительного SLA или штрафов со стороны бизнеса, этот вопрос
    просто невозможно решить.

    Я-бы еще этот вопрос рассмотрел в суточной нагрузке. Если например событие с кафки приходят
    от кассовых аппаратов то их надо обработать обязательно в течение дня. Тоесть БД должна быть
    открыта всегда. Ну а на ночь можно изменить режим работы косньюмеров и сделать их более
    вялыми и дать возможность ночным джобам поработать в БД спокойно.
    Ответ написан
    Комментировать
  • Как разделять относительно одинаковые скрипты между клиентами?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скрипты выросли. И у них появилась общая часть (shared). Которая не меняется. И вариативная часть которую
    можно спокойно менять под каждого клиента
    . Как выделить общее и частное - это великая тайна.
    И понять ее можно только с опытом.

    Я-бы предложил следующую стратегию. В общее (shared) должны зайти интерфейсы и абстрактные классы
    или какие-то сущности которые почти никогда не меняются. В вариативные части (client1, client2 ...)
    зайдут реализации или то что просто сильно меняется.

    Преимущества данного подхода - будет меньше кода в перспективе. Но есть и недостаток.
    Некоторые клиенты могут почувстовать странное (немотивированное) изменение версии
    в (shared) части которое они не заказывали. Впрочем это может быть редко или вообще никогда.
    Ответ написан
    Комментировать
  • Какие книги есть по эффективной работе в технической поддержке?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не совсем понимаю зачем здесь упор идет на софт-скилы. Эффектвность техподдержки - это
    закрытие технических issues. Например - не печатает принтер. Чтоб решить эту проблему надо
    очень быстро задать ряд вопросов. Модель принтера. Условия. Что предшествовало поломке.
    И дальше просто идти по инструкциям. Это вобщем-то хард-скилы. И не лишним будет
    просто выучить некоторые поломки принтеров.

    Софт-скилы - это другое. Это знание иностранных языков. Коммуникации. Умение вести переговоры.
    Убеждать. И зачем вам это в тех-поддержке?
    Ответ написан
  • Как сделать так, чтобы при работе двух ботов, написанных на модуле telebot, то один из них выключался(кто получит раньше предупреждение или ошибку)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Синхронизация в облаке - это известная проблема. Вам нужно найти один разделяемый объект
    в сети и использовать его как Mutex. Этим объектом может быть база данных. Так работает
    механизм SpringBatch например для предотвращения двойных запусков джобов.
    Но в роли такого объекта вобщем может быть любая сетевая штука. Веб-сервер. Файловый
    сервер. Что угодно лишь-бы оно было доступно с двух ботов.
    Ответ написан
    3 комментария
  • Почему видеокарта и процессор не нагружаются выше 60%?

    mayton2019
    @mayton2019
    Bigdata Engineer
    С играми - вообще ситуация интересная. Собственно производитель не ставит задачи грузить твой
    камень на 100%. Как раз задача другая. Обеспечить нужное число FPS для игрока. Это - разные вещи.
    Как чайник вскипятить и сжечь лес например.

    Понимаешь? Полезный эффект? И эффект простого сжигание киловаттов.
    Ответ написан
  • Как работать с вложенными json?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На базе PL/SQL скорее всего ничего нельзя сделать. Там даже строка ограничена в 32К.
    Поэтому тебе надо написать приложение на C#/Java/Python или любом другом языке
    который делает необходимые ETL действия.
    Ответ написан
    Комментировать
  • Хранится ли в файле(скрин, фото, картинка) информация о его редактировании (ретушь, обрезка и тд)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Зависит от формата. В старые времена ходили трюки с JPEG. Можно было из thumbnail извлечь оригинал
    картинки. Правда не в очень идеальном разрешении.

    Смотрите мануал по exiftool.

    Не знаю делают ли thumbnail сейчас. Это было актуально для быстрой загрузки в браузерах во время
    модемного инета.

    По всем прочим форматамм - надо читать документацию. Фотошопный PSD хранит много преобразований
    и там шансов восстановить слои больше. Но PSD проект редко публикуется вообще.
    Ответ написан
    Комментировать
  • Безопасная система пруфов при открытии лут-боксов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Существует два механизма подписывания информации.
    - электронные подписи на базе RSA, ECDA
    - HMAC

    Все остальное таковым не является.
    Ответ написан
    Комментировать
  • Как правильно возвращать значение из геттера?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Желательно возвращать либо иммутабельные объекты (LocalDateTime вместо java.util.Date)
    либо клонировать.

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

    Разумеется жизнь полна исключений и тут главное чтоб вся команда разработчиков ПОНИМАЛА что
    ты сделал и для чего. Иначе будут конфликты и война правок в коде проекта.
    Ответ написан
    Комментировать