Задать вопрос
  • Можно ли сделать linux "сервер" из старого android смартфона?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У малинки хотя-бы есть разьемы для USB/Ethernet/HDMI. Это полноценный десктоп не хуже тех которые были в 90х. Даже лучше если сравнивать с Радио86 или Спектрум.

    А что есть у телефона? Какая интеграция? Да это чертов кирпич в смысле интеграции. Даже ресет нормально нажать нельзя.
    Ответ написан
    1 комментарий
  • Облачная СУБД для чайника?

    mayton2019
    @mayton2019
    Bigdata Engineer
    AWS RDS - это те-же самые Oracle/Postgres/MySQL только запускаемые в хостингах Amazon.

    Поэтому твой вопрос слегка скомкан. Что на самом деле тебе надо? SQL DBMS которая работает в облаке? Потому что изучать это ты можешь установив локально бесплатные версии Oracle Express и других соотвественно.

    Ты работаешь с документами в Google Sheets. Каких возможностей тебе не хватает?

    Обычно (99%) когда говорят об облачных БД имеют в виду NOSQL:
    - Amazon DynamoDb
    - Microsoft CosmosDb
    - (у гугла тоже своё решение есть но я не вкурсе какое)

    У них есть сильное конкурентное преимущество в виде дешевизны хостинга, бесконечного
    размера и гарантированой пропускной способности. Тоесть оплаченной тобой пропускной
    способности.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    На входе - матрица размром (l,c) на выходе после транспонирования размеры перевернутся и будет (c,l).

    UPD1: Ты аллоцировал матрицу А. Потом матрицу Б. И в конце удалил память только одной матрицы. Это небрежность?

    UPD2: Как-то так должно быть. Лишние параметры поудалял. Добавил матрицу Б. Где-то перевернул индексы.

    #include "stdio.h"
    #include "stdlib.h"
    
    double **input_matrix(int l, int c) {
        double **A = (double **) malloc(l * sizeof(double *));
        for (int i = 0; i < l; ++i) {
            A[i] = (double *) malloc(c * sizeof(double));
            for (int j = 0; j < c; ++j) {
                double x;
                scanf("%lf", &x);
                A[i][j] = x;
            }
        }
        return A;
    }
    
    double **trans_matrix(double **A, int l, int c) {
        double **B = (double **) malloc(c * sizeof(double *));
        for (int i = 0; i < c; ++i) {
            B[i] = (double *) malloc(l * sizeof(double));
        }
        for (int i = 0; i < c; ++i) {
            for (int j = 0; j < l; ++j) {
                B[i][j] = A[j][i];
            }
        }
        return B;
    }
    
    void print_matrix(double **A, int l, int c) {
        for (int i = 0; i < l; ++i) {
            for (int j = 0; j < c; ++j) {
                printf("%lf ", A[i][j]);
            }
            printf("\n");
        }
    }
    
    void free_matrix(double **A, int l) {
        for (int i = 0; i < l; ++i) {
            free(A[i]);
        }
        free(A);
    }
    
    int main() {
        int l, c;
        printf("Enter the number of lines: ");
        scanf("%d", &l);
        printf("Enter the number of column: ");
        scanf("%d", &c);
        
        double **A = input_matrix(l, c);
        printf("Matrix A\n");
        print_matrix(A, l, c);
    
        double **B = trans_matrix(A, l, c);
        printf("Matrix B\n");
        print_matrix(B, c, l);
    
        free_matrix(A, l);
        free_matrix(B, c);
        return 0;
    }
    Ответ написан
    Комментировать
  • Как организовать алгоритм поиска по массиву ключевых слов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут наверное самый лучший алгоритм - это таблица.

    Но если есть энтузиазм - можно считать редакционное расстояние. Тогда столбец с Джонни не нужен.
    Ответ написан
  • Какой SSD быстрее: SATA 3 или M.2 NVME?

    mayton2019
    @mayton2019
    Bigdata Engineer
    SATA 3.0 на уровне стандарта ограничивает скорость в 600 mb/s.

    Осталось найти лимиты на m.2 и вопрос будет закрыт.
    Ответ написан
    Комментировать
  • Как понять/выучить ООП Python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Python - это хороший старт для карьеры, но плохой для ООП.
    Ответ написан
    9 комментариев
  • Почему в примерах книги используется i32, а не i8?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это очень старая практика. Почти все сишники так делают. Для современных процессоров операции с 32х разрядным числом удобнее. А суждать до 8 бит нет смысла. Все равно регистр EAX так или иначе используется целиком.

    Но 8 битные целые имеют смысл если их складывать в массивы. И еще имеет смысл ужесточать
    тип когда очень важно иметь функцию которая по контракту принимает только 8 битное целое. Но это редко
    бывает. Чаще мы хотим целое число пошире. Но не 64 бита. Это перебор. Это как бутылка водки против контейнера водки.
    Ответ написан
    5 комментариев
  • Какие есть методы, чтобы спарсить гугл таблицы на python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю тут надо не парсер делать а изучить тот API который Google спецом разработал для таблиц
    https://developers.google.com/sheets/api/
    Ответ написан
  • Какой алгоритм быстрее и почему?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе не нужно сортировать все 10 000 000 элементов чтоб взять два минимальных. Достаточно одного прохода
    с отслеживанием двух наименьших {m1,m2} . И кейсов сравнений будет немного. Новый элемент больше - игнорируем. Новый элемент меньше обоих - вставляем в голову. Новый между ними - вставляем в центр.
    Ответ написан
    1 комментарий
  • Как я могу подключиться к локально развернутому спарку через airflow?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Попробуй сначала подключись через
    spark-shell --master ....
    Это будет доказательством что порт доступен по сети и ты все правильно сконфигурил.
    Ответ написан
  • Съезжает ли индексы после удаления записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Индексы, будучи созданными один раз - остаются навечно.
    Если из таблицы удалены данные (50%) - то примерно
    столько - же данных будет удалено соотвественно и из индекса.

    Дисковое пространство которое занимает индекс - обычно не освобождается.
    Тут надо читать документацию по конкретной БД. Oracle может вести себя так,
    Postgres - как-то иначе.

    P.S. Интересная терминология. Съезжает...
    P.P.S Лётчик?
    Ответ написан
    Комментировать
  • Как расставить в тексте ` вокруг символов, которые не являются буквами (русскими или англ)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задача разбивается на под-задачи. Найти Python функцию которая определяет что символ принадлежит к english или russian диапазону символов. Я думаю что это - стандартная задача которая тыщу раз решена.

    И второе - это "обернуть" всё оставшееся в то что хочет автор. Я не сильно понимаю по какому алгоритму надо оборачивать. Похоже как всегда кодировка побита.

    Регулярки в данной разработке - избыточны. Я думаю что нам хватит стандартного API unicode.
    Ответ написан
    Комментировать
  • Как сохранить значения нескольких переменных в С++ 17?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Используй пару (pair).

    using namespace std;
    
    pair<int,int> getInfo(int x, int y) {
      return { x+1, y+2 };
    }
    Ответ написан
    6 комментариев
  • Как работает данный фрагмент кода?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    обязательно ли именовать пакеты в Java именно так "com.javastart.NAME"

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

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Нет таких инструментов. Утечка памяти - неформализована в терминологии Java.

    Но ее последствия видны в виде невозможности освободить память в какой-то момент времени в runtime.
    Причиной может быть некий глобальный статический объект который хранит в себе коллекции других объектов.
    Но такое программирование не запрещено. Просто надо хотя-бы знать в лицо такие глобальные объекты. Обычно это сингтоны, бины. Поскольку они - вечные - то и GC убирать их не будет.

    На ранних этапах можно делать memory-dump вашего приложения и анализировать его через Eclipse Memory
    analyzer. Там в виде гистограммы публикуется использование памяти и количество объектов. Через него например
    я видел как по хамски себя ведет postgres JDBC драйвер во время выборки.
    Ответ написан
    2 комментария
  • Как ускорить процесс получения большого объема данных?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Сложно обсуждать перформанс-проблему без исходного кода.

    Я-бы предложил как всегда ударить кувалдой. Тоесть запустить по приложению JProfiler и просто посмотреть что он покажет. Проблемных мест может быть 3. Это чтение из базы. Второе это собственно проверки и валидации. Как они реализованы? Насколько качественно? И третье это собсно запись в БД. Используется ли JDBC-batch?

    SpringQuartz, cron, view здесь вообще непричем и их наличие только путает нас и вносит новые ненужные вопросы. Лучше решать проблему как одну java-функцию с входом и выходом.
    Ответ написан
    4 комментария
  • Почему Doom портируют куда только можно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Doom - это была одна из первых игр где была реализована в полной мере техника BSP (Binary-Space-Partition). Это позволяло в реальном времени очень быстро сортировать и рендерить полигоны без привлечения Z-Buffer. (Рендеринг был чисто прогарммный. На то время еще не было ускорителей 3Д графики и видеокарточка умела только отображать память на экран. ) Игра не была по настоящему трехмерной. А только рализовывала 1 этаж. Рендерить надо было только пол и потолок. Для каждой точки где стоял персонаж. И наклонных горизонтальных поверхностей в ней не было как раз по этой причине. Ее называли 2.5-мерной игрой. Было также много идей оптимизации вычислений. Например вместо вещественных чисел - целые 32х битные с fixed point.

    В скобках замечу что это был 1993 год и на дворе было царство Intel 286/386. Это были машины с тактовой частотой меньше ваших телефонов (Pentium только только релизнулся и еще ни у кого не был). И трехмерный Doom был прорывом. На моем тогда еще 386SX от подтормаживал но играть было можно. И со звуком для SoundBlaster. И конечно это было лучше чем Wolfenstein.

    Аналогичное было реализовано в Duke Nukem 3d. Но Дюк был менее популярен ИМХО. Были и масса других 3д игр в жанке RPG но они были не такие динамичные. Походовые в основном.

    Вобщем сегодня если вы гейм-дев то вам желательно хотя-бы ознакомиться с техниками оптимизации которые были в Doom. Можно почитать и про Quake но это просто развитие идеи BSP деревьев для полного 3D с 5 или 6 степенями свободы. Еще можно почитать про реализацию игры Esctatica. Там не на полигонах а на шариках или эллипсах реализована игровая графика. Тоже интересно.

    UPD: Заменил MMORPG на RPG.
    Ответ написан
    6 комментариев
  • Как считать из файла определенное слово, и посчитать сколько раз оно появляется в файле СИ?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почему вопрос градуирован как "сложный"? Тебе нужен символьный буфер на 6 символов. Вот и пиши в него
    по кругу. Как только в круге появится ананас - вот и считай плюс один.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я уже устроился на работу по специальности в крупную официальную компанию по специальности и успешно прошёл стажировку

    Ну вот если устроился и работаешь - то тебе вроде как оно и не надо. За образованием идут в двух случаях. Первое - это корочка которую требуют родители например или консервативное общество. Или гос-контора обязательно спросит ксиву при попытке туда устроиться (я-бы эту возможность не отбрасывал). И второе - эт собственно технический пласт знаний. Люди по разному учатся. Я-бы не смог учится УЖЕ работая. Это как мне кажется такой разрыв смыслов. Вот на работе тебя поставят за станок с ЧПУ и ты будешь знать досконально как ДАННЫЙ станок работает. Может даже станешь мастером по наладке. Но вот принципы на которых этот станок работает - тебе никто никогда на работе не расскажет. И не потому что это тайна. Просто всем некогда. На работе е6ошить надо как говорил мой шеф. А не книжки читать.

    Вот и думай себе. Кумекай что тебе на самом деле надо. Я знаю очень многих людей которые только в 40 лет осознали как много они не знают и что им реально нужно было когда-то ... давно получить это самое образование. Кусали локти потом. Но уже была семья.. дети.
    Ответ написан
    Комментировать
  • Как спарсить openapi?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Так ты сам этот инструмент назвал. Это и есть Swagger. А точнее swagger-codegen.

    https://swagger.io/docs/open-source-tools/swagger-...

    UPD: Добавил линку
    Ответ написан
    Комментировать