• Как сделать инкрементируемый бэкап с ноута LINUX в облако?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    AlexxZhuravlev7, да, ставим, и если версия софтины совпала то конфиги подтянутся если она их хранит как положено в домашней директории.
    Насчет разворачивания тут есть варианты со своими плюсами и минусами
    1) Решение в лоб. Составляем примитивный скрипт вида apt-get install proga1 proga2 ... progaN . Дальше на свежеустановленной системе достаточно будет запустить полученное и все перечисленное будет установлено. Останется толькко подмонтировать облако и все. Минусов много, если дистр сильно обновился или изменились репозитории то какой то программы или ее версии может просто не оказаться. Плюсы что делается просто и вообще для какого угодно дистра с какой угодно системой пакетов.
    2) Юзать дистрибутивы с пакетными менеджерами использующими "оверлейные, контейнерные" типы софта. К примеру дистрибутивы Puppy и все производные используют pet\pfs\sfs контейнеры. По сути это ФС начиная от корня( \ ) программа разложена по нужным ей местам. Ось видит такой пакет и накладывает поверх основной ФС тем самым получается что она как бы установлена. При этом любые изменения файлов или добавления сохраняются отдельно, т.е. не трогают саму программу. Опять много плюсов и минусов, к примеру крайне удобно контролировать версии софта, очень удобно их переносить на другие инсталяции(тупым копированием pet\pfs\sfs), всегда легко и бесследно можно удалить или обновить софт, легко собрать свой пакет, легко собрать целый свой дистрибутив. Из минусов то что такой бутерброт оверлейных ФС накладывает свои нагрузки к примеру на оперативку, т.е. 100 таких программ это 100 фс наложенных друг на друга и каждая кушает скажем по 1 мегабайту озу.
    3) snap или flatpack или appimage, тут если проще говоря развитие идей п2, точнее даже аналогичные подходы. Тут можешь почитать что к чему.

    С одной стороны лично я бы предпочел тот же puppy с его подходом, просто потому что мне нравится такой подход, крайне удобно все контролировать и отсутсвует зависимость от устаревания репозиториев. С другой стороны скорее всего если понадобится что то обновить то придется делать это ручками или искать кто уже собрал пакет. На 2х ноутбуках у меня и используется puppy самосборный просто потому что удобно, софт стоит нужных версий и обновления не требуются, ноуты не очень мощные. С другой стороны на работе на рабочем ноуте сейчас стоит манжаро просто потому что нужны самые свежие версии софта, на серверах centos и opensuse.
  • Как сделать инкрементируемый бэкап с ноута LINUX в облако?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    AlexxZhuravlev7, проверить?) Можно и не всю домашнюю папку монтировать а к примеру только важную часть
  • Как решить проблему с кодировкой при выводе текста в файл из программы на Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    cattom72, github или Bitbucket например. Смысл в том что там будет лежать код, и каждое его обновление будет сохраняться отдельной версией, т.е. если что то пошло не так то всегда можно откатиться до нужной версии. Кроме того если найдутся единомышленники то прямо там же они могут прислать свои правки и улучшения а вы уже решите добавлять их или нет. Единственное что придется так это уделить пару часов времени что бы понять как с ним работать.
  • Как решить проблему с кодировкой при выводе текста в файл из программы на Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Если желаете помощи то можете сделать репозиторий, люди подтянутся. Лично я бы помог чем смог.
  • Есть программа для синхронизации файлов по wi-fi между Android, Windows, Linux?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    MadWastefield, можешь еще попробовать BitTorrent Sync, правда они с какойто версии в лицензии что то намудрили.
  • Есть программа для синхронизации файлов по wi-fi между Android, Windows, Linux?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    MadWastefield, с облаками можно схитрить, скажем цеплять облако как webdav а поверх encfs который портирован и на окна.
  • Есть программа для синхронизации файлов по wi-fi между Android, Windows, Linux?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    MadWastefield, врядли тогда он всеравно проживет долго. В такой ситуации можно и ручками тогда копировать туда-обратно раз в неделю или написать простенький срипт для винды и линукса который после ручного запуска тупо скопирует нужные папки и файлы.
    Может быть тогда проще телефон использовать как точку доступа в инет а там уже юзать какойнибудь гуглодиск или яндекс диск.
  • Как грамотно написать интерпретатор?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Александр Попов, да можно и он очень мощный. Можно дергать код и классы явы из js так и наоборот js в яве.
    все крайне просто и красиво:
    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine engine = factory.getEngineByName("nashorn");
    engine.eval("print('Hello, World!');");

    Дернуть класс явы в js, да запросто:
    var MyClass = Java.type("some.package.MyClass");
    var my = new MyClass();
    my.printMsg("Hello!");

    в яве надо будет также как и первом примере все но прочитать в BufferedReader скрипт и сделать engine.eval(полученное_с_ридера).
    Тут много примеров еще.

    Есть еще другие движки реализующие JSR 223(это и есть спецификация на апи для интеграция скриптовых языков). К примеру Jython, JRuby, luaj. Еще есть апачевский Bean Scripting Framework который реализует базовые фишки спецификации для облегчения написания своих языков или портирования существующих.
  • Как установить порог камеры в Unity3D?

    SDHOPS,
    И да, я не программист, и в этом деле только начинающий, поэтому пока работаю по урокам и беру с пользой информацию.
    сильно рад что не копипастер, лучше подучи алгоритмы а любой ЯП всего лишь их реализует. Просто сейчас очень часто, по крайне мере у меня, ситуация когда кто то спрашивает "у меня такойто грандиозный проект но вот тут проблема, помогите или пните в туториал, помогите?!" а следом видишь что "Some resource not found" или "divide by zero exception" и становится просто страшно и обидно.
    Честно пытайся и старайся думать больше сам, чем меньше "подглядываний" и копипаст тем уникальнее, интереснее и круто получается проект. Даже несмотря на ошибки и баги. Вспомнить теже приколы в виде распрыжки в квейке\хл, вроде баг но темнемение одна из фич движка игр.
  • Как маршрутизировать трафик в обход шлюза для разных подсетей?

    CAJIO RU, достаточно будет /22. Кроме того не забудь чтобы все клиенты заново получили все от dhcp =)
  • Как сделать инкрементируемый бэкап с ноута LINUX в облако?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    В случает zfs и вероятно некоторых других фс dd просто убьет все.
  • Как интегрироваться с кассовым аппаратом?

    Добавлю что как правило всегда имеется api в виде биндингов к разным языкам, разной степени кривизны и не полной документации к сожалению.
  • Phaser JS | Как указать, что нужно camera.follow.canvas?

    Andrii Sivak, прикрепи камеру не к player. Скажем к неким точкам.
  • Phaser JS | Как указать, что нужно camera.follow.canvas?

    Andrii Sivak, смотри, есть уровень, на нем расставлены пушки\монстры. Их логика, точнее ее выполнение, привязаны к положению камеры.
    Итого монстр стоит за пределами экрана\камеры, его логика не выполняется. Камера сдвигается\смещается и в нее попадает монстр у которого начинает работать логика. Т.е. он не ходил, не стрелял пока был вне поле зрения, тоже самое произойдет если он пропал из поля зрения. Если еще нужно чтобы он сбрасывался то храни его начальные координаты и если он исчез из поля зрения и не мертв то перемещай его на эти координаты.
    В псевдокоде как то так:
    game_objects[] obj;
    game_cycle{
      ...
      if(obj[i].on_screen(cam_coords))
          obj[i].tick();
      else if(!obj[i].isDied()) obj[i].resetPos();
      ...
    }
  • В каких случаях пишут на C вместо C++?

    freestm, вот после таких ответов на тостере рождается миллиард вопросов из разряда "а чейто у меня тормозит программа\код на языке N на моей raspberry pi\древнем c2d\celeron". Вопрос в том какое число ресурсов будет жрать готовая программа и сколько времени уйдет на ее разработку. Я не могу утверждать что на на php\java\c#\python быстрее написать сайт чем на С\asm, но в тоже время встанет вопрос на сколько быстрее\легче будет итоговый сайт или сколько времени уйдет на его разработку.
    В общем я к тому что это извечная война и каждый ЯП хорош для своей задачи, иначе почему ядро линукса написано на С, а ОС для SIM карт на смести C и java? Или почему Бизнес предпочитает Java а не С#? Или скажем почему современные 3д движки пишут на С++ а не С\Шарпе\Яве? Каждый язык хорош в своей задаче и особенно последующей поддержке. Можно написать безумно крутой проект на asm но с вероятностью в 99% он умрет в ближайшие годы просто потому что кто то напишет его на ANOTHER_POPULAR_LANG и найдет намного большую поддержку и развитие затмив родителя, будет ли быстрее, так на 99% не факт даже близко, будет ли функциональнее так точно будет.
  • Проблемы Precomputed Realtime GI, или же артефакты шейдера?

    Наблюдал нечто похожее если полигоны на моделях "кривые". Проверь направления нормалей.
  • Как создать лаунчер для игры Minecraft?

    2. После подключению к одному из серверов - просим ввести пароль через команду (или как в дальнейшем планировалось - в специальном окне).

    это какраз и делает authme плагин, но проблемы с ним я частично описал. Одно время был косяк, не знаю пофиксили или нет но таких очень много было, можно было зайти с любым никнеймом админа\модера, и пока идет таймаут ожидания ввода пароля зайти еще раз с такимже ником и плагин не срабатывал а игрок получал контроль всех прав админа. В общем много косяков было но скорее всего их все поправили давно.
    Но тут возникает вопрос можно ли легче сделать. По идеи можно передавать логин и пароль в аргументы запускатора, но тут возможно будут проблемы со стороны сервера, т.к. серверу необходимо передать этот пароль из клиента и произвести авторизацию. Так что скорей всего данная идея не закатит.

    Такое делал в свое время, передавал логин@пароль и на сервере плагином авторизовывал после чего счищал никнейм до @. Проблем очень много было на новых версиях выше 1.2.*
    Вижу я, что вы много в этом разбираетесь
    помимо своего проекта делал еще к 3м лаунчеры с нуля в т.ч. пара публичных которые до сих пор гдето на рубакките тухнут.
  • Как создать лаунчер для игры Minecraft?

    Дмитрий Кузнецов, ну если не будет авторизации вообще впринципе и даже такой примитивной то будет засилье читеров и кучи багов т.к. придется отключать onlinemode и пускать игроков по white листу или без него. Естественно это приведет к тому что не будет скинов\плащей, можно будет с чистой совестью запустить игру с любым ником что приведет к тому что под твоим ником с админ правами может зайти абсолютно любой игрок просто вписав такой ник.
    Выше приведенные ссылки к тому как работает оф ланучер и что нужно эмулировать, в примитивном и сокращенным видом это так выглядит:
    1) Лаунчер отправляет логин+пароль или токен на оф сервер или твою эмуляцию. В ответ получает много инфы и в т.ч. временный токен_авторизации новый.
    2) Лаунчер запускает игру и в аргументах среди прочего отправляет токен_авторизации и еще некоторые типа предопределенного языка и токена к примеру на твитч.
    3) игра запускается и сверяет полученный токен с тем который хранится на оф сервере или твоей эмуляции. В некоторых случаях получает новый.
    4) Коннект на сервер. При этом сначала сервер получает uuid по которому делает на оф\эмуляции пометку что такойто хочет на такой сервер. Клиент получает временный токен сервера и отправляет его на оф\эмуляцию для проверки, после если все ок игрок заходит на сервер, сервер отправляет на оф\эмуляцию что такой то прибыл и затирает токены\инвалидирует. (Этот пункт пишу по памяти но там достаточно тупая но в тоже время интересная 3х сторонняя проверка клиента\сервера\лаунчера)
    5) Игроки и сервер получают по uuid скины\плащи и остальную информацию с оф\эмулирующего сервера.

    Если этого не делать то будет так:
    1) Лаунчер запускает игру с необходимыми аргументами где часть параметров просто пустышки но с конкретным никнеймом
    2) На сервере отключен onlinemode и игрок может зайти на него с любым ником.
    3) После входа срабатывает серверный плагин типа authme который блочит движения и действия игрока спамя в чат чтобы он написал пароль.
    4)* Игрок пишет пароль и получает управление.
    *Скины и плащи не работают, смогут работать только после ручных патчей клиента и сервера и то вроде как не последних версиях уже неканает это.

    Так же добавлю что от версии к версии число и имена аргументов запуска меняется. К ним же еще прибавляются аргументы форджа\лайтлоадера. У форджа и лайтлоадера есть свои алгоритмы защиты и проверки "лицензионности", особенно у форджа.

    А вообще лицензии майна стоят копейки и проще отказаться от пиратсва. Я в свое время так и сделал, да игроков стало в разы меньше но они все 100% адекватные и понимающие что на таком сервере донат нужен просто для оплаты сервера и пиво админам, а на том доната в игре нет но есть пожертвования. И скажу честно люди платят. При этом образовалась тесная компания товарищей. К слову на одном сервере онлайн упал с 80 до 15-20 но эти 15-20 человек содержали сервер своими пожертвованиями и зачастую выступали с идеями которые потом вносились на сервер. Модераторы стали ненужны т.к. сами игроки спокойно писали в группу в скайпе что какойто подозрительный чел шарится и надо бы его проверить на вшивость.
  • Как создать лаунчер для игры Minecraft?

    Дмитрий Кузнецов, я же говорил про геморойность =) вот вам надо будет эмулировать очень многое для правильной работы
    Тут описано что и как отвечается и генерируется wiki.vg/Authentication wiki.vg/Mojang_API тут как работают ассеты wiki.vg/Game_files.
    Как минимум вам придется писать эмулятор аутентификации и авторизации или брать готовый и адаптировать себе.
    Эмулировать хотябы частично апи моянга по скинам и конверту имен-uuid и обратно.
    И кроме того патчить или переписать\эмулировать либу Yggdrasil на клиенте и сервере. Кроме того тут еще большее число камней т.к. от версии к версии все сильно отличается, где то достаточно пропатчить либу а гдето нужно еще патчить классы в клиенте и сервере и при этом обманывать цифровую подпись особенно если юзается forge.
  • Пытаюсь разобраться в RxJava на javaFx, падает "hello world"?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Денис Загаевский, прошу прощения, сильно не сталкивался с rx но почемуто запало что он по дефолту в отдельном потоке пашет. Почитал это https://habrahabr.ru/company/rambler-co/blog/280388/ и вроде бы понял что все не так просто =)