• Что делать, если начальство запрещает публиковать код на github?

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

    Свой личный код - можно но я тебе очень сильно не советую это делать с рабочей машины.
    Миллион раз были случаи когда параметры user.name/user.email из конфигураций github
    утекали в commit и по этим признакам очень легко было найти утечки. Причем я подозреваю
    что у самого гитахба есть бигдата джобы которые сканят код на предмет бизнесовых торговых
    марок и лейблов. Эти параметры можно менять и конфигурить для каждого проекта
    но я все равно не советую. Имя пользователя ПК у меня некоднократно утекало почемуто
    в MANIFEST.mf (так работал maven в дефолтной комплектации) и бог его знает сколько сюрпризов
    вообще таят в себе современные компилляторы. Короче набей себе татуху на левой руке
    "Never commit from Corporate Desktop! Never! You!"
    Ответ написан
    Комментировать
  • Как написать bash мониторинг файловой системы EXT4?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Подобоный bash мониторинг может создавать ненужную нагрузку (например если ты ишешь через find)
    а файлов очень много. Они мелкие и т.п. Вобщем если искать часто (каждые 5 минут - то это будет ненужная
    нагрузка). А если искать редко - то какая польза в таком мониторинге?

    Вобщем верную мысль подсказали выше - слушать события inotify. Правда там будет много флуда. Надо
    еще поработать над фильтрацией нужных событий. Но это - рациональный инженерный подход. Не стоит
    его отбрасывать.

    Есть у меня мысль - поднять информацию не из файлового API (find/du/ncdu) а из таблиц inode.
    Там как раз есть информация о размере. Оптимистично - это более быстрый метод. По крайней
    мере факт превышения квоты будет виден. А вот кем - надо искать.

    Еще есть мысль что контроль квот - это технология уходящего века. В мире современных файловых
    систем никто давно уже не учитывает файлы. Создается толстое хранилище на базе zfs например.
    Оно нарезается пользователям на кусочки по 16/32/64 Gb и отдаются в пользование. По ним-же
    идет тарификация. Если пользователь захочет больше - на ходу ему растягивается кусочек до нужного
    ему размера. Тариф соотв другой.
    Ответ написан
    Комментировать
  • Что за тип Unit в Haskel Rust Kotlin? Чем отличается от Void?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не понимаю зачем ты поставил такое число тегов? Мы что здесь 4 разных языка обсуждать будем?
    У них у всех разные механизмы работы с типами.

    Что за тип Unit в Haskel Rust Kotlin? Чем отличается от Void?
    Раз 500 прочел, не понял ни разу.

    Программирование - это практическая наука. Это не философия и не политология.
    Тебе не надо 500 раз читать. Читай 1 раз и пиши программу. И смотри как она себя ведет.
    void - это просто заглушка. Синтаксически полезна в операциях с указателями чтобы
    указывать что тип ссылки - неизвестен. Unit в некоторых языках (Scala) это тип-значение
    и его можно возвращать. В Хаскеле чтобы вернуть "ничто" - используется монада Maybe.

    int a=(int)(object)1;
    Что довольно дорого и долго. С выделением памяти в куче.

    Не понимаю что здесь дорого и долго? Или это пример неудачный. Хороший компиллятор
    сворачивает боксированные типы и сводит их к примитивам. Боксы также в runtime
    инициализируются через Flyweight чтоб иметь ровно 1 экземпляр на примитив.

    Ведь это прекрасно покроет все простые структурные типы, int char double.,

    Какие структурные типы? Откуда ты берешь терминилогию. Я тебя очень прошу в данном
    форуме - не придумывай новое применение устоявшимся терминам!

    То что ты хочешь (передача 8 байт) хорошо реализуется в Си и Ассемблере. Если тебе нужен именно такой
    уроверь абстракции - то тебе прямая дорога туда. Я напомню тебе также что типы в ЯВУ создавались
    долгие десятилетия. Они создавались с целью помочь программисту не делать ошибок и проводить
    формальное доказательство правоты программы. Программа с типами - имеет шанс быть правильной.
    Программа лишенная мехнизмов проверки типов - будет кишмя кишеть ошибками рантайма. И даже
    тестирование не будет доказывать их отсутствие в будущем.
    Ответ написан
    1 комментарий
  • Шифрует ли SSH web-трафик при подключении к http://localhost в браузере?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Диагностику протокола SSL/TLS можно сделать с помощью утилиты OpenSSL например
    вот как тут пишут https://stackoverflow.com/questions/17742003/how-t...

    Чтобы браузер полноценно работал с секретным протколом - ему нужен сертификат домена.
    Я тут не уверен можно ли создать само-подписный сертификат для localhost но мои знакомые
    девопсы хвастались что делали такое.

    Для создания сертификатов полно инструкций.
    Ответ написан
  • Как лучше хранить данные фиксированных таблиц в JSON или в отдельных полях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    JSON хорошо подходит для хранения неспецифицированных данных. Например у вас есть таблица товаров.
    У товара есть базовые свойства такие как цена, категория, название и производитель.
    А есть описалово товара где например для ТВ-панели будет около 50 параметров таких как диагональ,
    яркость матрицы, и прочая техническая чепуха. Вот эти 50 параметров можно положить в JSON (или JSONB)
    для Postgres. Потому что в магазине всегда есть прецензиозные клиенты которым нужна посудомойка розового цвета и встраиваемая и еще ценой такой-то и такой-то. Вот спецом для них такая структура может быть создана.

    Поэтому ответ тут может быть такой. Эти две техники не исключают друг друга. Вы можете использовать
    классическую таблицу с полями и +дополнительно иметь сет неспецифицированных полей.
    Ответ написан
    Комментировать
  • Откуда взялся const?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Попробуй так.

    void printMessage(const char str[]);

    Чем новее становится версия стандарта С++ - тем строже проверки.
    Ответ написан
    Комментировать
  • Какие есть альтернативы Macromedia Flash в сфере геймдев?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне кажется что флеш был уникален тем что сочетал в себе сразу 3 вещи. И среду разработки. И язык разработки. И плагин рендеринга векторной графики в браузере.

    Дизайнер который решил заниматься флешем просто его устанавливал и получал себе возможность создавать свой креатив сразу. Если брать JS то надо искать среду в которой можно рисовать векторную графику и анимировать ее. Есть ли такая среда - я не знаю.

    В прошлом были истинно программистиские решения такие как Java Applets но они не взлетели как раз
    именно по причине того что были ориентированы на программиста а не на дизайнера. Дизайнеру
    и в страшном сне не присниться писать java-код.

    Если смотреть в сторону Unity то там вроде-бы можно сделать многое. Но там чорт-пойми какая лицензия
    и создатели Unity закручивают гайки постоянно. А если ты - "вкатыш" в эту технологию то ты как-бы
    интуитивно ищешь нечто свободное и либеральное к использованию. Желательно - opensource.
    Ответ написан
    2 комментария
  • 8p8c теория передача и прием?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Но Ethernet это очень общий термин. А ты скорее всего имел в виду какой-то конкретный разъем. RJ-45 наверное
    и с какой-то скоростью (10/100mbit или гигабит).
    Ответ написан
  • Тонкости Компиляторов. Почему в классах с++ не требуется объявление функции до вызова?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задача состоит из двух частей. Первое это чтение документа по словам. Вот как тут пишут
    https://www.geeksforgeeks.org/python-program-to-re...

    И второе, когда поток слов уже есть - добавить их в словарь с генерацией порядкового номера.
    num = 0
    word_dict = {}
    
    // в теле цикла
    if not (word in word_dict):
      word_dict[num] = word
      num = num + 1
    Ответ написан
    Комментировать
  • Почему нельзя/можно писать бизнес-логику в sql?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно. Весь 20-й век почти так делали. База была главной. Эдакая себе царица. Ее любили. Холили.
    Приложения были двухзвенки. Оконная апликуха коннектилась к базе и все расчеты
    проводились в базе. Апликуха только показывала результаты в гридах и вводила формочки.
    Джобы тоже запускались в базе как процедуры на PL/SQL по скедулеру. Для пуска их клиент
    был тоже не нужен. Плановые задачи БД запускала самостоятельно. Это и было видение
    бизнес логики из 20-го века.

    В 21-м веке с развитием веба появился слой middle. И разработчики вынесли в него максимальную
    часть логики. Это произошло естественным путем. А базе досталась участь быть просто хранилищем
    таблиц. Потому что держать 2 копии логики или поддерживать было уже неудобно. В команде
    должен быть тогда разработчик и Java и PL/SQL одновременно. В современной парадигме
    разработки с ORM база стала просто чем-то вторичным. И на уровне ORM абстракций
    даже заменяемым на другие типы баз.

    Но не все так плохо.

    Фактически, логика современного приложения размазана по 3м слоям. Даже в браузере
    есть какая-то минимальная логика, например при аутентификации или при проверке
    валидности емейла. И какая-то логика агрегации (sum/group by) полюбому есть в базе.
    Потому что агрегировать в приложении все - глупо. Это лишний трафик.

    И нет такого архитектора который говорит "нельзя". Просто есть best-practices современной разработки,
    исходя из развитя железа, сетей и вообще рынка всего остального. Кто знает может в мобилах вернуться
    к двузвенкам. Смотря под каким углом смотреть на современные мобильные приложения? Who knows.
    Ответ написан
    2 комментария
  • Нейросеть без библиотек. Как можно реализовать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если сфокусироваться на решении задач про созданию простой двухслойной нейросети то тебе
    нужна матрица и вектор и операции над ними. И активационная функция. И функция обучения.

    Вот это все
    neuron
    layer
    network

    я-бы на твоем месте не делал. Это уже архитектура и интеграция. Если развивать проект дальше.

    И ты должен сам себе ответить на вопрос - что ты хочешь изучать. ООП или нейросети.
    Нейросети это тяжелая тема. Там много экспериметов. Много разочарований. Много работ
    дата-инжениринга по сбору и фильтрации входных данных. И этого всего настолько много
    что для ООП там уже сил не остается. Тоесть твоя декомпозиция задачи на 3 класса на старте
    тебе ничего пока не дает. Но обязывает тебя очень многому.

    Я-бы предложил делать прототип в олипиадном стиле.

    По поводу примерв. На гитхабе я находил много туториалов и пробных нейросетей на сях
    созданных в рамках обучения
    . Я искать их не будут. Я думаю ты сам найдешь.
    Ответ написан
    2 комментария
  • Есть ли необходимость или очевидные плюсы перехода на linux?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В целом острой необходимости нет. Особенно если ты работаешь с веб-дизайном например.
    Я перешел когда мне стало интересно разворачивать Ораклы и Hadoop и прочие вещи
    и мне нужна была нативная интеграция bash. Не на уровне виртуалок или докеров или WSL
    а мне нужна была истинная система. Делить ресурсы 50 на 50 между гостем и хостом я не хотел.
    И задачи я себе придумывал такие которые требовали hardware нагрузить на сто процентов.

    Корпоративные ноуты еще долго будут под Windows11. Это стандарт де факто для офиса. И я с ним
    вобщем согласен. Я-бы сказал что не звучит вопрос переходить или не переходить. А в современном
    мире, в мире где допустим командная строка как способ оперативного решения задач снова возвращается
    в руки разработчику (после периода забвения от Windows95) или девопсу, быть неграмотным в этой
    строке просто неприлично. Нужно быть грамотным в юниксовой строке независимо от того что у вас
    хост-система на декстопе.
    Ответ написан
    Комментировать
  • Может ли неродной кабель к БП с быстрой зарядкой испортить телефон?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я могу ошибаться но ток зарядки определяется по протоколу Power Delivery. Это должен быть диалог
    двух умных устройств. Телефон и зарядник который это поддерживает.

    UPD: Я думаю что провод здесь непричем. Я думаю что он может нагреться и из него дым пойдет
    но зарядник и телефон будут считать что все в порядке.

    Пули вышли из ствола.
    Ответ написан
    Комментировать
  • Что такое трансцендентные числа?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну в твоем уравнении x = π .

    Чисто π является трансцедентным числом. Также как и число e. Их алгоритм расчета - бесконечные ряды
    поэтому под определение это вполне себе подходит.
    Ответ написан
    Комментировать
  • Имеется текстовый файл, содержащий 54 тысячи строк. Как удалить из него каждую четную строку?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну есть лучше подход. Допустим у тебя 54 тыщи строк и ты хочешь получить 5.4 тыщ. Тоесть тебе
    надо грубо говоря удалить 9 строк и десятую оставить.

    Для меня это задача - на программирование. И я честно говоря не знаю как ее решать в текстовом
    редакторе. Не если ты будешь брать хеш-функцию от каждой строки и брать от нее по модулю 10
    то как раз на выходе выйдет что всте остатки от 0 до 8 можно вышвырнуть а остаток 9 - взять.
    И таким образом будет фильтрация с понятным коэффициентом.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не отрезолвился потому что ближайший DNS выдал чепуху.
    Попробуй вручную понаблюдать что отдает DNS по данному хосту
    через утилиты nslookup, dig e.t.c.
    Ответ написан
    Комментировать
  • Возможно ли сделать нейросеть, предсказывающую рост и падение криптовалюты?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее нельзя. Мы не можем учесть влияние "черных лебедей". Войны. Торговые санкции. Конфликты.
    И всякие локальные события например биржи Binance. Или какие-то мутки у разработчиков протокола
    криптовалют. Или баги в самом протоколе. Настроение в обществе. Мода. Слухи. Паника.

    Тоесть глядя на курсы валют мы видим не все факторы а только часть. И такое предсказание получается
    неточным.
    Ответ написан
  • Что можно сделать с большим весом "Новых точечных рисунков"?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот эту штуку еще можно посмотреть https://www.acdsee.com в качестве конвертера.

    Мда. bmp - это "толстяк" в мире графических форматов. Попробуй пересохрани в формате png. Станет чуть лучше.
    Ответ написан
  • Как фильтровать нецензурную лексику в telegram боте?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Опыт модерирования форумов рунета подсказывает что это все бесполезно.
    В русском языке очень много способом ругаться завуалированно. Посылать стихотворные формы.
    Метафоры. Можно печатать через пробел. Заменять кириллицу на похожие по начертанию
    Unicode символы. Печатать псевдографикой.

    Вобщем фильтрацией мата обычно занимаются админы канала. Более того. Если вы вводите
    интеллект который видоизменяет сообщения - то часть пользователей уйдут с канала. Эти
    либералы будут считать что у них есть свобода печати текста а вы - цензурите в авто-режиме.
    И есть мамкины хакеры которые будут день и ночь хачить ваш фильр мата и они его будут в конце
    побеждать. Потому что это борьба снаряда и брони - бесконечна. А вы - устанете вводить новые
    правила.
    Ответ написан
    Комментировать