Задать вопрос
  • Как проверить 500 000 файлов word,exel,pdf ,txt что они не битые?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы поделил файлы word,exel,pdf ,txt на группы.

    1) Aрхивы docx, xlsx. Как выше заметил один джентльмен их можно проверить любой
    утилитой которая умеет читать zip и делать zip -t (test) с выводом статуса в errorlevel.
    Автоматизировать можно либо bash либо python скриптом.

    Если архив целый (контрольные суммы совпали) то и документ почти 100% не поврежден.

    2) Офисные документы старого формата (doc/xls). Здесь я-бы парсил их через apache POI
    (это java библиотека). Это разработка. Но простая. На 1 story point. Я думаю
    любой первокурсник напишет.

    3) Adobe документы. Масса вариантов. Есть автоматизация с помощью bash/python
    и консольными тулзами. Я перечислю тулзы которые есть под линукс и которые читают
    pdf.

    - pdfimages
    - pdfextract
    - pdftoppm

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

    4) Прочие текстовые документы. Неструктурированные. Я тут честно не знаю как их проверять.
    Но допустим если они содержат текст в кодировке win-1251 то любой криптохакер
    с cryptohack вам быстро напишет скриптик
    для проверки что гистограмма или биграмма
    соотвествует примерно тексту и национальным признакам. Если файл будет в нулях
    или в рандомном шуме то какой-то критерий не сработает. Здесь надо подумать
    и просто глазами посмотреть на эти документы. Возможно большая часть из них
    это бланки - и тогда надо чекать наличие просто каких-то шаблонов.
    Ответ написан
    2 комментария
  • Как заблокировать некоторые комбинации клавиш на Windows?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В борьбе в вандало-устойчивостью любое устройство можно превратить в кирпич.

    Пускай учатся работать аккуратно. Это более ценно чем "кирпичить" умные устройства.
    Ответ написан
    Комментировать
  • Как работать с большими json файлами, которые получаются по запросу в Андроид приложении?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    В Андроиде насколько я помню есть API для работы с SQLite БД. Это в тех случаях
    когда тебе надо экономить память но и работать с данными тоже надо.
    Можно попробовать 1 раз скачать список станций и считая его достаточно
    стационарным - положить в БД
    и потом делать с ним joins из других запросов.
    Ответ написан
    Комментировать
  • Как устроиться в начинающую компанию?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Начинать карьеру лучше всего в крупной компании. Там будет нарисован план
    твоего развития от джуниора до зам-директора. По крайней мере все это декларируют.

    Начинающая компания (стартап) - это шайка друзей у которых есть тесные горизонтальные
    связи
    чтобы работать вместе. Иногда дружеские. Иногда родственные. Кум. Брат. Любовница.
    И по большему счету вам будут не сильно рады. Потому что им придется делить общий пирог с вами.
    Подумайте зачем вы вообще нужны в такой шайке?
    Ответ написан
    2 комментария
  • Что делать когда при конвертации из utf8 в string я получаю (string)\0\0\0 и так далее?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Смотри. Символ с кодом 0x0000 не является запрещенным с точки зрения Utf8.

    Но его использование c/c++ языках и в системных коллах может создать проблемы.
    Поэтому в рамках хабра и в такой постановке вопроса мы скорее всего не знаем
    что с этим делать.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Коробочное решение шифрования - это nginx

    https://nginx.org/en/
    Ответ написан
    Комментировать
  • Как устроить "песочницу" для тестирования запросов PosgreSQL?

    mayton2019
    @mayton2019
    Bigdata Engineer
    вот эта штука с initdb выполняется секунд 10-20 поэтому её похоже приходится делать на старте (а можно ли как-то ускорить?)

    Да. Это похоже на правду. В качестве утешения могу сказать что Azure AKS контейнеры могут и
    больше 1 минуты стартовать независимо от содержания.

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

    Вопрос с переполнением памяти или с биллингом - подбирается эмпирически, исходя из
    актуальных условий. Вряд-ли мы сейчас, поплевав в потолок сможем придумать что-то актуальное.
    Ответ написан
  • Сжатие БД в MS SQL?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я просоединяюсь к совету выше. На тему того что самое эффективное уплотение информции
    можно сделать на уровне разработки приложения.

    Я-бы предложил не сжимать всю базу а проанализировать, какие таблицы и какие поля занимают
    80%
    всего пространства. (Процены я взял с головы по принципу Паретто. Вы можете взять любой
    процент. Можно 90 или 70 не суть важно. Важно чтобы не закапыватья м мелочах.)


    Из опыта других БД. (Не MS-SQL). Часто бывало что потребителем места были BLOB-поля где
    лежали какие-то несуразные и никому не нужные документы. Аттачменты. Картинки. Копии
    email из переписок с пользователем и многое другое. Были ситуации когда причиной роста
    БД были старые архивные записи в таблице которые почему-то были забыты. Они должны
    были удаляться но из за бага не удалялись.

    Хорошая практика в данном случае - убрать из БД все длинные текстовые документы
    или положить их в gzip
    на уровне самого приложения например. Обычно такие поля
    не участвуют напрямую в операциях OLTP и их сжатие ни на что особо не влияет.

    Почти все современные БД имеют очень хорошую плотность информации на мегабайт
    и если админ что-то там шринковал или уплотнял - то это носит временную меру. Через
    некоторое время БД возвращается к той плотности как и была раньше вследствие
    updates например.

    По поводу ROW level/block level сжатия. Я не специалист в MS_SQL, но обычно это надо
    предварительно тестировать под нагрузкой на PROD для всех DBMS в общем то.
    Велика вероятность падения производительности а это, сами понимаете слишком
    большая цена за экономию. И диски в наше время значительно дешевле скажем чем 10 лет назад.
    Ответ написан
    Комментировать
  • Транскрибирующие все что есть - программы и нейросети — есть ли такие?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лучше параллельно все записывать в аудио. Диктор может шепелявить, гундосить или бубнеть
    и там ни одна нейросеть не поймет потому что она не в контексте.

    А вы, как слушатель - в контексте. Вы - знаете что ожидать от невразумительного мычания.
    Поэтому НС идут своим чередом. Но аудио придется тоже хранить.
    Ответ написан
  • Заполнять базу данных (postgres) через Excel, как?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Excel я сделал форму, кнопки, добавить расходы, доходы, добавить пользователя.. жму и выполняется sql запрос и база заполняется...


    Напоминает старый анекдот про "сделайте мне лялю"...

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

    Экспорт-импорт из Excel в PG это задача решенная. И она даже не требует разработки. Это скорее
    всего работа квалифицированного пользователя и дата инженера.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычные архиваторы скорее всего не делают дедубликации.

    Но предварительно можно сделать такое
    FLEngine_x64.dll
    FLEngine_x64_Copy1.dll => symlink FLEngine_x64.dll
    FLEngine_x64_Copy2.dll => symlink FLEngine_x64.dll
    FLEngine_x64_Copy3.dll => symlink FLEngine_x64.dll
    FLEngine_x64_Copy4.dll => symlink FLEngine_x64.dll
    FLEngine_x64_Copy5.dll => symlink FLEngine_x64.dll


    и попробовать zip/tar. Они вроде умеют симлинки оптимально хранить.
    Ответ написан
  • Как организовать журнал событий в распределённой системе правильно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В данном задании непонятно насколько остро стоит необходимость именно в MQ системе.

    Можно начать просто с централизованного сбора логов. Мне кажется это проще
    чем строить кафку. Кроме того логгирование работает всегда, пока есть файловая
    система. А Кафка может быть недоступна какое-то количество минут или секунд в году.
    И вам надо будет думать что делать с событиями которые не ушли в Кафку. Блокировать.
    Дропать события. Или искать резервное мето куда форварднуть.
    Ответ написан
  • Возможно ли написать так сказать кейлоггер на java если да то что использовать?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Для автоматизации тестирования - посмотри Robot
    https://docs.oracle.com/en/java/javase/21/docs/api...
    но его функционал в основном завязан на графические приложения
    созданные с java.awt.
    Ответ написан
    Комментировать
  • Как создать трек своим голосом?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У звукорежиссеров это кажется называется pitch.

    Берется дилетант который не умеет петь но очень хочет. Он напевает что-то.
    Потом звуковик редактирует темп и тональность.

    Полу-ручная работа. Здесь еще не хватает самой композиции. Ее надо придумть.
    Про это автор не пишет. Возможно ему все равно что там будет.

    Тогда проще всего не петь а прочитать рэп по тексту.
    Ответ написан
  • Как принять или как правильно разрабатывать проекты под Python в плане архитектуры?

    mayton2019
    @mayton2019
    Bigdata Engineer
    То что автор перечислил - это best practices. .

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можешь взять за основу этот шаблон. И дописать его.

    with temp as (
    select 
      user,
      log_time,
      LAG(log_time) OVER (PARTITION BY user ORDER BY log_time) as prev_log_time
    from logins)
    select user, date_diff(log_time , prev_log_time) as days_diff from temp


    В задании неясно что делать с пользователями
    которые за всю историю заходили только один раз. Это маржинальный кейс.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Самое простое что приходит на ум - это IRC chat.
    Он - архаичный но по идее должен работать везде. Что в локалке что в глобальной сети.
    Ответ написан
    Комментировать
  • Как вычитать код страницы в Java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Вот посмотри как тут пишут https://www.geeksforgeeks.org/selenium-with-java-t...
    Ответ написан
  • Возможна ли обработка адреса (жительства) в excel регулярным выражением?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Здесь можно сделать в несколько шагов.

    1) Убираем повторы запятых и пробелов.
    Россия, г. МОСКВА,УЛ.ДЯТЛОВА,20
    2) Слова приводим в первую букву capital
    Россия, г. Москва,Ул.Дятлова,20
    3) С аббревиатурами - сложнее. Надо будет вести их справочник
    Abrrieviation
    ---------------
    КПСС
    ВЛКСМ

    и замену делать по совпадению. Так же поступисть с сокращениями
    ул. бульв. просп. рн.
    В конце должно получится
    Россия, г. Москва,ул.Дятлова,20
    Excel поддерживает программирование на VBasic. Это более эффективно чем делать регулярки.
    Любой студент 1 курса вам сделает небольшой скрипт и вставит его в Excel
    Ответ написан
    Комментировать