Задать вопрос
  • Почему в примерах книги используется 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: Добавил линку
    Ответ написан
    Комментировать
  • Бэкап Linux (Fedora)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Хочу при помощи tar сохранить все конфиги, но метаюсь между выбором директории home и ~/.config

    Дык тебе не надо метаться. Тем более что никто не сможет ответить нужен ли тебе home целиком или нет.
    Если места достаточно то бэкапть все что можно.

    Но проблемы бэкапа только начинаются после того как он сделан. Ты разверни виртуалку и попробуй потом восстановить все конфиги (и приложения!!) с этого бэкапа. Я гарантирую сюрпризы.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего тебе нужно 2 таблицы. Users и Tasks. Вторая - дочерняя и таким образом у одного юзера есть несколько тасков или ни одной.

    Это называется Нормализация БД.
    Ответ написан
    Комментировать
  • Почему новичкам часто советуют парсинг?

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

    Парсинг для самого разработчика - это дно-днищенское. Очень быстро прокачаете опыт в BeautifulSoup но кроме этого дальше расти некуда. Парсинг с точки зрения договорённостей о сетевом контракте (endpoint, Swagger, SOAP, gRPG) это тоже сплошное кидалово. Что-бы вы не дизайнили - владелец сайта в любой момент может сломать просто изменив спецификацию или дизайн. Это ставит вас в заведомо рабское положение. Вроде как работу проделали но за 1 день до релиза сайт сделал редизайн и всё зря. А никто не заплатит.

    Я парсил исключительно из любопытсва. Только не на Python а на других языках. Создавал базу прокей (штук 100) и пытался работать через них в параллелизме. Типа аккуратненько. Чтоб не было очевидно. Прокси ломаются. Отъезжают. Вобщем забавно. Можно потратить кучу времени но ненадежно. Все что бесплано - ненадежно.

    Мой друг парсил валютные биржи. Но не ради парсинга а ради самих данных. Это было полезно. Он гонял на них нейросетевые алгоритмы. Торговые роботы типа.

    По поводу опыта работы с Selenium. Я не использовал никогда. Но я думаю что это очень полезный опыт если вы докажете что делаете любые штуки - можете пойти тестером автоматизатором в большую корпорацию. Это уже на несколько левелов выше чем парсинг сайтов. И оплата стабильная.

    Вобщем как цель жизни парсинг - втопку. Но как некий опыт. Попробовать. Поймать тыщи HTTP-ошибок. Парсить разные виды респонсов - это я считаю полезно.
    Ответ написан
    1 комментарий
  • Компилятор выдаёт ошибку 1 при Выставление счета через QIWI. Что делать?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Автор попробуй поменяй версию com.qiwi.billpayments.sdk на более новую или более старую.
    Ответ написан
    Комментировать
  • Где ошибка? Почему массив выводится в линию?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Кажется вот этот вывод перевода строки стоит не там.
    }cout << "\n";

    Вообще... олимпиадный код где сплошняком идет стена вычислений вперемешку с выводом читать трудно.
    Разбей хотя-бы на 3 функции. Ввод. Расчеты. И вывод результата.
    Ответ написан
    Комментировать
  • Будет ли приложение для arm64-v8a работать быстрее чем для armeabi-v7a?

    mayton2019
    @mayton2019
    Bigdata Engineer
    До 2005 года производительность зависела практически только от тактовой частоты. Покупаешь 2 процессора. Смотришь. Если в 2 раза больше - то можно предполагать что в приложениях типа рендеринга 3Д графики будет ощутима разница.

    Для современного железа все стало запутано. Стали наращивать число ядер. А это значит что программист обязан писать приложения так чтобы они бились на независимые части и работали на ядрах. Мультизадачка по сути. В твоём кейсе скорее всего не будет разницы. Или будет сильно зависеть от класса приложения. Или будет разница зависеть от совокупности - процессор-кеш-объем-памяти-тип-сетевого-соединения (3G/4G/Wifi).
    Ответ написан
    Комментировать