Перейти к содержимому

Totoro

Гуру
  • Публикации

    1 950
  • Зарегистрирован

  • Посещение

  • Победитель дней

    289

Сообщения, опубликованные пользователем Totoro


  1. Правда, это все зачастую, как правило, будет занимать 99.99999% от основного кода наших программок :)

     

    Ну да, как всегда, красивости занимают больше всего  :D

    Но всё таки, если программа достаточна большая и сложная, мне кажется имеет смысл этим заниматься.


  2. Мне тоже идея внешних файликов с локализациями нравится больше.

     

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

    Вроде так довольно многие делают.

     

    Например, пишем программу в /usr/bin/holo.lua, а файлы локализации в /etc/holo/lang/ru_RU.lang и т.п.

    А потом в /etc/holo/app.conf записываем какой язык выбрал пользователь при первом старте.

     

    Минус тут только один - загружаются лишние языковые файлы, которые будут занимать место на диске, и которыми пользователь не будет пользоваться.

    Хотя, можно из программы подчищать лишнее потом.


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

     

    Это уже немного детали UI программы. Но вопрос-то остаётся тем же самым.

    Как хранить переводы?

    Жёстко забитыми в коде?

    А как распространять программу на разных языках?


  4. Я вот тут задумался, а как быть с интернационализацией (и локализацией) программ?

     

    i18n-logo-v1-2.png

     

    Когда программа становится достаточно большой и популярной, возникает мысль выложить её на каком-нибудь иностранном ресурсе. Ну или просто какой-нибудь чувак приходит и говорит: "I like your program very much, but I don't understand russian at all".

     

    Свой голографический редактор, например, я поддерживаю в двух версиях одновременно - русской и английской.

    По сути два отдельных клона программы. Это не очень удобно.

     

    Отсюда вопрос - как запилить удобную систему локализации программ?

     

     

    1) Клоны программы на разных языках

    Самый дубовый способ. То как я делал до недавнего времени. Выпускаете программу, делаете несколько копий, каждую переводите на разные языки.

    Не очень удобно для вас - потому что надо клонировать и переводить каждую новую версию.

    Не очень удобно для тех, кто хотел бы вам помочь с переводом - они не разбираются в вашем коде, и искать в нём, что надо перевести им будет не удобно.

    Эту задачу можно облегчить, если вынести все фразы в табличку в начале программы:

    local text = {
      greetings = "Приветствую!",
      ...
    }
    

    Тогда можно будет не копаться в поисках отдельных строк по всему коду, а только перевести эту табличку.

     

     

    2) Файлы локализации

    Делаем отдельный файлик, наподобие конфига. В него записываем такие же пары значений, например:

    greetings = Приветствую!
    

    И потом считываем его из программы при старте. Можно сделать дефолтные значения, которые прописаны прямо в коде, и будут использоваться, если программа не нашла файлы локализации.

    Сами файлики могут лежать рядом с программой, или в папке /etc/my-project/..., или ещё где-то.

     

     

     

    Если заливать программу в репозиторий, тоже возникают варианты.

     

    Мы может создать несколько пакетов, например: holo-ru, holo-en.

    Это как-то немного нелогично. Установка программы будет выглядеть так:

    hpm install holo-en
    

    Другой способ - это дублировать версии пакета, и дописывать им языковой суффикс: 0.1.0-en, 0.1.0-fr.

    Вроде получше. Установка будет выглядеть так:

    hpm install holo@0.7.1-ru
    

    Недостаток - нам всегда придётся указывать версию полностью. То есть нельзя будет как раньше - просто указать название пакета, а репозиторий сам выдаст самую свежую версию.

     

    Ещё один способ - это держать файлы локализации отдельными пакетами от основного проекта: проект holo и локализационный пакет holo-lang-en например.

    Тогда саму программу можно будет установить как раньше. Но если мы захотим сменить дефолтный язык, придётся указывать дополнительный пакет:

    hpm install holo, holo-lang-en
    

    Тоже не совсем юзерфрендли.

     

     

     

    Предлагаю обсудить эту тему, и придти к какому-нибудь удобному стандарту.

    Какие варианты решения проблемы приходят вам на ум?


  5. Проблема в том, что она написана на С++ и без модифицирования мода не работает

     

    Какое модифицирование мода?

    Там на C++ вроде только генератор шрифта. Генеришь его и используешь потом через обычную прогу.


  6. Дело не только в протоколе, а в том, что Windows - это сложная структура с закрытым кодом. Комплексная.

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

    Весь этот зоопарк простоянно прощупывают и исследуют разными способами хакеры.

     

    ВаннаКрай - это просто один вирус, который вышел из под контроля (ну либо хакеры обнаглели наконец =)) и стал заметен.

    А другие уязвимости, которые используют один-два человека, могут оставаться незаметными годами.

    • Нравится 2

  7. Надо просто обновления вовремя ставить. Вот я юзаю 10 винду, всегда обновляю. И я в безопасности

     

    Обновления часто происходят "пост-фактум".

     

    То есть:

    1) хакеры нашли дыру

    2) хакеры ей воспользовались

    3) общественный резонанс

    4) Microsoft заштопал дыру

     

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

    • Нравится 1

  8. На игровой может быть, а на веб останется такая-же

     

    Ну веб в нашем случае - меньшее из зол.

    К тому же, теоретически, можно вообще не выполнять вычислений на вебе, а просто запомнить точное время предыдущего запроса и состояние счёта на тот момент.

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

    Вуаля. Сервер вообще не нагружен, если не считать собственно обработки запросов. =)


  9.  

     

    Утомили уже, ну. Исходя из определения ОС, это и есть классическая ОС с графическим интерфейсом, от ванильной OpenOS остались лишь несколько либ, переписывать которые лень и не имеет смысла ввиду их высокого изначального качества. Все остальные скрипты заменены на авторские с обратной поддержкой OpenOS. Интереса ради задам вопрос от противного: чего этой "графической оболочке" по мнению гуру ComputerCraft.ru не хватает для становления полноценной ОС?

     

    Никольно не принижаю качество проекта - штука охрененно крутая. =)

     

    На скрине написано:

    "ОС - это первый и основной набор программ, загружающихся в компьютер". 

    Первый и основной у нас как раз и идёт OpenOS. А MineOS потом загружается поверх.

    Ничего плохого в этом нет, первые версии Windows так же работали (как уже кто-то выше упомянул).

    • Нравится 2

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

    То есть валюта держится на майнерах. Они - её основной двигатель и заодно гарант безопасности.

     

    В твоём случае именно модель майнинга имеет только ролевое значение - можно "отыграть" роль "майнера криптовалют".

    Но это можно сделать проще, и с меньшими нагрузками на сервер.

     

    То есть на практике у тебя просто есть набор аккаунтов, на которые, с большими лагами начисляются виртуальные монетки. Всё.

    Может тогда взять модель криптовалюты Nimses? Пользователь создаёт аккаунт и просто получает монетки за просто так. С какой-то фиксированной скоростью.

    Нуль нагрузки на сервера - а эффект такой же.

    • Нравится 1

  11. Эта ось настолько популярная что мод Opencomputers ассоциирует именно с этой OS.

     

    Не надо обощать.  ;)

     

    P.S. И вообще, почему вы называете MineOs "операционной системой"? Строго говоря - это DE ("desktop environment"). Графическая оболочка.

    • Нравится 2

  12.  

     

    Также, зачем создавать переменные? Если всё равно значения в них не меняются:

     

    Справедливости ради, как раз это оправдано.

    Называется - "избавиться от магических констант".

     

    Когда каждое число (или любое другое значение) в коде сохранено в переменную - оно имеет название. А название - поясняет, что это за число.

     

    Например, что понятнее?

    if x > 0 and x < WIDTH then ... end
    

    или

    if x > 0 and x < 19 then .. end
    

    В первом случае очевидно идёт проверка по попадание координаты по ширине. Во втором - не обязательно. Приходится приглядываться к этому фрагменту внимательнее.

     

    К тому же, когда ширина вынесена в отдельную переменную, ты можешь изменить её значение сразу в сотне мест в коде. Просто поменяв одну строку.

    А если бы везде использовались просто числа, пришлось бы лопатить код, и надеяться, что ты не забыл где-то что-то поменять.

    • Нравится 3

  13. При всём уважении к чувствам автора, это что-то странное.

    Типа: "у меня тут внезапно зачезались руки и я пять минут писал на языке, который похож на Луа; вот, держите, теперь вы сами разбирайтесь что это за хренотня".

    • Нравится 1

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

     

    А в чём фишка системы тогда вообще?

    Это просто сервер с базой данных, где записано число монеток для каждого ника? Или там даже базы данных нет?

    • Нравится 2

  15. Согласен с предыдущими ораторами.

    Если компьютер намертво повис - его можно выключить и снова включить.

    Но фишки с блокировкой прерываний очень полезны в целом ряде софта - банки, инфо-щиты, всякие терминалы и т.п.

    Поэтому это нововведение не совсем понятно.


  16. намек я понял... "Это наш ивент, и если мы решили захватывать точку, мы ее будем захватывать"  :giggle:  

     

    :D

     

    UT - это UT, всё таки. У него уже сложившийся формат. Это арена, где программисты показывают свои скиллы, выпуская сражаться заранее запрограммированных ботов.

    А вот после UT можно будет запустить что-нибудь новенькое и под новым названием. Какой-нибудь хацкерский челлендж, где участники будуть ломать друг друга по сети, например. Или гонки за летучими коровами на хряко-коптерах, управляемых через OpenGlasses. Любую хренотень. =)

    • Нравится 1

  17.  

     

    Будет ли возможен перезахват точки?

     

    Конечно! Это добавит веселья и непредсказуемости. Можно будет сидеть на базе весь раунд, а потом за две минуты до таймаута совершить стремительный налёт и подмять 55% территории под себя. Победа!

     

     

     

    Можно ли будет захватывать одну точку всей командой?
     

     

    Да, я думаю такой механизм тоже будет. Это ведь логично. Например на точку навалилось трое вражеских дронов. У меня нет ресурсов чтобы противостоять им, но я могу выделить одного дрона из своей команды, чтобы замедлить захват, и задержать их до момента, когда подоспеет подкрепление.

     

     

     

    Предлагаю следующий механизм захвата точки: ...
     

     

    Хорошая идея.

     

     

     

    Предлагаю сделать контрольные точки физическими ...
     

    1) Вот тут я согласен. Это будет удобно.

    2) В эфире конечно какофония будет, но почему нет.

    3) +

     

    Насчёт зарядников, я думаю они будут определены конфигурацией карты. То есть будут, как и спавны дронов, находиться в постоянных, более менее сбалансированных, всем известных местах.

     

    P.S. @Alex, @qwertyMAN. Да, мы вкладываем много усилий, и всё можно было бы организовать по другому, правильнее и проще, и может быть это было бы популярнее.
    У нас не лига CodeForces, увы, и участники не всегда пишут красивый и оптимальный код, и не всегда всё идёт по плану.
    Но может мы кого-нибудь вдохновим на проведение своего эвента, с учётом возникшей критики и предложений?  ;)

    • Нравится 1

  18. и тоже спорная концепция выбрана. Игры для того и пишут, чтобы в них играл человек и сам там непосредственно участвовал, рос над собой и качал свой скилл и пр.

    Ты бы играл в игру WorldOfTanks или Dota2, если бы например разрабы требовали от тебя только написать просто бота, загрузить его им на сервак, который там управляет танчиками или героями, а ты просто сидишь и смотришь печально в монитор? То-то же. И я бы не играл  :)

     

    Именно так. А теперь спросим себя - какие именно скиллы мы хотим развить в участниках? Скиллы программирования, или скиллы быстрого клацанья мышью и клавой?

    Я бы всё таки хотел ориентироваться на первый вариант.

     

     

     

    п.с. Зачем вам сам ивент и арены какие-то и прочее, тратить там силы на оформление и развертывание всего этого. Можно за одну минуту по коду прог участников понять, кто победитель.

     

    Для фана же. =) Куда веселее и менее предсказуемо зайти на сервер и потусоваться с остальными зрителями, наблюдая - чья одолевает.

    А если слишком скучно наблюдать со стороны - становись участников, и болей за своего бота!

    • Нравится 3
×
×
  • Создать...