Задать вопрос
  • Есть ли разница для скорости работы БД при установке типа text, а не varchar 128?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лимиты на текстовые поля - это архаизм и пережитки старины далёкой. Они имели большой смысл для DBase, Clipper, FoxPro но для современных БД практически уже неактуальны. Можно брать text.
    Даже Oracle вобщем-то снял лимит 4000 байт на строку и настройками системных параметров можно его растянуть хотя-бы в 32 килобайта.

    Тем более что в поля все чаще кладут semi-structured информацию (JSON/XML e.t.c).

    Но вы можете их использовать просто как констрейнт чтобы акцентировать внимание что поле имеет особый вид строки. Например хеш SHA-256 или какой-то ключ или UUID.

    Поддерживаю Дмитрия в наблюдении за oversized attribute.
    Ответ написан
    Комментировать
  • Как правильно сделать проверку Email?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть хорошая статья на эту тему https://habr.com/ru/post/175375/
    Ответ написан
    Комментировать
  • Можно ли индексировать varchar в mysql?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Все int я индексировал

    Вот ты чудак. Надо не все индексировать а только те которые оптимизатор запросов может выбрать в плане запроса.
    Ты кстати еще получишь обратную связь в виде замедления update/insert/delete на такой чудо-таблице.
    Оптимизация - это искусство. И тут нельзя так... приходить и ВСЁ индексировать...
    Ответ написан
    Комментировать
  • Чистый php, если нет Бд, то можно ли её создать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно эволюция кода идет синхронно с обновлением схем в БД. Для этого есть инструменты типа liquibase/flyway. Они приводят в БД в состояние полного синхронизма с вашим репозитарием кода. И то что у вас происходит (нет таблицы) - это ужас-ужас и надо срочно что-то менять в жизни.

    Вот так. Развивайтесь. Взрослейте. Хватит уже бегать в детских штанишках. Хорошая система должна трекать свои изменния. Берите лучшие практики которые есть сегодня. Создание таблицы в секции catch - это опасная практика которая кроме того вызывает еще один парадоксальный вопрос из серии - а что делать если exception возник внутри секции exception и так далее.
    Ответ написан
    Комментировать
  • Всегда ли нужно переиспользовать переменные?

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

    Но если-бы я писал это на Rust/Scala то я всегда предпочитал бы константу. Ибо идеология и доказуемость значения в константе важнее гипотетических performance fixes.

    В данном случае - я все равно не специалист в Go и поэтому исходил бы из best practices и рекомендаций от самих создателей. Что они пишут по обработке ошибок? Дают ли они примеры? Вот если они в документации шлёпнут хотя-бы один сниппет с присвоением константы - то я скажу Окей мне все ясно и пойду писать код.

    Где там идолы что пишут у себя в pet-projects - надо смотреть.
    Ответ написан
    Комментировать
  • Как лучше хранить и пересылать время: как полную дату или только время?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если backend это Java - то заявлен тип данных java.time.LocalDate. Он - сериализуемый следовательно будет однозначно писаться и считываться из памяти и из сети.

    Вообще у программистов backend не возникает вопросов как "лучше хранить" и передавать время. Если вы хотите сильно экономить то храните и передавайте количество секунд с начала суток. Это будет целое число от 0 до 86400. Достаточно экономно. Но будете иметь свои трения при согласовании форматов между отделами разработки фронта и бєка. Можете передавать строкой как есть "08:40:20" но договоритесь о запрещенных комбинациях и так далее.

    Короче этот вопрос не про Postgres а про технологии сериализации даты-времени, стандарты и протоколы.
    Ответ написан
    Комментировать
  • Какой тип данных использовать для хранения паролей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Пароль обычно обрабатывают. Добавляют некую символьную последовательность которая будет уникальна для данного приложения (salt) например abcxyz123. Это предотвращает подбор тривиальных хешей. После этого парольная фраза хешируется функцией (например) SHA-256. На выходе битовая последовательность - длиной 256 бит или в binhex кодировании (4 бита на символ) 64 символа. Вот эти символы можно вписать уже в текстовое поле типа text или varchar(64).
    Ответ написан
    Комментировать
  • Сайты для поиска единомышленников?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для более конкретного примера: мне нужен middle+ frontend разраб, которого заинтересует моя та или иная идея

    Со стороны выглядит будто ты - такой себе ловкий менеджер. Сидишь и хочешь надурняк что-то высидеть :)

    Смотри если твоя идея реально ценна (в ней есть бизнес интерес) то наверное лучше пойти на крауд-файндинговы площадки и там собирать деньги. Или поискать инвесторов.

    Если у тебя - чисто научный интерес - то иди лучше в научные кафедры. Ищи себе руководителя и грызи гранит науки. Может станешь лет через 10 кандидатом наук.

    До кучи еще посмотри сериал Силиконовая Долина. Тоже про идеи.
    Ответ написан
    Комментировать
  • Kotlin медленный?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Kotlin как и все JVM-основанные языки имеет сложный рантайм. Который обладает способностью прогреваться от постоянных запусков. И поэтому чтобы точно и уверенно замерять перформанс - нужно правильно подходить к проблеме. Например использовать JMH для изммерений.

    А для редких (одноразовых) запусков Python действительно может быть быстрее. Это я сам наблюдал в AWS-Lambda.
    Функция лямбда которая вызывается 1 раз в сутки должна быть написана на чем-то вроде Python/NodeJS.
    Ответ написан
    Комментировать
  • Какой тип данных лучше использовать JSON или JSONB?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Какой формат данных (JSON или JSONB) лучше использовать в этой ситуации?

    Похоже автор занялся любимой задачей скучающих разработчиков. А именно - ПРЕЖДЕВРЕМЕННОЙ оптимизацией.

    JSON и JSONB возникли например из задачи хранения в БД ДОКУМЕНТОВ. Документ - предполагает специфический юзкейс. Например однократное создание и редкую модификацию. И частое чтение с поиском по текстовому индексу например.

    Является ли задача автора - подходящей под данный use-case? Чорт его знает. Я-бы сказал что пока нет. Все таки комментарии пользователя это такие себе... частые модификации документа которых хотелось-бы избежать.

    И вообще пока не будет создано 2 макета или 2 proof-of-concept с бенчмарками - мы не можем точно сказать что лучше.

    Сам-же Бартунов например в одном из своих докладов рассказывал что сама идея затащить в PG документы возникла из идеи работать с properties в одном поле. С такой себе неструктурированной информацией. А сама задача вознила из прикладной проблемы в дизайне базы для системы образования. Им нужно было хранить в строке неспецифицированный лист атрибутов. Это еще не JSON но уже дедушка его. Вот его так порешали. Это похоже на кейс автора? Я-бы сказал что далеко нет.

    Вообще чтоб доказать или опровергнуть огульный тезис о JSON-ификации я-бы довел постановку до абсурда. Зачем мы будем трекать комментарии в JSON. Давайте и посты туда-же. И странички. И вообще всю модель положим в 1 документ JSON. Каково а? У нас будет база с 1 единственной JSON строкой которая хранит в себе всё. Технологично? Да. И не запрещается.

    Вот как-то так.
    Ответ написан
    Комментировать
  • Интернет провайдер может перехватить и запретить торент раздачу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Что такое раздача? Это когда ты опубликовал ссылку но кто-то конкретный не смог ее у тебя забрать. Тоесть он не видит твой хост по IP. Вот я-бы начал расследование именно с этого шага. Что это за человек. Где он сам сидит географически. Пингует ли он тебя? Соединятся ли по UDP/TCP. Может твой провайдер тут непричем.

    Вот. А когда уже 2-3 человека твою раздачу забрали - то уже надо обсуждать видят ли их все остальные участники. Вот как-то так.

    С провайдером все просто. Можно его спросить что он там по договору предоставляет и что нет.
    Ответ написан
    Комментировать
  • Как называют специалистов в сфере IT, которые оценивают с помощью технической составляющей идею?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такой должности нету. Но это иногда делают архитектор, системный аналитик или просто технический лидер.
    Ответ написан
    Комментировать
  • Как добавить префикс в xml python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Все нормально добавляется. Разбирайся.

    >>> import xml.etree.ElementTree as ET
    >>>
    >>> ET._namespace_map
    {'http://www.w3.org/XML/1998/namespace': 'xml', 'http://www.w3.org/1999/xhtml': 'html', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#': 'rdf', 'http://schemas.xmlsoap.org/wsdl/': 'wsdl', 'http://www.w3.org/2001/XMLSchema': 'xs', 'http://www.w3.org/2001/XMLSchema-instance': 'xsi', 'http://purl.org/dc/elements/1.1/': 'dc'}
    
    >>> ET.register_namespace("CadEng4", "urn://x-artefacts-rosreestr-ru/commons/complex-types/cadastral-engineer/4.1.1")
    >>>
    >>> ET._namespace_map
    {'http://www.w3.org/XML/1998/namespace': 'xml', 'http://www.w3.org/1999/xhtml': 'html', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#': 'rdf', 'http://schemas.xmlsoap.org/wsdl/': 'wsdl', 'http://www.w3.org/2001/XMLSchema': 'xs', 'http://www.w3.org/2001/XMLSchema-instance': 'xsi', 'http://purl.org/dc/elements/1.1/': 'dc', 'urn://x-artefacts-rosreestr-ru/commons/complex-types/cadastral-engineer/4.1.1': 'CadEng4'}
    Ответ написан
  • Как осуществить переход из одного switch-case в другой и вернуться обратно?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Как осуществить переход из одного switch-case в другой и вернуться обратно

    Вызвать метод.
    Ответ написан
  • Что должен уметь делать Python разработчик?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Python-разработчик в it это что-то вроде разнорабочего на стройке. Вроде он умеет всё делать но никакой конкретной специализации или направления за Python не закреплено. Это с одной стороны хорошо. Т.к. получается универсальный солдат. А с другой стороны стикер Python еще не говорит о том например сможете ли вы работать в ML. Последнее требует широкого обыта в этой области.

    Учитывая тренды времени я вижу следующие направления
    - автоматизация тестирования
    - автоматизация devops процессов, инфо-без
    - BigData + ML + системы машинного зрения
    - веб-разработка (Django, Flask), сюда-же я добавлю ботов и скрейпинг сайтов.

    Тоесть как видите специализации настолько разношёрстные что надо углубить сам вопрос.

    Не просто изучать Python, а изучать Python для конкретного вида деятельности.
    Ответ написан
    Комментировать
  • Как воспроизвести таблицу из БД Sqlite через JS в таблице HTML?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если таблица постоянно растет - то должен быть какой-то ограничитель. Иначе будет рефрешится все медлненнее и медленнее.
    Ответ написан
  • Где выучить Spring Framework?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Сильно зависит от background. Если автор заходит в Spring с улицы - то ему придется учить все в том числе SQL, ORM, Web, MQ. Это очень плохо и это ставит под сомнения обучение Spring.

    Если автор уже имеет опыт разработки веба к примеру, то хороший старт - брать старые приложения и адаптировать их под Spring.
    Ответ написан
    Комментировать
  • Регулярное выражение (RegExp): как сделать проверку на корректность введённой суммы?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Не нужно все задачи сваливать на регулярку. Регулярка видит семантику символьной последовательности.
    Арифметческие смыслы - такие как диапазон, больше или меньше, это все - мимо кассы. Это задача для
    целых и вещественных чисел а не для символов.
    Ответ написан
  • Как должен выглядеть алгоритм цикла с таким условием?

    mayton2019
    @mayton2019
    Bigdata Engineer
    1) A OR В И В OR А;
    2) A AND ВИ В AND A;
    3) (A OR В) OR С И A OR С;
    4) (A AND В) AND С И A AND (В AND С);

    Это не надо доказывать. Это законы коммутативности и ассоциативности булевых операций AND/OR.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я никогда не слышал чтоб кто-то читал чистые алгоритмы. Обычно программа более конкретная. Например алгоритмы игровой логики. Алгоритмы маш-обучения. Обобщенные алгоритмы какого-то языка (C++) etc.

    Чистые алгоритмы - это Кнут, Кормен. Короче сферическая лошадь в космосе.
    Ответ написан
    Комментировать