Задать вопрос
  • Шаблонный код: Чем можно удобно генерировать код для автоматизации сборки по шаблону?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я использовал Apache Velocity https://velocity.apache.org/ он правда не для кодо-генерации,
    а для отчетов, но в некоторых простых кейсх подходит. В шаблон можно добавлять проверки условий и циклы.

    Есть еще Mustache https://mustache.github.io/ , он более простой. Там просто строковые замены. Но, поддерживает все языки разработки для запуска.
    Ответ написан
    Комментировать
  • Как вызывать метод в Java определенное количество раз?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Предположительно ты скомпилировал программу но забыл задеплоить и поэтому видишь старое значение итераций.

    Используй логгирование как здесь пишут https://developer.android.com/studio/debug/logcat чтобы подтвердить что твой метод действительно вызван 5 раз.
    Ответ написан
    Комментировать
  • Откуда появились артефакты?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такой эффект может быть в инженерной графике когда стоят близко два полигона. Параллельно друг к другу
    и расстояние между ними настолько маленькое что глубины и точности Z-buffer не хватает чтобы определить
    что показывать ближе. Вот. Но тут еще артефакт воспризводится на прозрачных объектах. И это странно.

    Решением может быть просто увеличение физических размеров объектов. Вот у тебя размер задан в чем.
    Допустим в сантиметрах. Сделай все в милиметрах. Или в микронах.
    Ответ написан
    Комментировать
  • Есть ли способы включить компьютер по wake on lan через nat?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В магазинах спец-техники и наблюдения продавались такие устройства. Размером со спичечный коробок. Вобщем это почти мобильный телефон с удаленным управлением. И это устройство может выдавать на выход сигналы управления и к этим сигналам можно подключать реле управления техникой. Сад-огород поливать. Включать какие-то бытовые приборы удаленно. Управлялись такие устройства через DTMF тональный набор.
    Ответ написан
  • В каком порядке учить темы по алгоритмам?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В ВУЗах такой программы обычно нет. Мы учили лет 20 назад ОА и СД (оснонвы алгоритмов и структур данных).

    Ваш список - чудовищно длинный. Если по нему расписать все - то примерно хватит на 5 лет учебы.
    Я сомневаюсь что вы будете планировать с таким горизонотом. Я предложу выкинуть следующее.

    - Алгебра
    - Геометрия

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

    Далее выкидываем.

    - Теория игр
    - Динамика
    - Расписания

    Теория игр - это факультатив. Почитаете книжки на досуге. Не включают обычно в базовые программы.
    Не знаю зачем выделять отдельно расписания? Это может быть просто подраздел какой-то другой
    оптимизации. Динамика ... хм... Что за динамика? Упругого тела? Непонятно. Разверните опредление.

    - Строки

    Выкидываем строки. Это первое занятие по Turbo Pascal. За 15 минут вы узнаете что такое строки.
    Никаких особых знаний там нет. Алгоритм КМП и Боуер Мур - пойдет в ОЯ и СД.

    Графы - я не буду выкидывать. Но они идут как подраздел дискретной математики.
    Теория множеств. Дискретка. Графы. Это обычно один предмет.

    Далее.

    - Алгоритмы на последовательностях

    Я не знаю что это такое. Приведите пример. Возможно это имеет другие названия? Автоматы? Сети? Цепи?

    - Комбинаторика

    Тоже идет как подраздел дискретной математики.

    Итого в сухом остатке у нас остается 4 предмета.

    - ОЯ и СД из программы любого ВУЗа
    - Дискретная математика из ВУЗа
    - Линейная алгебра
    - Численные методы (да это реально настоящий предмет ВУЗа и притом достаточно плотный). Семестр как минимум.

    Структуры данных - поглощаются ОЯ и СД. Вот. Остается Линейная Алгебра. Я ее не знаю куда положить.
    Я не изучал ее отдельно как предмет. Возможно это и где-то выделяется в науку. Говоря о последовательности
    изучения этих 4 предметов - я могу просто сослаться на методички ВУЗов. Ищите их. Ищите учебные планы.
    Некоторые из этих наук я думаю можно учить параллельно.
    Ответ написан
    Комментировать
  • Как обойти все исполнения программы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Посмотри ключик
    -fsanitize=thread

    и еще посмотри PVS Studio. Вроде у них был статический анализ таких ситуаций но я точно не уверен.
    Надо искать инфу.
    Ответ написан
    8 комментариев
  • Можно ли учить Go первым языком?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Go - хороший язык. По крайней мере в нем есть типизация.
    Кроме того этот язык востребован на ниве devops и и микро-сервисов.
    Значит приток задач будет постоянно.
    Ответ написан
    Комментировать
  • Как произвести сортировку в таблице SQLite3, после удаления записи?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Все базы данных хранят строки не так как Excel. Хранят как предписано в файловом
    формате для целевой DBMS. Когда удаляешь - обычно
    остаются дырки которые потом заполняются другими строками. Но это я упрощенно рассказываю.
    В реальности все еще сложнее. И есть процессы вакуума или другой релокации строк. И таблица
    может двигаться в памяти. Шаффлиться. Делиться на части. Кластеризоваться и т.п.

    Поэтому твоя хотелка достигается только с использованием order by.

    Все остальные способы не работают потому что язык SQL не дает никаких гарантий относительно
    физического упорядочивания строк.

    UPD: Для авто-нумерации https://stackoverflow.com/questions/16847574/how-t...
    Ответ написан
    Комментировать
  • Как взять интеграл в уме?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Зубри формулы дифференцирования. Интегрирование - это обратный процесс по отношению к Д.
    И без этой зубрежки ты все равно никуда не сдвинешся.

    Кроме того. В решебниках тебе подсовывают "берущиеся интегралы". Это примитивные функции или
    их композиции к которым всегда можно угадать цепочку преобразований чтобы свести их к известным
    паттернам. Как например интегрирование по частям.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Насколько я знаю, она может отправлять данные не только по локальной сети, но для этого у компьютера должен быть так называемый 'белый' ip, но я не знаю будет ли у пользователя он.

    Для большинства обычных пользователей-обывателей интернета которые сидят в телефонах, домашних проводных интернетах, кафешках с wifi, невозможно зафиксировать постоянный IP. Он у них меняется либо раз в сутки либо по сеансу.

    Но если IP сервера известен то пользователь может периодически сам ходить на сервер и спрашивать "не пришло-ли чего нового". Это меняет роли для передачи данных. И это создает некую холостую нагрузку. В течение суток пользователи могут создать нехилый трафик такими пробами.

    Задача неизвестного IP:port частично решена в торрент-протоколах. Там пользователи "отмечаются" раз в несколько минут по трекерной ссылке и таким образом трекер владеет информацией о свежих парах IP:port которые присуствуют в сети. Вот. Эта схема тоже рабочая. Но нужен вот еще один сервис для трекинга.
    Ответ написан
    Комментировать
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю можно. Поищи такие компилляторы как Watcom C, Borland C.
    Они умеют генерить код для DOS. На ваткоме кажется была написана
    игра Doom for DOS.

    UPD +Линка www.openwatcom.org
    Ответ написан
    Комментировать
  • Как хранить большое количество json в mysql?

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

    Хорошая коробочная поддержка JSON с индексами и бинарным представлением документа есть в Postgresql.
    Про MySQL я не в курсе. Но вот посмотрите эту статью https://habr.com/ru/companies/skillfactory/article...
    Может быть появятся мысли.

    Ваш вопрос требует создания POC + Benchmark. Безотносительно того что вам тут напишут в ответах - ваша
    задача создать прототип и загрузить туда 100К синтетических записей и понаблюдать как быстро MySQL будет
    делать поиск нужных значений.
    Ответ написан
    2 комментария
  • MySQL on duplicate key update. Как избавиться от увеличения ID?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дырки могут быть связаны с механикой кеширования sequence для каждого сеанса mysql.
    По сути если 10 сеансов хотят быстро и без конкуренции вставлять в таблицу то они должны
    прочитать пачку номеров. Например первый сеанс с 1 по 10 и второй с 11 по 20 и так далее.
    В разных БД это реализовано по разному но это в целом - механика оптимизации скорости.
    И если сеанс закрылся и недочитал 7, 8, 9 номер то и хер с ним. Диапазон уже был использован
    как туалетная бумага.

    У тебя-же нет желания доставать из ведра грязную бумагу и еще раз ее использовать?
    Ответ написан
    Комментировать
  • Бот не вносит данные в таблицу sqlite, в чем может быть ошибка?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эти два запроса - какая-то безсмыслица.

    SELECT Town FROM users WHERE user_id = (?)

    UPDATE users SET 'Town' = (?)

    Автор ты можешь прокомментировать словами что здесь происходит. Мне кажется что после обсуждения
    у тебя должны возникнуть другие вопросы.
    Ответ написан
    Комментировать
  • Как оставить java.util.date в gmt0?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Для java11 имеет смысл отказаться от использования java.util.date в пользу java.time.LocalDate, java.time.ZonedDateTime. И использовать API из time для переводов локальных времен.
    Ответ написан
    Комментировать
  • Как следить за изменением авторизации пользователя?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На протяжении 20 лет я наблюдаю за базами данных и механизмами стриминга событий, слежениями
    и прочее. Так вот. Это все НЕ РАБОТАЕТ. Не работает по причине идеологии ACID. Вы не можете операцию
    DML считать основанием для генерации события. Потому что DML это не транзакция. Если мы фиксируем
    DML commit/rollback операцией - то при этом неочевидно что должна видеть стриминговая платформа.

    Она не может откатывать события в обратную сторону. Такой механизм технически дорог. Поэтому
    основанием для стриминга событий может быть только событие внутри приложения. PHP, Node, Java e.t.c.
    вот там и генерируйте события.

    А база данных здесь вообще не помошник. Сканировать таблицу по скедулеру тоже не надо. Это дорого
    и не реал-тайм.
    Ответ написан
    Комментировать
  • Почему возникает django.db.utils.OperationalError: consuming input failed: Operation timed out?

    mayton2019
    @mayton2019
    Bigdata Engineer
    --prefix, менял postgresql.conf и pg_hba.conf только чтобы слушал во вне

    А попробуй тоже самое собрать но без этих изменений.
    Ответ написан
  • Как спарсить whatsapp web?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почитай сначала раздел developers. Возможно там надо зарегистрироваться и просто взять готовый API
    и пользоваться.
    Ответ написан
    Комментировать
  • Как ускорить count в mongoose?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если пролистать до старых страниц, допустим до 5000 страницы, то это происходит очень долго(примерно 10 секунд, даже с индексацией)


    Это нормально. 5000 за 10 секунд - это 500 страниц в секунду. Ни один человек так быстро читать не умеет.
    Если пользователь давит pagedown - то наверное он что-то не так делает. Дай ему опцию goto номер
    страницы.

    Count работает супер медленно, если брать загрузку самых свежих страниц, без него они загружаются за 15мс, но при использовании count (даже при условии того, что кол-во страниц ограниченно 5000, больше не нужно), задержка увеличивается до 3-5 секунд


    Это нормально. Ни в одной БД count не работает достаточно быстро чтобы показывать реал-тайм.
    Вообще если вспомнишь что базы бывают ACID то они считают не актуальное состояние таблицы
    а "срез таблицы в прошлом" на момент начала тразнакции подсчета.

    Запоминай последнее значение count в переменную и транслируй пользователю внизу странички
    как актуальное но в прошлом. Например 15 минут назад.
    Ответ написан
    Комментировать
  • - Спроектировать локальную базу данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно для игровой логики реляционные БД не нужны. Бери любой Key-Value и там тебе достаточно
    возможностей чтоб хранить паззлы. С некоторым допущением обычная файловая система
    может быть простой БД. Ключ - имя файла и value - тело файла.
    Ответ написан