Задать вопрос
  • Написание эмулятора сервера с нуля возможно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Насколько реально для одного человека имея клиент Lineage 2 написать эмулятор сервера с нуля, не заглядывая в код pts и java версии сервера, а так же не анализируя входящий трафик с работающих серверов?

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

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

    Кроме того, сколько лет вы готовы потратить на это мероприятие? Я думаю что вы будете достойны либо премии Дарвина. Либо книги рекордов посмертно.

    Мне кажется что в нашей жизни есть более интересные и более оплачиваемые виды досуга. Если вам нравится реверс - займитесь им там где за это точно заплатят. Государства и спецслужбы и большие корпорации в этом имеют свой интерес.
    Ответ написан
    Комментировать
  • Почему модели не синхронизируются с базой?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Похоже на сетевую проблему.

    Проведи диагностику на низком уровне. Пингуй хост DB_HOST.
    Попробуй телнетом подключится к порту DB_PORT.

    Потом - консолью
    $ psql ....
    Ответ написан
  • Выбор оптимального метода распределения банкоматов по территории города?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не знаю что такое тепловая карта но догадываюсь. Возьмите случайным образом бросьте на карту n банкоматов. Потом методом градиентного спуска спустите их по теплу в локальный максимум. Получится первый вариант расклада. Запомните его. И еще таких штук 10 рандомных раскладов. Потом - пускай человек выберет из этих раскладов тот который наиболее приятен глазу. Или введите там еще один критерий. Чтобы в радиусе километра не было соседних банкоматов.
    Ответ написан
  • Как научиться решать задачки на python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По математики не силен ((

    Не переживай сильно. Для 80% современных задач разработки тебе понадобиться только школьная математика.
    Сложить умножить и процент посчитать. Всё остальное - технический дискурс что делать и как делать.

    Высокая наука ушла в области datascience, AI, quantum-computing, и всякие формальные логические (тьфу) системы где теоретики занимаются онаниз.... эээ короче фигнёй страдают.

    Что тебе понадобиться на самом деле. Структуры python. Библиотеки. Основы мульипоточки. Работа с файлами и сетью. Там не бох весть какая наука. Школьники разбираются. Вот... тут каждый день кодят дискорд и телеграм ботов.

    Еще обрати внимание на операции со строками. Строки - основа современного бизнес-кода. Сравнение строк. Подстроки. Замены. Поиск по регулярке. Это должно быть выучено как молитва. Очень часто программист хорошо умеющий работать со строками выкрутится из любой ситуации. Распарсит json и так далее вручную.
    Ответ написан
    2 комментария
  • Java и выгорание на первой работе, что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это нормальная ситуация. Я тоже выгорал на некоторых проектах. В основном из-за того что мои знания просто были не нужны. Мне ставили задачи которые не хотелось делать. А те proposals которые я писал по проекту отклонялись по разным причинам.

    Кроме того события последних лет с ковидом и прочее создали ужасные условия для обучения в первую очередь. Люди выгорают. В основном от отсуствия эмоционального контакта с преподавателем. Уж сколько я поднаторел на самообучении но и мне тоже хочется взять в плюнуть на этот Databricks с ажуром.
    Ответ написан
    Комментировать
  • Стоит ли брать в 2022 году MacBook pro 15 2014 для программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужен ноутбук для программирования на java, c++, c#.

    Мне кажется что макбук имеет смысл брать только для разработки нативных приложений по MacOS.

    В остальных случаях лучше взять Dell или HP и еще лишние деньги будут. Прикупить хороших гаджетов.
    Ответ написан
    Комментировать
  • Какой смысл команды dup в JVM байт коде? И что за индексы локальных переменных?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Какой смысл команды dup в JVM байт коде?

    Жаль что ты не программировал на калькуляторе МК 60. Это целая эпоха.

    Значит есть разные пути к вычислению арифметики. Например если тебе надо возвести в квадрат число 5 на регистровой машине - то ты должен загрузить регистр R1 числом. Потом регистр R2. И потом найти такую команду умножения которая свяжет регистры R1 и R2 и перемножит и сохранит еще где-то результат. В силу современного зоопарка процессоров практически нереально создать такой абстрактный байткод который бы эффективно отображался на опкоды разных железяк. Поэтому решили забить на регистровую машину. И использовать стек как хранилище операндов для операций. Разумеется в JVM есть и аналоги регистров но с ними не выполняются операции. ЕМНИП. Если хошь что-то сложить или вызвать функцию - то положи на стек и там-же получи результат. И если вернуться к возведению числа 5 в квадрат это может быть так

    положить 5 на стек.
    дублировать
    вызвать функцию умножения


    На каком-нибудь языке Forth это было-бы тремя командами
    5 DUP * .
    Результат - на вершине стека.

    Это кратко записывается. Но это несет абсолютно ту-же смысловую нагрузку для арифметики.

    Почему их только 256 может быть?

    А чорт его знает. Так решили. Решили что 256 регистров это капец какой максимум для процедуры или функции. Послушай ради интереса видосы про процессор Эльбрус. Там тоже интересно с регистрами сделано.

    о есть на этапе генерации байт кода, сюда можно было после команды, просто адрес сразу впихнуть. И скорость выполнения должна же быть быстрее.

    Я думаю что твое предположение о том какой код соберет JIT не совсем верное.
    Вместо спора я предлагаю взять какой-то тестовый сценарий и подсмотреть какой
    будет собран код. Я знаю что скептики Java обычно после изучения вопроса глубже
    меняют свою точку зрения. Ну по крайней мере перестают считать Java
    "медленным покемоном". Java действительно была слоупоком во времена Jdk 1.1.
    Но щас это не так.

    Несколько лет назад я мерял производительность floating-point вычислений на приложении
    которое рендерит зеркальные шары. И разница между С++ и Java была не сильно большая.
    10 секунд на сях и 12 секунд на втором языке соотв. Хотя этот тест узкий и он просто
    показывает частный случай.
    Ответ написан
    4 комментария
  • Что за странные хэши в сообщениях с сайта?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Человек тарабанил по клавишам. Развлекался. Никакого нарушения нет. И угрозы пока нет.

    Вряд-ли ваше мероприятие зачем-то понадобилось Анонимосу. Вобщем не переживайте по этому поводу.
    Ответ написан
    Комментировать
  • Почему не считывает русскую букву в char?

    mayton2019
    @mayton2019
    Bigdata Engineer
    При работе с языками в консоли обычно возникают следующие вопросы.
    1) Консоль. Какая кодировка по умолчанию для однобайтных символов. Смотри команду.
    chcp для windows или
    $ locale для linux.
    2) Какая кодировка указана для char для текущего компиллятора. Включен ли режим _UNICIDE.
    Посмотри что делают
    setLocale(...);
     setCodepage(...);

    3) Какой размер символа sizeof(char).
    4) В какой кодировке написан исходник. Это можно проверить если посмотреть hex редактором. Там где русская буква может быть например 0xC0 для однобайтной и двух байтной для Unicode.
    5) Установлены ли шрифты? Операционка может быть англо-язычной и в этом случае она не обязата что-то специфичное отображать.
    Ответ написан
    Комментировать
  • Как работает генерация больших изображений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Непонятно что в вопросе автора является исходными данными?

    Заголовок генерацию? Но по сути вопрос - про обработку.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Перевод из десятичной системы в дробную 60 ричную (минуты и секунды) это вобщем правильный путь.

    Кроме этого. Как трактовать такие цифры GPS="36643005440;30046005270". Вот в моём GPS навигаторе в настройках есть несколько стандартов на координаты и коррекцию формы земли. Вобщем если вы просто получили сферические координаты из неизвестной системы - то надо поднять максимум инфы в каком стандарте она работает.

    Чистой математики на шаре вам будет недостаточно.
    Ответ написан
    Комментировать
  • Как ограничить ресурсы бота (ОЗУ) в discord на python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Наверное коробочное решение - это запускать все в конейнерах Docker/Kubernetes.

    +На стековерлоу было такое обсуждение https://stackoverflow.com/questions/41105733/limit...
    Ответ написан
  • Как найти область двумерного массива?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Серая область? Тут наверное 2 цикла надо.

    Либо обходить левый прямоугольник элементов и уже 2 линиями ограничить. Одна линия
    y = x и вторая - перевернутая y = -x и сдвинутая на вниз на SIZE. Тоесть y = -x + SIZE
    Ответ написан
    Комментировать
  • База данных на 32 гигабайта, как сделать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Между ОЗУ и БД есть еще промежуточный вариант. Это различные key-value библиотеки для работы с хранением и поиском больших объемов данных. Из таковых я помню



    На самом деле их гораздо больше. Но автору и этих хватит. LevelDb создавался гуглом и под него есть разные API (C++, Java, C#). Почти все эти key-value библиотеки поддерживают 2 базовые структуры данных на диске (это HashTable, B+Tree).

    Для твоей задачи прекрасно подходит дисковая хеш-таблица.

    А если разумно партицировать твой объем - то можно и просто в CSV файлы разложить с гарантийным временем доступа.
    Ответ написан
    Комментировать
  • Как возможно сделать этот код короче?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вместо 4 сторон света лучше брать единичный вектор на плоскости (x,y). Тогда формулы удара о борт получаются тривиальные. Просто где то меняется знак с плюса на минус.
    Ответ написан
    Комментировать
  • Как конвертировать строку массива в сам массив?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Никакой это не JSON.

    А по задаче. Может лучше не массив а vector?
    Ответ написан
  • Объясните на простом примере разницу между ООП и ФП?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На чистом ФП программировать достаточно тяжело. Нужно сильно изменить подход к задаче. Чистое ФП предполагает что когда вы вызываете функцию то "вся вселенная замерла". И второй вызов функции с такими-же параметрами будет видеть эту-же мертвую версию вселенной. Это если вобщем.

    Наш мир состоит из постоянно менающихся объектов. Файлы. Сетевые соединения. Объекты в БД. Это грязный мир. И натянуть на него ФП парадигму довольно сложно. В хаскель довольно жёстко порешали с этим. Сказали что есть монада IO. И если функция ее возвращает - то она работает с таким грязным миром. Всё остальное - чистое. Тоесть провели границу.

    Как тебе конфигурить твой роутер в ФП - я честно говоря не знаю. Мы должны сначала договориться об абстракциях. И понять где проходят границы чистого и грязного миров. Что делает get users from DB. Изменяет ли он мир? Или может вернуть внезамно другой результат при тех-же аргументах. Это все - сложные вопросы которые просто выходят за рамки твоего.

    Поэтому лучше не парь себе мозги именно таким вопросом. Кстати функциональщики тоже не могут сойтись на мнении например считать ли Sheme функциональным или мультипарадигменным языком. Вообще строгого деления на такие классы не существует. Можно просто сказать что когда мы программируем - то мы тяготеем к чему-то больше или меньше. Например форма Бекуса-Науэра (БНФ) - это чистое функциональное описание грамматики. А язык XPath - чистый функциональный. При этом и одно и второе могут быть инкапсулированы в проект на языке Java например который вобщем грязно-императивный. Тоесть в каких-то частях проекта мы сами исповедуем ФП.
    Ответ написан
    Комментировать
  • Как задать тип для структуры, где может быть массив или строка?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты переусложняешь. Сделай просто массив строк.

    {
        "data": ["string"]
    }


    Это покрывает все твои кейсы с 1 строкой и с null. И маппинг упрощается.
    Ответ написан
  • Каковы перспективы языка С++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В игровых конторах С++ вроде как нужен. Но я думаю что половину собеседования надо будет рассказывать как ты хорошо знаешь Unreal Engine.
    Ответ написан
    Комментировать
  • Возможно ли загрузить .jar файл в реальном времени с помощью JNI?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Автор посмотри системные переменные. System.getProperties() там полно всякой информации по текущему процессу. В том числе текущий директорий, и много другой полезной информации. Это поможет ответить на вопрос где лежит твой бинарник. А именно полный физический путь к файлу.

    Как скачать это - целая цепочка вопросов и ответов например КУДА качать и ОТКУДА. Ведь по вопросу непонятно где ты сам находишся в этом стеке технологий. Поэтому когда задаешь вопрос - дай хотя-бы обзор твоей технологии. Графическое приложение AWT/Swing/SWT/JavaFx. Веб-приложение. Stand-alone процесс. Апплет ( :)).
    Ответ написан
    Комментировать