Я не представляю авторов игры. Я с ними даже не знаком =)
На странице проекта есть «game footage» видео, которое даст представление о графике и анимации.
Ну и всегда можно попросить интересующие вас детали и подробности через Twitter и Facebook.
Спасибо за очередное обновление.
Пользуясь случаю, задам вопрос: планируете ли вы когда-нибудь (может через пару лет) сделать IDE для программирования на D? По синтаксису этот язык попроще чем C++. Я пытаюсь писать парсер используя BNF и Flex, но у вас в этом вопросе опыта и ресурсов однозначно больше.
У вас повсюду в коде присутствуют куски SQL скриптов. Фреймворки используют ORM для абстрагирования от базы данных. Если вам придётся переименовать какую-нибудь таблицу в коде, то придётся искать все SQL запросы, где эта таблица упоминается. Так же ORM помогает бороться с SQL инъекциями.
Ещё в коде очень часто встречается конструкция:
$error = ...;
if ($error) return $error;
Почему вы не используете исключения для обработки ошибок?
Очень много строк вида:
case 'alert_error_time' :
case 'error_time' :
case 'promised_amount_points' :
case 'promised_amount_votes_0' :
case 'promised_amount_votes_1' :
case 'promised_amount_votes_period' :
case 'holidays_max' :
case 'limit_abuses' :
case 'limit_abuses_period' :
case 'limit_promised_amount' :
case 'limit_promised_amount_period' :
case 'limit_cash_requests_out' :
case 'limit_cash_requests_out_period' :
...
Почему бы не вынести их в константные переменные в отдельном классе?
Вы не думайте, что Я придираюсь. Просто ваш стиль написания кода далёк от идеального. Сейчас класс ParseData очень сложно анализировать, чтобы понять, как он работает. Может быть стоит выделить отдельно класс для административных функций (admin_ban_miners_*), отдельно классы для обработки голосований (votes_node_*), классы для запросов наличных (function cash_request_*) и т.д…
У вас по тексту статьи и в комментариях часто проскакивают фразы вроде:
Можно просто попросить майнеров, чтобы ...
… этот коэффициент определяют сами майнеры данной валюты путём голосования.
Майнеры могут проголосовать за то, чтобы монеты простых пользователей росли на их кошельках.
Возможно майнеры DNOK введут правило ...
Вы слишком доверяете голосованию, демократическим инструментам и ответственности майнеров. Вы уверены, что накрутки невозможны?
Во вторых, насколько Я понял из статьи, в вашей системе есть три роли: администратор, майнер и обычный пользователь. Сравните это с Bitcoin, где все участники равноправны. То есть ваша сеть распределённая но у неё есть центры, от которых зависит работа сети. То есть, если достаточное количество майнеров сговорятся и будут минусовать всех подряд, то никто не сможет зарегистрироваться. Как вы будете защищаться от этого?
Не очень понятно из описания, как планируется обменивать вашу криптовалюту на наличные деньги. Должна состоятся передача денег, которая потом фиксируется в транзакции? Как происходит связь между наличными деньгами и вашими денежными единицами? (напоминает обмен Мавро <=> Наличные в МММ)
Также обязательное требование выслать фото и видео немного смущает деанонимизацией. Вряд ли много людей захотят демонстрировать своё лицо, чтобы зарегистрироваться в системе.
Одно из применений рефлексии это ORM. Я когда-то искал какой-нибудь удобный ORM фреймворк для C++/Qt, но в большинство из них представляло из себя набор макросов, которыми крайне неудобно пользоваться.
Ещё во фреймворке Qt есть модуль QtQuick для декларативного описания интерфейсов на JavaScript-подобном языке QML. Так вот благодаря метаклассам можно из JavaScript обращаться к обычным свойствам и методам C++ классов. Это ли не чудо? =)
Почему автор оригинальной статьи просит рефлексию только на этапе компиляции? Многие современные языки поддерживают рефлексию в Runtime: Java, C#, Python, Objective-C, ActionScript 3. Даже фреймворк Qt умеет создавать метаинформацию на этапе компиляции (так называемая предкомпиляция) и использовать её в Runtime.
Может быть знатоки подскажут: давным-давно в Python была обнаружена проблема слабого хеширования строк [1], из-за которой специально составленный POST запрос мог в одиночку за DOS-ить сервер. Проблему исправили, добавив рандомизацию в быстрый хеш строк. Подвержена ли какая-нибудь версия Java этой проблеме?
На днях помогал коллеге-программисту добавить маршрут общественного транспорта через JOSM. Я давал указания, а коллега работал мышкой и клавиатурой. Для него это был первый опыт работы с отношениями в OSM. Для меня это было просто и понятно: выделить линии, добавить их в отношение, упорядочить, проставить роли, проставить теги. Но для коллеги интерфейс выглядел очень непривычно, скроллинг правой кнопкой мышки, какие-то магические key-value константы.
В итоге маршрут мы создали, но желание повторить тоже самое для другой маршрутки у моего коллеги не возникло. Надо было, наверное, установить специальный плагин для маршрутов. Было бы не так хардкорно ))
Вставлю свои 5 копеек. Я давно слежу за развитием OSM. Помню времена, когда изображения Украины обновляли по четвергам. Сейчас мощностей добавили, софт допилили. И внесённые изменения появляются на сайте в течении минут. Благодаря Mapbox развивается главная страница сайта, с нуля создан редактор iD, который работает на чистом HTML+JS, скоро добавят построение маршрутов прямо в браузере и будут показывать информацию об объектах на карте при клике на них.
Но по удобству пользования OSM, Osmand, Potlatch, JOSM и другие инструменты всё ещё проигрывают инструментам от Google и Yandex. Например поиск на osm.org ужасен. В нём нет подсказок по мере ввода текста, он не исправляет опечатки. У отечественной разработки openstreetmap.ru с поиском получше.
В общем OSM, как база данных, динамично развивается, привлекаются новые участники, всё больше городов получают детальные схемы, количество переходит в качество. Но инструменты, которые прилагаются к этой базе, ещё далеки от совершенства.
На странице проекта есть «game footage» видео, которое даст представление о графике и анимации.
Ну и всегда можно попросить интересующие вас детали и подробности через Twitter и Facebook.
Внутри epub лежат HTML файлы. Забрать HTML с mega.co.nz
Пользуясь случаю, задам вопрос: планируете ли вы когда-нибудь (может через пару лет) сделать IDE для программирования на D? По синтаксису этот язык попроще чем C++. Я пытаюсь писать парсер используя BNF и Flex, но у вас в этом вопросе опыта и ресурсов однозначно больше.
Ещё в коде очень часто встречается конструкция:
Почему вы не используете исключения для обработки ошибок?
Очень много строк вида:
Почему бы не вынести их в константные переменные в отдельном классе?
Вы не думайте, что Я придираюсь. Просто ваш стиль написания кода далёк от идеального. Сейчас класс ParseData очень сложно анализировать, чтобы понять, как он работает. Может быть стоит выделить отдельно класс для административных функций (
admin_ban_miners_*
), отдельно классы для обработки голосований (votes_node_*
), классы для запросов наличных (function cash_request_*
) и т.д…Вы слишком доверяете голосованию, демократическим инструментам и ответственности майнеров. Вы уверены, что накрутки невозможны?
Во вторых, насколько Я понял из статьи, в вашей системе есть три роли: администратор, майнер и обычный пользователь. Сравните это с Bitcoin, где все участники равноправны. То есть ваша сеть распределённая но у неё есть центры, от которых зависит работа сети. То есть, если достаточное количество майнеров сговорятся и будут минусовать всех подряд, то никто не сможет зарегистрироваться. Как вы будете защищаться от этого?
Не очень понятно из описания, как планируется обменивать вашу криптовалюту на наличные деньги. Должна состоятся передача денег, которая потом фиксируется в транзакции? Как происходит связь между наличными деньгами и вашими денежными единицами? (напоминает обмен Мавро <=> Наличные в МММ)
Также обязательное требование выслать фото и видео немного смущает деанонимизацией. Вряд ли много людей захотят демонстрировать своё лицо, чтобы зарегистрироваться в системе.
Ещё во фреймворке Qt есть модуль QtQuick для декларативного описания интерфейсов на JavaScript-подобном языке QML. Так вот благодаря метаклассам можно из JavaScript обращаться к обычным свойствам и методам C++ классов. Это ли не чудо? =)
alert(...)
в исходниках страницы улыбнул ))В итоге маршрут мы создали, но желание повторить тоже самое для другой маршрутки у моего коллеги не возникло. Надо было, наверное, установить специальный плагин для маршрутов. Было бы не так хардкорно ))
Но по удобству пользования OSM, Osmand, Potlatch, JOSM и другие инструменты всё ещё проигрывают инструментам от Google и Yandex. Например поиск на osm.org ужасен. В нём нет подсказок по мере ввода текста, он не исправляет опечатки. У отечественной разработки openstreetmap.ru с поиском получше.
В общем OSM, как база данных, динамично развивается, привлекаются новые участники, всё больше городов получают детальные схемы, количество переходит в качество. Но инструменты, которые прилагаются к этой базе, ещё далеки от совершенства.
Где ещё 7 437 376 точек, которых не хватает до 41 мегапикселя?