Pages: 1 2 3 4 5 6
RSS
# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — hugeping
2020-09-13 18:03:07


Достаточно ли замены:

msg = strings.Replace(msg, "-", "+", -1) /* if it is URL base64 */
msg = strings.Replace(msg, "_", "/", -1) /* make it base64 */

И потом декодировать стандартным base64? Но там вроде еще есть заполнение в виде ===?

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — vit01
2020-09-13 17:26:04


> Да, именно так, надо детектить, но это просто делается: всего лишь прогоняешь строку через замену символов, заменяя спецсимволы по словарю.

Можно этот момент описать подробнее. Каким алгоритмом base64 декодировать и что на что заменять? Я немного посмотрел, разница в стандартах base64 не такая маленькая, как мне показалось, чтобы решить её заменой. Но похоже, я ошибся.

Можно рассказать алгоритм?

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — vit01
2020-09-13 15:48:57


>> Примечание: production-реализации нод заменяют в полученной base64-строке плюс (+) и слэш (/) либо их аналоги (- и _) на буквы "A" и "Z" соответственно, дабы убрать из msgid спецсимволы.

Это про msgid речь же. А вопрос вроде касался того, в каком формате поинт шлёт бандл на ноду (POST или GET, не важно). И в каком формате отдают/получают бандлы ноды.

В стандарте есть такая фраза: (все серверы обязаны принимать как обычный, так и urlsafe-словарь, генерируются же бандлы в формате обычного base64)

Для меня эта фраза непонятна. Бандлы вроде в обычном base64, но принимать я должен в любом? Надо детектить тип base?

Я так и не понял, в каком варианте base64 я должен принимать и отдавать бандлы нодам и принимать бандлы от юзера. В итоге имеем такие варианты:

Мой:
1) Я принимаю и отдаю нодам бандлы в обычном base64 (не считая msgid, который подвергается преобразованию описанному в стандарте)

2) принимаю post/get запросы от поинтов в urlsafe base64

И вроде это работает, по крайней мере со станцией Андрея.

difrex:

1) принимает от поинтов обычный base64 но предварительно заэскейпченный

На мой взгляд, противоречит стандарту. Но я так и не понял, как правильно.

# Re: Пётр шевелит секту
pipe.2032
hugeping(ping,1) — Andrew Lobanov
2020-09-13 08:03:01


> Этак скоро скрипт статистики снова будет иметь смысл :)

Наверное надо где-нибудь писать про idec, все-таки. Думаю все присутствующие узнали про ii из постов на лор или чего-то подобного? Ну или организовывать тематические сообщества: инстед, план9 итд.

С другой стороны, у меня лично цели нет "набрать поинтов".

# Re: Переезд состоялся
std.hugeping
hugeping(ping,1) — artur
2020-09-12 20:30:35


> Понял-принял. Ну тогда уж надо будет поделиться здесь своими пиксельными поделищами=)

Только просьба, не в этой эхе (std.hugeping), потому что здесь мой блог. :)

# Re: Переезд состоялся
std.hugeping
hugeping(ping,1) — artur
2020-09-12 20:25:02


> Вопрос на счёт картинок с постов. В Гимпе рисовано?=)

Потому что я уменьшаю разрешение до 32x32 и режу количество цветов. Тогда картинка xpm смотрится нормально и в тексте сообщения. А так, это просто пиксельарт из интернетов.

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — vit01
2020-09-12 20:22:00


> Предлагаю прописать font-family: sans-serif в body-блок CSS-ки. Это сработает на всех платформах, и разница станет заметна невооружённым глазом. Попробуй хотя бы ради эксперимента

Вообще, я пробовал. Но тут такое дело. Я не хочу навязывать sans/sans-serif. Я сам из тех, кто долго верил в теорию вреда "шрифтов с засечками". А потом попробовал засечки, и мне понравилось. Поэтому я не хочу навязывать стиль шрифта. Пусть отображается дефултная настройка браузера. Те, если у тебя стоит в дефолте шрифты с засечками, ты их и увидишь. Есть вопрос с мобильными браузерами, там такой настройки нет... Ну, что поделать.

# Что с станцией lessmore?
idec.talks
hugeping(ping,1) — All
2020-09-12 18:55:16


Хотел было забрать блог difrex, но:

$ curl https://dynamic.lessmore.pw/idec/u/e/difrex.blog
difrex.blog
error: Internal error

# ZeroNet приложение для Android
std.hugeping
hugeping(ping,1) — hugeping
2020-09-12 18:37:00


Оказывается, за то время, что я не следил за ZeroNet, в PlayMarket появилось новое приложение. Выглядит оно получше и поудобнее. Что косвенно подтверждается оценкой приложения.

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

Мой блог в ZN: http://127.0.0.1:43110/1HVhvrompfwLstJExofKAQ5mMss7YivVDj/

Правда, теперь там будут скорее всего только репосты с узла ping.

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — vit01
2020-09-12 17:48:04


> С base64, спойлерами и остальным возитесь пока сами

Так это относится только к Web части. С этим возятся поинты моей ноды.

> 1. Нужно всё-таки объединять усилия .... Кому-то из вас двоих нужно от своей репы отказаться и идти мержить код в общий котёл

Это не сработает. Мне нравится писать то, что мне нравится. Это наверное основная движущая сила "моего опенсорца". Но никто не мешает брать мой код, если он нужен. Мой замысел в принципе не компромиссный. Потому что я хотел сделать не "что-то усреднённо хорошее", а ноду своей мечты. И нода и либа и веб морда готовы - их можно просто брать и использовать, если нравится. Если нет - делать своё.

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

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

P.S. Edited: 2020-09-12 17:48:59

# Баги при редактировании и очистке базы
ping.local
hugeping(ping,1) — hugeping
2020-09-12 12:45:48


Пофиксил довольно серъёзные баги с редактированными сообщениями (менялась дата и порядок) и в процедуре clean.

Теперь должно быть всё ок.

# День программиста
std.hugeping
hugeping(ping,1) — hugeping
2020-09-12 11:30:11


Не знаю почему, но я никогда не считал "День программиста" своим праздником.

Сегодня снова стало интересно, в чём тут дело?

Я помню, когда он только появился, я воспринял его как нелепость. И тоже не смог понять, почему? Просто какое-то странное чувство нелепости.

Наверное, я не воспринимаю день программиста как "профессиональный праздник". А именно так его и преподносят.

Я не воспринимал никогда себя как программиста в смысле профессии, ремесла. Я всегда только играл. С того самого момента, когда отец купил мне БК0010-01 и до сегодняшнего дня. И назвать это профессией для меня выглядит странным и нелепым. Что-то бытовое, скучное...

Нет, это не мой праздник.

# Re: Информационные следы или отцы и дети в кибернетической утопии
std.hugeping
hugeping(ping,1) — hugeping
2020-09-12 11:07:27


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

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

Наглядный пример противопоставления философия vs реальная жизнь. :)

# Как писать свободные игры и не сойти с ума
std.hugeping
hugeping(ping,1) — All
2020-09-12 10:35:15


// Опубликовано Aug 24, 2018

Писать код с художественной точки зрения очень интересно. На работе программисты обычно пишут код, который является эффективным для той задачи, которую он решает. На самом деле, это довольно скучно. Так как чем больше ты профессионал в своей области, тем более “шаблонно” решается задача. Ты просто делаешь так как нужно и всё. Это становится ремеслом. Профессиональный программист сегодня — это ремесленник.

Поэтому я очень хорошо понимаю программистов, которые пишут игровой код для “души”. Проект INSTEAD и возник как реализация такой вот отдушины. В первую очередь он ориентировался на программистов — лириков.

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

Вот, ты написал историю, которая тебе самому кажется классной. Что дальше? Современная жизнь инди-разработчика подчиняется довольно прагматичным правилам. Продвижение своей игры “по взрослому” требует денежных вливаний, времени и запасов валерьянки. Это всё означает, что проще и правильнее играть по правилам до конца — становиться частью рынка и продавать свои игры, чтобы пытаться окупить свои затраты.

Однако, такой подход приемлем не для всех. Полностью свободное творчество — это другая философия, которую разделяют немногие. Откровенно говоря, я так и не нашёл массовых мест обитания (заповедников!) людей, которые бы разделяли похожие взгляды.

К сожалению, “сарафанное радио” в наши дни практически не работает, поэтому “свободному” разработчику очень сложно выйти на свою аудиторию.

Свои последние игры Другой Марс http://instead-games.ru/game.php?ID=298 и Вахта http://instead-games.ru/game.php?ID=292 я пытался “продвигать” доступными мне способами, оставаясь в рамках свободного движения. Что именно я делал?

- Я попытался оживить нашу группу vk, https://vk.com/instead.club создавая на стене новости и отчёты о проделанной работе. Также включил кросспостинг в фейсбук.
- Я публиковал новость о “Вахте” в одной из крупных групп vk (название сейчас не вспомню).
- Наш старый jabber чат был интегрирован с чатом в Telegram, https://t.me/insteadtalk что в теории сделало наш чат доступней для потенциальных энтузиастов.
- В канал Telegram https://t.me/insteadclub (не путать с чатом) я также регулярно постил новости. Не говоря уже о своём twitter. https://twitter.com/peter_ru
- Я опубликовал игры на gamin.me. Здесь https://gamin.me/posts/19471 и здесь. https://gamin.me/posts/19616
- Я создал страничку на itch.io со своими играми. https://instead.itch.io/
- Я опубликовал новости на linux.org.ru. Одна из новостей — прошла. https://www.linux.org.ru/news/games/14202683 Вторую https://www.linux.org.ru/forum/games/14385869 не пропустили из за деятельности троллей, превративших тему обсуждения в религиозный спор. Подробности. ii://mwVQifrW5SHpOBeJ9niI И пояснения. ii://lYZ4akEqAiKPfIZKs1gX Забавно, но похоже “чёрный” пиар дал лучший эффект. Это и грустно и смешно.
- Я опубликовал новость на opennet. https://www.opennet.ru/opennews/art.shtml?num=49078
- Я писал о некоторых своих играх на reddit (лень искать ссылки).
- Я опубликовал две статьи на dtf.ru. https://dtf.ru/indie/24627-moy-indi-proekt-dlinoy-v-10-let https://dtf.ru/indie/24598-parsernaya-igra-drugoy-mars
- Я присутствовал в mastodon https://mastodon.social/@hugeping , idec и zeronet (как примеры “альтернативных” сетей).

Какие выводы я могу сделать?

С одной стороны, результат есть. Я узнал, что у моих игр существует целевая аудитория. И это сильно вдохновило.

С другой стороны, количество поигравших в мои игры, по меркам индустрии, очень мало. Я оцениваю это число в районе 2000 скачек (учитывая тот факт, что статистика web запусков не ведётся). Хотя, откровенно говоря, мне не очень интересна именно статистика. :)

Выкладывание игр на itch — практически ничего не даёт само по себе. Причина понятна. Для продвижения нужны рекламные показы. Площадки не создаются просто так, площадки зарабатывают. Когда на ресурсе представлены тысячи (или уже десятки тысяч?) игр, заметить конкретную игру практически невозможно.

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

Хороший отклик я получил после размещения публикаций на dtf.ru. Наверное, это самый положительный опыт из всех попыток.

Интересно, но адресный выход на аудиторию “альтернативных” сообществ тоже работает. Последнее наблюдение наводит на интересные размышления.

Когда ты пишешь нишевую с точки зрения “мейнстрима” вещь, выход на нишевые же сообщества, похоже, неплохой вариант! Например, INSTEAD изначально работал только на Linux системах. Какой процент пользователей Linux? 3%? 4%?. Но в абсолютных цифрах это довольно много людей. И, проект, работающий на Linux может рассчитывать быть замеченным этой аудиторией! Какой процент пользователей FreeBSD? 1%? Однако, когда INSTEAD находится в портах этой системы, можно рассчитывать на то, что игры на нём будут замечены! Всё это даёт во много раз больше, чем простая публикация игры на тематическом форуме.

Ещё один пример. Размещение статей в ZeroNet с мизерной аудиторией. Однако, размещение этих же статей в блоге на medium.com осталось абсолютно незамеченным.

Камерный театр в спальном районе Москвы может рассчитывать на маленькую, но свою аудиторию! Школьная рок-группа тоже может на неё рассчитывать. :) Остальные примеры вы можете придумать сами. Думаю, что продвижение свободной игры, это все-таки в первую очередь ориентация на “свои” сообщества. А игра по правилам индустрии — это совсем другая история. Но только проблема в том, что “альтернативные” сообщества практически вымыты из современного коммерческого интернета…

Что касается меня, то я абсолютно измотан социальным взаимодействием и негативным (редким, но токсичным!) фидбеком. В очередной раз я понимаю: программировать и сочинять истории очень захватывающая вещь, но социальное взаимодействие — изматывает и подрезает крылья.

Что дальше? Не знаю. Но запасы валерьянки подходят к концу. :)

# Возвращение квантового кота: о чём игра?
std.hugeping
hugeping(ping,1) — All
2020-09-12 10:27:52


// Опубликовано Aug 23, 2018

Моя первая игра называется “Возвращение квантового кота”. Написана она была в 2009 году. Собственно говоря, с неё всё и завертелось.

По современным меркам игра очень простенькая, но если вы в неё не играли — попробуйте. http://instead-games.ru/game.php?ID=107

Об этой игре написано достаточно, поэтому я здесь не буду копи-пастить существующие статьи. Я же обещал оригинальный контент. :) Так вот, расскажу о том, какой смысл я сам вкладывал в эту игру.

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

Вообще, это неправильный метод — рассказывать о своём творчестве в плане замысла. Часто бывает, что смыслы очень сильно зависят от восприятия конкретного человека. То-есть, это всегда диалог. И тем не менее…

Главный герой — бывший хакер, ныне дауншифтер, живущий вдали от цивилизации. После визита в магазин, у него похищают его единственного друга — кота Барсика. Фраза: “Я просто пришёл забрать своего кота” — становится девизом игры. Быстро выясняется, что похититель кота связан со зловещим институтом, который расположен недалеко от места событий.

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

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

Скажу сразу, что на эту игру повлияло произведение С.Льюиса “Мерзейшая мощь”. Если вы не читали её, я рекомендую эту книгу к прочтению. Образ “зловещего института” взят оттуда.

Если говорить об основном посыле моей игры, то это столкновение разума и веры. Сектанты находятся во власти логики разума (хоть и повреждённого), который доводит их до самоотрицания. Они готовы уничтожить мир, так как разум внушил им мысль о том, что они бессмертны и каждый получит собственную копию расщеплённого мира.

Главный герой просто “знает” и просто “чувствует” сердцем, что эта истина является ложью. Он делает то, что должен — спасает кота (и мир за одно) не идя ни на какие компромиссы. Правда и любовь не нуждается в рационализации.

В качестве интересных деталей, могу привести использование сторон света. Зло — ассоциируется с западными направлениями. Добро — с восточными. Восход, закат. День и ночь.

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

Игра была встречена очень хорошо, не смотря на явные огрехи и ляпы в тексте, которые так и не были исправлены за эти 9 лет…

На этом пока всё. :) Stay tuned.

# Нелинейность в сюжетных играх
std.hugeping
hugeping(ping,1) — All
2020-09-12 10:23:11


// Опубликовано Aug 23, 2018

Недавно посмотрел ролик на YouTube про игру No Man’s Sky. Красивая игра. Одной из особенностей игры является то, что в ней широко применяется процедурная генерация. Примерно, как это было сделано в Elite, в которой генерировались звёздные карты, названия систем и экономика. Только в NMS этот приём выведен на новый технологический уровень. Генерируются формы жизни, поверхности планет и прочее и прочее.

В Elite игрок был свободен в выборе того, что он делает в мире игры. В NMS мы видим подобное. Искусственный мир без явного задания ограничений действий. Песочница. Успех Minecraft говорит нам, что такого рода игры могут быть популярными. Ещё один пример: Dwarf Fortress. Если честно, ни в одну из упомянутых игр я не играл. Во-первых, я вообще мало играю в современные игры. Во-вторых, я не большой любитель историй, рассказанных компьютером.

Когда речь заходит о сюжетных играх, очень многие высказывают мнение, что нелинейность сюжета — несомненное достоинство такого рода игр. Для меня это выглядит так, что для этих людей основной ценностью сюжетной игры является вариативность.

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

Во-вторых, саму игру мы можем выполнить в виде модели, которая пытается моделировать поведение героев, мотивы, эмоции…

Наверное, вы сейчас решили что это отличная идея, а я веду к тому, что симуляция в сюжетных играх — это прекрасно! Должен сознаться, лично я не вижу в этом подходе никакой творческой ценности.

Дело в том, что для меня, в сюжетных играх (как и в литературе, кино, театре) самым важным является не вариативность, а … сюжет! А сюжет — это раскрытие смысла! Как время в нашем мире это актуализация нашей свободы воли, так и сюжет игры служит цели раскрытия смысла!

Конечно, если мы играем в гоночную игру, мы вряд ли ожидаем от игры чего-то большего, чем сама гонка. Или, играя в рогалик, мы не ждём от такой игры какого-то осмысленного сюжета. Всё это понятно. Но мы говорим о сюжетных играх!

Я написал только одну нелинейную игру, это “Карантин”. http://instead-games.ru/game.php?ID=124 В игре мы встречаемся с врагом, которого не знаем заранее. Фактически, это детективная история завёрнутая в стилистику рассказа Джона В. Кэмпбелла «Кто идёт?». Игра внутри себя представляет симулятор. Или, скорее, стратегию. Игра получилась очень сложной и… скучной. Да, есть люди, которым игра очень понравилась. Но для большинства игроков, она становится неинтересной после нескольких “прогонов”. Почему? Потому, что сюжет раскрывается после пары прохождений. А потом остаётся только вариативность, стратегия, интеллект… Но никакой художественной ценности…

Правда, в моей игре “Проводник” http://instead-games.ru/game.php?ID=247 две концовки. Но это тот случай, когда обе концовки просто усиливают друг друга.

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

Так книга или игра? Попробуйте написать сюжет, смысл которого был бы не в вариативности самой по себе, а в передаче некоторого замысла автора. А теперь, оформите сюжет в виде сотни параграфов с запутанными связями. Это не так то просто! В большинстве случаев, такая разбивка будет служить целям вариативности, но не передачи смысла сюжета. Вариативность, ради неё самой. Итак, жанр книги-игры хорош для развлекательной литературы, но драматическое произведение втиснуть в рамки вариативности — очень непросто.

Подводя итог. Я считаю, что ценность сюжетной игры именно в смысле, который передаётся через сюжет. В таком случае, излишняя вариативность не помогает, а напротив, мешает. На мой взгляд, сюжетная игра раскрывается именно в своей линейности. А некоторая степень свободы и интерактивности служит другой цели — погружению в атмосферу игры.

Итак, чтение книг — это диалог с автором книги. И хорошо, когда автору есть что сказать. Но ведь в песочнице ребёнок играет, как будто, сам с собой? И это — тоже способ познания, в том числе — самопознания?

Да, попытка написать игру, в которой сюжет генерировался бы “случайно” и был бы интересен — сродни написанию симулятора мира, в котором мы живём.

И это всё хорошо работает лишь до тех пор, пока мы не пытаемся симулировать внутренний мир людей. Средуцированный до детерминированного алгоритма герой, не способен сказать нам что-то новое. Сознание — не алгоритм. (В качестве рекомендации к прочтению: “Новый ум короля” Р. Пенроуза).

Также, есть мнение, что смысл чего-либо рождается субъективно в читателе, а на авторе остаётся только нарратив. Без интерпретации. В таком случае, играя в песочнице, мы наблюдаем создание различных смыслов о которых мы как автор — не беспокоимся. Читатель (игрок) развлекает себя сам.

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

# Re: Спойлеры в клубе
std.club
hugeping(ping,1) — boscholeg
2020-09-11 21:20:35


> А как назад расшифровать? Зеркальцем воспользоваться?

Ага. Или мозгом. :)

# Re: Подкасты переехали на soundcloud
std.club
hugeping(ping,1) — artur
2020-09-12 11:31:54


> Но если не надо --> не буду

Смотри на своё усмотрение. Мне ещё тут предлагали в яндекс-музыку залить. Вроде бы есть раздел: не музыка.

Подкасты нужно писать рассчитанные на широкую аудиторию, все-таки. А сейчас так и вообще - видео.

Где я, где инстед и где видео? :)
P.S. Edited: 2020-09-12 11:31:49

# Re: Подкасты переехали на soundcloud
std.club
hugeping(ping,1) — artur
2020-09-12 11:32:19


> Ну я загружу туда.

Честно говоря, мне кажется наши подкасты там вызовут нездоровую реакцию. Может не стоит?

С другой стороны, смотри сам. Я осяду здесь, а соц-сети пусть живут где-то там. :)
P.S. Edited: 2020-09-12 11:32:13

# Re: Подкасты переехали на soundcloud
std.club
hugeping(ping,1) — artur
2020-09-12 11:32:35


> А можно подкасты загрузить в ВК?

Я честно говоря не знаю что и как там делать. И немного побаиваюсь vk. :) Пусть пока в soundcloud полежат. Тем более, что уже неактуальны.
P.S. Edited: 2020-09-12 11:32:31

# Re: Признание в любви к Го от старого сишника
develop.16
hugeping(ping,1) — boscholeg
2020-09-11 12:46:28


> Вы его так рекламируете. Что хочется прям почитать про этот ваш Го.

Если нравится Си, то понравится и Go. Хотя я был уже подготовлен Питоном и Lua, но всё-равно, думаю, понравится.

# Подкасты переехали на soundcloud
std.club
hugeping(ping,1) — hugeping
2020-09-12 11:31:15


В связи с переездом все подкасты INSTEAD перенесены сюда: https://soundcloud.com/hugeping
P.S. Edited: 2020-09-12 11:31:08

# Признание в любви к Го от старого сишника
develop.16
hugeping(ping,1) — All
2020-09-10 19:45:35


Что бы там не говорили злопыхатели, golang прекрасен! Пока делал ноду, полюбил его ещё больше. Конечно, пока пишу совсем не "идеоматичный" код, но начал постепенно его чувствовать.

Лично для меня это что-то вроде "Си" на стероидах. Что-то между низким уровнем (с его простотой) и современными более абстрактными языками. Идеален для написания бекендов!

А его кросскомпиляция? Наконец-то я избавился от вороха зависимостей, dependency hellов и избежал унылой участи запускать всё в контейнерах. И всё это благодаря go!

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

Короче, Роб Пайк рулит! Спасибо за наше счастливое детство!

# Переезд состоялся
std.hugeping
hugeping(ping,1) — hugeping
2020-09-10 19:28:53


Вот и всё.

Дроплет syscall.ru на DigitalOcean, который служил верой и правдой 7 лет - дропнут. Долго не мог себя заставить нажать кнопочку Destroy. Заходил посмотреть "в последний раз". Но надо уметь выбрасывать старый хлам, чтобы освободить пространство, в том числе и для мыслей.

Так что, вместо syscall и вороха блогов теперь останется только https://hugeping.tk

Маленький, простой, быстрый...

P.S. https://syscall.ru и https://club.syscall.ru тоже работают, и ведут на https://hugeping.tk



# Re: Обновления ii-go (движка узла ping)
ping.local
hugeping(ping,1) — hugeping
2020-09-10 18:36:20


Теперь узел должен работать по https.

https://hugeping.tk или https://club.syscall.ru - должны работать.

Для обеспечения поддержки https используется reverse proxy: https://github.com/gl00my/ii-go/tree/master/contrib/secure

Зависимость autocert внешняяm, но компонент необязательный, поэтому принцип KISS ii-go не нарушен. :)

# Поведение клика на дату последнего сообщения на главной
ping.local
hugeping(ping,1) — hugeping
2020-09-10 11:00:49


Поменял поведение клика на дату сообщения на главной странице.

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

Чтобы вернуться в привычный вид топиков - нажмите на символ # у сообщения (перейти к сообщению) или на название эхи в шапке ноды.

# Перенос club.syscall.ru на станцию ping
std.club
hugeping(ping,1) — All
2020-09-10 10:38:52


Назад пути нет. Делегирую домены на сервера Яндекс. В относительно скором времени club.syscall.ru и syscall.ru будут указывать на станцию http://hugeping.tk

База поинтов не сохранится, но сообщения сохранятся. Если вы заинтересованы в общении на станции, уже можно регистрироваться на https://hugeping.tk
Новая станция больше похожа на форум.

Сервер крутится на малинке, как будет со стабильностью - не знаю. Статус проекта - личный арт-проект без всякой ответственности. http://hugeping.tk/rOf069UX8K24yAzvWa9N#rOf069UX8K24yAzvWa9N

В общем, поехали! :)

# Re: Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — boscholeg
2020-09-10 10:28:29


> Вот кстати вопрос доверия Гитхабу. Ты уверен что он не рухнет в одночасье?

Рухнуть может всё. В том числе собственный сервер (причём, вероятнее). Конкретно с instead я работаю на многих машинах, поэтому копии репозиториев есть. Не говоря уже о тарболлах в некоторых Linux дистрибутивах.

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

# Re: Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — boscholeg
2020-09-10 10:05:30


> Помнишь я тебе рассказывал про флэшки для промышленного применения?
> Их не зря советуют брать для одноплатников.

Да уж, ну, будем смотреть. Бекапов мало, важность ресурса - низкая. Так что не так страшно, надеюсь...

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

# Re: Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — btimofeev
2020-09-10 09:31:45


> Советую регулярно делать бэкапы флешки, тк очень много раз сталкивался когда малинка просто перестает грузиться вследствии битых секторов (бывало что почти каждый день приходилось образ перезаливать).

Ого, интересно. Уже делаю бекап...

# Re: http://hugeping.tk как арт-проект
std.hugeping
hugeping(ping,1) — hugeping
2020-09-10 09:13:19


Ну и у всех этих /rss ссылок можно убрать rss - будут просто странички.

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

# Re: Bolder Dash с БК0010–01
std.hugeping
hugeping(ping,1) — boscholeg
2020-09-10 09:11:55


> На БК можно было писать программы, но сохранять в память их учитель не разрешал.

Да, помню такая же штука была. Писал игру. Поиграли. Выключили - всё. :)

> Обязательно попробую поиграться и сыну покажу.

Там есть встроенный спрятанный редактор. На компе кажется нажать E в момент выбора уровня или в самом уровне. А на андроиде, какая-то хитрая комбинация касаний. :) У меня сын делал уровни с интересом и давал мне проходить. Ещё игра пишет демки прохождений.

# Re: http://hugeping.tk как арт-проект
std.hugeping
hugeping(ping,1) — boscholeg
2020-09-10 09:08:13


> Петр чем читать новые сообщения? Есть какой-то клиент?
Где про это почитать?

Вообще, вот: https://ii-net.tk/

Но можно просто RSS зацепить: ii://MaNXQnvizFFCxbmm7303

# Re: http://hugeping.tk как арт-проект
std.hugeping
hugeping(ping,1) — boscholeg
2020-09-10 08:19:01


> Если бы тут не тусовались одни программисты и им сочувствующие, я бы решил, что ты хочешь отвадить всех.

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

# http://hugeping.tk как арт-проект
std.hugeping
hugeping(ping,1) — hugeping
2020-09-10 07:59:06


Чем больше шлифую ii-go, тем больше мне нравится то, что получается.

Откуда во мне появилась тяга к такой вот экстремальщине? Не знаю.

Процесс, похоже, идёт последовательно.

Сначала мне понравился Linux, потом тайловые оконные менеджеры, потом OpenBSD, потом заинтересовался Plan9...

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

А вот с играми или тем же ii-go, ты никогда заранее не знаешь, что из этого всего выйдет. :) Нода, конечно, не получилась совсем уж минималистичной. Думаю, она занимает около 64кб кода на go. Но всё-таки, если сравнивать с мейнстримом...

В общем, иногда нужно вот так встряхнуться, сбросить тонны bloated слоёв и ... полететь... :)



P.S. Вот взять даже эту картинку. Что бы мы сделали на нормальном форуме? Фигак jpg на 1мб, фигак аттач. Форум фигак в postgresql. А тут? Я нашел картинку, довёл ее до нативного разрешения, привёл к 4-цветной палитре и вставил в тело сообщения. Сообщение превратилось в base64 строку и добавилось в конец текстового файла базы. Ну, разве это не прекрасно? :) Почувствуйте красоту в простом!

# Re: ii-tool clean
ping.local
hugeping(ping,1) — hugeping
2020-09-10 07:29:53


Долго думал, какую favicon поставить для узла. В итоге, остановился на этом:



# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — hugeping
2020-09-10 06:10:23


> Да. Все что после него это base64. Вообще, может быть стоит сделать по другому. Я сделал как было проще...

Вообще, я думал про начало/конец тега base64. И в веб версии это будет шикарно, в том числе и для картинок. Но если такое внедрять в консольные клиенты, всё-таки, одно сообщение - один base64 аттач - это более понятная и простая схема...

В любом случае, если назреет какой-то стандарт на эту тему, попробую поддержать. :)

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — Andrew Lobanov
2020-09-10 05:44:16


> Главное, чтобы в x/c правильно отображалось :)

Очень надеюсь, что багов не будет. Хотя опыт показывает, что когда всё работает сразу, это означает наличие скрытых багов. :)

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — Difrex
2020-09-09 22:40:26


> Фетчу тебя. Пока все идет нормально.

Отлично! :)

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — Difrex
2020-09-09 22:39:46


>> @base64: имя файла - всё, что после этой строки берется как base64 аттач демка тут
> Т.е. этот тег должен находится в конце тела сообщения?

Да. Все что после него это base64. Вообще, может быть стоит сделать по другому. Я сделал как было проще...

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — btimofeev
2020-09-09 22:20:45


> Просто тогда в колонке это надо назвать не посты, а ответы, наверное.

Согласен, завтра сделаю.

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — btimofeev
2020-09-09 20:26:32


> У тебя почему-то в топиках количество сообщений выводится на одно меньше, чем сообщений в топике на самом деле

Не заметил в чате.

Я специально вычитаю 1. Как это сделано на punbb форуме. Типа это ответы на пост. Не считая заголовок. 0 - нет ответов.

В принципе, фича, но можно поменять в коде....

# matterbridge - объединение чатов на go
std.hugeping
hugeping(ping,1) — hugeping
2020-09-09 19:03:14


Сегодня нагуглил такой вот проектик: https://github.com/42wim/matterbridge
На go. Связывает несколько чатов в один. Испытал с чатами инстеда - discord, jabber и telegram. Просто настраиватея и работает! Оставил крутиться на малинке. :)

# Короткие заметки
std.hugeping
hugeping(ping,1) — All
2020-09-09 19:01:21


В этот топик буду писать короткие мысли и прочий флуд.
P.S. Edited: 2020-12-03 13:35:55

# ii-tool clean
ping.local
hugeping(ping,1) — hugeping
2020-09-09 16:08:32


Когда кто-то редактирует сообщение, то в базу добавляется новая версия этого сообщения. Я добавил в ii-tool команду clean, которая удаляет все старые версии сообщений и сокращает размер базы.

Команду стоит применять во время выключенного сервера ii-go.

# Краткая информация по этому узлу
ping.local
hugeping(ping,1) — All
2020-09-09 14:39:37


Добро пожаловать на станцию ping!

Станция ping - авторский проект Петра Косых (hugeping) ( ii://ay2xlGQxSQ0tZQqXwwku ). Функционирование станции ping не связано с поддержкой каких-либо проектов или общественно-полезной деятельностью. Станцию следует воспринимать как личный проект для самовыражения, который развивается в соответствии с видением его основателя в режиме жёсткой диктатуры.

Эта станция - островок спокойствия в зловонном море современного коммерческого интернета. Глоток принципов KISS для изголодавшихся по свободному от социальных элементов общению.

Движок форума называется ii-go: https://github.com/hugeping/ii-go

Станция ping - один из узлов в сети idec: https://github.com/idec-net/new-docs/blob/master/main.md

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

Каждая из лент/эх доступна по RSS, так вы можете отслеживать новые сообщения.

Ниже приводится краткая справка по форматированию сообщений в ii-go.

Если вам нужно вставить код. Начните его со строки ==== и закончите строкой ====

print("Hello, world!")

Далее рассмотрим остальные теги (каждый из них представлен исходным кодом и представлением в сообщении.

@spoiler: Это спойлер!
!релйопс отЭ :reliops@

> Это цитирование
> Это цитирование


P.S. Это комментарии
// И это тоже
P.S. Это комментарии
// И это тоже

# Это заголовок
## Заголовок 2
### Заголовок 3
=== Или используйте для заголовков символ =
# Это заголовок
## Заголовок 2
### Заголовок 3
=== Или используйте для заголовков символ =

Вы можете вставлять картинки в формате xpm2 или xpm3 прямо в тексте. Но помните об ограничении на размер. Изображения до 128x128 в палитре 64 цветов скорее всего подойдут. ;)



Вы можете загрузить себе автар в профиле, тоже скопировав xpm файл в форму. Где делать xpm? Точно умеет gimp.

И, наконец, вы можете сделать аттач файла - написав специальный тег и имя файла, а затем скопировав данные в формате base64:

@base64: logo.png
base64 данные до конца сообщения
logo.png

# Личная страница hugeping
ping.local
hugeping(ping,1) — All
2020-09-12 09:21:59


Информация о станции ping: ii://rOf069UX8K24yAzvWa9N

Блог: https://hugeping.ru
Капсула в gemini: gemini://hugeping.ru

Движок INSTEAD: http://instead.hugeping.ru
Парсерный минимализм: https://parser.hugeping.ru

Некоторые из моих игр: https://instead.itch.io
Все игры на INSTEAD можно найти здесь: http://instead-games.ru

github:
https://github.com/hugeping
https://github.com/instead-hub

Telegram: https://t.me/hugeping
Jabber: hugeping@404.city




P.S. Edited: 2023-11-06 15:01:13

# Re: Ленты RSS в клубе
std.club
hugeping(ping,1) — Peter
2020-09-09 09:25:19


> Теперь можно получать сводную ленту из нескольких эх. Например, все эхи инстеда в одной RSS ленте:
> authstr можно посмотреть в личном профиле

На новом движке ii-go не так:

http://hugeping.tk/echo/all/rss - Все сообщения
http://hugeping.tk/echo/echo.name/rss - Выбранная эха echo.name
http://hugeping.tk/to/User/rss - Сообщения для User
http://hugeping.tk/from/User/rss - Сообщения от User

# Re: Спойлеры в клубе
std.club
hugeping(ping,1) — Peter
2020-09-09 09:22:14


> Теперь, если в вашем сообщении встречается строчка: %%spoiler%%

На новом движке ii-go теперь по другому.

@spoiler: А это спойлер!

!релйопс отэ А :reliops@

# Обновления ii-go (движка узла ping)
ping.local
hugeping(ping,1) — All
2020-09-09 09:18:31


Сегодня выложил документацию: https://github.com/gl00my/ii-go
Также, сменил формат лент с RSS на Atom.

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — hugeping
2020-09-09 08:24:07


Написал базовую документацию. На этом пока всё, буду потихоньку развивать ноду, но уже не так экстемально. :)

Если кого-то будут интересовать детали, расскажу или дополню доку.

https://github.com/gl00my/ii-go/blob/master/README.md

# Re: Сказки про INSTEAD: как всё начиналось
std.club
hugeping(ping,1) — hugeping
2020-09-09 06:29:45


Иллюстрация #2
2.png

# Re: Сказки про INSTEAD: как всё начиналось
std.club
hugeping(ping,1) — hugeping
2020-09-09 06:29:00


Иллюстрация #1
1.png

# Сказки про INSTEAD: как всё начиналось
std.club
hugeping(ping,1) — All
2020-09-09 06:21:00


> Опубликовано 09.05.2010

Уже больше года назад, увидела свет первая публичная версия INSTEAD и игра «Возвращение квантового кота». В то же время я написал статью в электронный журнал LGT о том, как создавался движок…

# Стать режиссёром

После просмотра захватывающего фильма или чтения полюбившейся книги кто из нас не ставил себя на место режиссёра или писателя? Подобрать актеров. Продумать сюжет. Сделать все так, как кажется правильным. Что касается меня, то я всегда мечтал написать свою историю. В эпоху постмодернизма большинство сюжетов — это циничные (хотя и изысканные) истории. Я хорошо помню чувство разочарования, когда мы с другом выходили из кинотеатра, посмотрев только что вышедшие новые «Звездные Войны». Я же всегда хотел написать историю, в которой бы смешались романтика и фантастика, я хотел создать «классическую» историю. Но я не был режиссёром, не был писателем, я был программистом.

Еще учась в институте, воспитанные лучшими квестами Lucas Arts, мы с моим другом пытались писать графический «плоский» квест, но как это часто бывает не хватило мотивации, да и терпения… Я писал тогда на смеси ассемблера и C. В результате не был написан даже движок.

Несколько лет назад, уже работая с Linux, я узнал о таком старом жанре компьютерных игр, как Interactive Fiction (интерактивная литература). Было похоже, что это то-что нужно! Днем рождения жанра считается 1975 год, когда Уилл Кроутер написал первый текстовый квест, Adventure. В этом квесте общение с игроком осуществлялось посредством ввода и вывода текстовой информации. Эта особенность и стала ключевой для игр жанра IF. Многие IF-игры очень похожи на книги. Кроме того, так как вывод игры это текст — автор не обязан быть художником, создание IF игры в целом гораздо проще создания графического квеста в стиле 90х. При этом, как и в случае интересной книги, сюжет определяет все. Фактически — написание такой игры это написание сценария — огромный простор для творчества, посильного для одного человека.

На данный момент, самыми популярными и старыми платформами для создания IF игр являются TADS и Inform. Для своего первого квеста я выбрал Inform. Но тут возникла сложность — русский язык гораздо тяжелее анализировать (парсить). К счастью, на тот момент Денисом Гаевым уже была сделана русификация Inform компилятора и я начал писать пробную историю на Inform.

Inform был удивителен! Я понял, что применение объектно-ориентированного подхода в программировании объектов реального мира — захватывающая и творческая задача. Помню, как программировал поведение лифта, имитируя его движения с этажа на этаж, раскрытие дверей, состояние кнопок… Через несколько дней я дал попробовать то, что получалось коллегам по работе и сделал следующие неутешительные выводы.

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

Русский Inform был отложен. Но я все еще хотел написать свой квест.

# Первая попытка

Состояние жанра IF в Росии далеко от того, чтобы вызывать оптимизм. Тем не менее существуют проекты, которые являясь платформами для IF игр не реализуют парсерный ввод. В качестве примеров можно привести платформы URQ и QSP. Игры на этих платформах относят к так называемому «менюшному» типу, когда пользователь фактически выбирает варианты действий, хотя вывод игры по-прежнему является текстом. Графика и звуки тоже могут поддерживаться движком, но они скорее дополнение — как иллюстрации в книге.

Потратив некоторое время на изучение существующих движков я понял, что они не подходят. Я уже был «испорчен» Inform’ом в том смысле, что мне нравилась объектная ориентированность языка. Кроме того, я был в то время «фанатичным» и последовательным Linux’оидом, а данные платформы изначально были написаны для DOS и Windows. Качество существующих квестов под эти платформы меня тоже не удовлетворило, особенно в сравнении с английскими аналогами, и я начал продумывать свой движок.

В качестве языка я сначала планировал использовать какой-то простой basic-подобный скриптовый язык, но как-то наткнулся на Lua и был поражён его простотой, расширяемостью и лёгкостью его встраивания в C. И я просто начал писать движок на Lua.

В качестве идеи была выбрана следующая модель:

Внутри мир игры является объектно-ориентированным. Что-то вроде упрощённого Inform.

Диалоги должны выглядеть в стиле квестов 90-х. Вообще, диалоги всегда были одной из любимых особенностей графических квестов.

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

Схема взаимодействий объектов выбрана примерно такая, как она сделана в игре Goblins: игрок выбирает мышкой объект или действует объектом на другой объект — тоже мышкой, щелкая по словам, представляющие объекты. Игрок может переходить с локации на локацию, щёлкая по их именам.

Первоначальная версия движка на Lua оказалась очень простой — несколько сотен строк. Кроме того, движок писался одновременно с игрой — я просто включал в движок все то, что упрощало код игры. Так родилась тестовая версия квеста о сотрудниках института в котором я работал и об их борьбе со злом. Движок, как я уже сказал, представлял собой просто скрипт на lua, взаимодействие с ним осуществлялось через стандартный ввод/вывод. Это позволило реализовать графический интерфейс просто как надстройку, написанную на tcl/tk. Это был unix way — очень просто. Выглядело, конечно, грубовато, но в качестве концепта годилось. Весь проект — чуть больше 1000 строк, не считая 2000 строк самой игры.

Идея графического интерфейса была предельно проста. Слева: текст с игрой. Справа — столбец с объектами инвентаря. Кликая мышкой можно было взаимодействовать с объектами и комбинировать их.


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

# Обратно в 80-е

Все это время в моем подсознании зрела мысль, что квест еще не написан, а движок — не идеален… Я прочитал документацию по Lua еще раз и понял что все, что я написал — хлам. К счастью хлама было не много, и я переписал движок с чистого листа, учитывая ошибки и узкие места игры — концепта. На этот раз получилось около полутора тысяч строк на Lua, все еще достаточно просто и гораздо проще (и, надеюсь, достаточно гибко), чем существующие «менюшные» движки. И вот, дописывая движок меня прорвало — я начал писать свой «первый» квест, о хакере дауншифтире и парадоксах квантовой механики. Как и в случае с концептом, движок дорабатывался во время написания игры. В отличие от игры-концепта, я изначально планировал консольное, а не графическое управление игрой. С одной стороны, это добавляло шарма и сближало игру с классическими IF играми, с другой стороны — использование библиотеки readline делало управление игрой довольно комфортной.

В качестве ноу хау была использована идея сокращений, то есть, например, набрав команду g (идти) и нажав табуляцию игрок получал список возможных локаций, с каждой из которых связан номер. Игрок мог набрать часть имени локации и нажать табуляцию, или же он мог набрать номер локации и нажать табуляцию. Такой принцип был использован везде.

Игру я писал «запоем», около месяца, и когда, наконец она была готова — я с трепетом отдал ее знакомым друзьям программистам.

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

Поэтому, я не стал выкладывать игру в открытый доступ и просто отложил её на неопределённое время.

# Графика

Не знаю, как пришла идея сделать игру похожей на визуальную новеллу? Наверное, это стало следствием понимания необходимости написания для игры графического интерфейса. Интерфейс tcl/tk, конечно, не тянул на то, чтобы стать основным, и я начал писать библиотеку для отрисовки текста на основе SDL. Идея была в том, чтобы написать среду для запуска игр, написанных под движок, с возможностью менять вид интерфейса в зависимости от игры. Кроме того, после изучения некоторых движков, в том числе и движка для визуальных новелл, я решил, что такая среда должна быть очень простой.

Написав основу, я ради интереса попробовал вставить произвольную картинку на первую страницу игры, над текстом описания сцены и… понял, что у меня получается новая игра. Тогда я не выдержал и достал свой недорогой планшет Wacom Graphire, когда-то купленный мной для обработки фотографий и благополучно забытый, запустил gimp и попробовал нарисовать картинку для первой сцены. Просто сделал набросок, как мог… Посмотрев результат в игре я понял, что нужно рисовать дальше…

Я осознавал, что я не художник, и поэтому я решил обратить этот недостаток в достоинство, выбрав в качестве иллюстраций простые наброски… Подтверждение того, что идея может сработать, я обнаружил в детской книге про медвежонка Паддингтона, которую я купил для своей дочки, и в которой было полно подобных простеньких рисунков. Они смотрелись вполне гармонично, не смотря на примитивизм, и даже обладали каким-то своим шармом. Я стал рисовать и игра, по мере заполнения её простыми черно-белыми набросками, стала походить на книжку с авторскими (какими они, собственно, и являлись) рисунками. В некоторых случаях я брал фотографии и стилизовал их под наброски, сначала выделяя границы в gimp, а затем прорисовывая и корректируя их руками.

Для этого использовалась следующая нехитрая техника:

1.Создать копию слоя.
2.На верхнем слое: инвертировать цвет.
3.Гауссовое размытие верхнего слоя.
4.50% прозрачности верхнего слоя.
5.Объеденить видимые слои.
6.Порог.
7.Ручная работа.

Первоначально я не собирался рисовать картинку для каждой сцены, но рисование так сильно меня захватило, что в некоторых случаях я рисовал даже по нескольку кадров на сцену — добиваясь эффекта простой анимации.

Параллельно шла работа над графической средой, которая действительно оказалась довольно простой в реализации. Всего менее четырех с половиной тысяч строк кода на C. Это было гораздо проще всего того, что я видел.

В конце встал вопрос по поводу оформления интерфейса моей первой игры. Для рисования графических элементов я использовал Inkscape, который успел полюбить при разработке прошлой SDL игры — Color Lines. Основной проблемой стал подбор удачной подложки под текст и графику. Изначально я думал использовать просто белый фон, да и картинки были нарисованы с учётом белого фона. Но посидев пару часов со своим другом Сергеем, была выбрана подложка в виде старой книжной страницы для текста и ещё одна замысловатая текстура — для подложки под инвентарь. Правда возникла проблема — наброски были нарисованы на белом фоне и просто так рисовать их поверх текстуры было нельзя. Но, как оказалось, в gimp это решалось очень просто — переводом слоя в альфа-канал. (Слой->Прозрачность->Цвет в альфа-канал). Результат нам очень понравился.

#Звук

Примерно в это время команда с http://websound.ru выпустила диск ремэйков олдскул треков — reTracked #2 http://retracked.org Закачав его в свою Nokia N800 я был очарован композицией Liberty. Я и раньше подумывал о звуковом сопровождении игры, но теперь я знал точно, что будет играть в последней сцене.

Итак, для музыкального сопровождения я искал старые олдскульные модули и пытался осмысленно их распределить по эпизодам моей первой истории. Со стороны движка никаких сложностей не было, библиотека SDL-mixer умеет играть модули практически всех форматов.

# Эффект LOR

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

Небольшое сообщество, собранное вокруг IF игр в России это в основном Windows пользователи, и я собирался попросить кого-нибудь портировать мою игрушку под эту систему, сам я не использовал Windows с тех пор, когда перестал под неё программировать. Теоретически, процесс обещал быть простым — SDL и lua — кросс платформенные вещи и давно собраны для Windows. Но так вышло, что единственный знакомый мне Windows программист (кстати, он же портировал Color Lines) был занят другими делами и я, сделав тарболл, просто выложил его на страничку, быстро созданную на google sites. Потом я кинул ссылку на linux.org.ru и уехал домой.

Результат меня поразил. Посетители linux.org.ru пробовали мою игру и она им нравилась! Вы должны знать особенности данного ресурса, чтобы понять, что это означало для меня. Фактически, не было ни одного негативного отзыва. Люди играли в мою игру! Конечно те, кто так или иначе были знакомы с жанром, но все-таки это было неожиданно. В результате превышения трафика (я так и не нашел информации, какая именно граница считается у них лимитирующей) google sites временно отключил мою страничку и мне пришлось переносить проект в google code http://instead.googlecode.com и на всякий случай — на sourceforge. Потом, несколько человек писали мне в jabber и я исправил несколько ошибок в движке.

# Что дальше?

Instead — так я назвал платформу, легко собирается в Unix среде, например, практически без изменений он собрался для Nokia N8XX, но все-еще не собран для Windows пользователей. Я думаю, что рано или поздно версия для Windows должна появиться, но пока её нет. Что касается развития платформы, то я придерживаюсь той мысли, что платформа это средство, а не цель. Главное — это интересная история. Движок — всего лишь способ запустить игру. Если найдутся люди, которые напишут что-нибудь на instead, и потребуется расширение возможностей движка — они будут расширены.

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

# Язык и сознание
std.hugeping
hugeping(ping,1) — All
2020-09-09 06:10:50


Пока Haiku захавала мой мозг (разбираюсь в потрохах системы, сделал пару коммитов в ядро), писать что-то осмысленное в блог некогда. :) Поэтому сегодня поделюсь отвлечёнными мыслями насчет взаимного влияния языка и мышления.

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

ii://yEBVIVlseU2SZu5WbOVC

Так вот. Я, конечно, понимал, что английский вариант будет проще, но не ожидал, что настолько проще!

Теперь для меня очевидно, что слабое распространение (и развитие) игр с текстовым вводом у нас в первую очередь связано с отличиями языков, а уже потом — со всем остальным.

Раньше я считал, что сознание не сильно завязано на язык. Думал я это на основании собственного опыта интуитивного мышления, когда замечал, что мысли часто не облекаются в слова. То-есть, человеческая архитектура, на фундаментальном уровне, не зависит от “прошивки”. Но теперь мне кажется, что язык определённо влияет на сознание и это влияние существенно.

Один простой пример. В русском языке у нас большинство неодушевлённых предметов имеет род. В английском не так. Конечно, там тоже есть “ship” как “she” и так далее, но это все-таки скорее исключение. То-есть, говоря “ложка” или “нож” — я ловлю себя на мысли, что моё отношение к этим предметам окрашивается в разные оттенки в зависимости от рода! В английском это “it” — и всё тут. С точки зрения разума — всё верно. Это предмет, какой тут может быть род?

Но в русском, я действительно чувствую, что подушка — это “она”. Что топор — это “он”. Если вы со мной не согласны, проведите мысленный эксперимент. Представьте, что “облако” получило мужской род (“облак летит по небу”). Или “топор” стал женского рода (“Топр была острой”). Уверен, разницу вы почувствуете.

Винтовка и карабин. Согласитесь, оба слова, означая похожие вещи, осознаются по-разному! А ещё мне кажется, что это осознание будет разным у мужчин и женщин. Удивительно! Таких примеров можно привести массу, и это даже забавно — обнаруживать в себе эмоциональное отношение к неодушевлённым вещам.

При работе над английской библиотекой метапарсера, очень наглядным стало ещё одно отличие. Обилие глаголов с похожим смыслом (но разными оттенками) в русском. В английском языке было интересно обнаружить множество вариантов “взять”, “атаковать” и “изучить”. Но для большинства других глаголов, вариантов очень мало.

ii://iIKozvIkN197sjQFx2Hh

Так что русский язык очень эмоционален и выразителен. И мне лично это нравится. Почему? Не потому ли, что я уже изменён языком (прошивкой)? Или, все-таки, потому, что мой язык мне соответствует?

В общем, философия языка, должно быть, очень глубокая и интересная тема…


P.S. Edited: 2020-09-09 06:10:02

# Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — All
2020-09-08 21:45:01


Думал думал, и всё-таки не выдержал.

Купил малинку, взял статический адрес у провайдера и постепенно перетаскиваю свое барахло с Digital Ocean.

Да, идеологически неправильно, но железка под боком это как то... Ближе. :) Сразу понимаешь, что вот оно. :)

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

В качестве dns-hosting на яндекс смотрю. Вроде бы бесплатно? Не хотелось бы ещё платить за это...

P.S. Кто то ещё здесь гоняет малину для этих целей?

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — Peter
2020-09-08 19:32:26


В общем, я поднял свою ноду - персональный арт-проект: http://hugeping.tk

Сейчас идёт синк с http://club.syscall.ru , но я буду его закрывать...
Прошу всех, кто с меня фетчит, переходить на http://hugeping.tk и отписаться о возникновении проблем.

Испытываю по живому. :)

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

# Произведение и время
std.hugeping
hugeping(ping,1) — All
2020-09-08 19:21:01


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

Меня всегда интересовал механизм этого узнавания. Каким образом произведение вдруг становится признанным? Что или кто является критерием?



Вот и “Моби Дик” Германа Мелвилла не был принят современниками. Приведу несколько цитат:

> «Моби Дик» не был принят литературной критикой и не получил успеха у читателей. От Мелвилла отвернулись. Мелвилл жил в Питтсфильде до 1863 года, продолжая писать и борясь с нуждой. Несколько книг, выпущенных им за эти годы, не восстановили его литературной репутации.

> После разгромной критики вышедшего спустя год готического романа «Пьер, или Двусмысленности» (Pierre, or The Ambiguities, 1852), — где изображён писатель, который среди шумной толпы чувствует себя таким же одиноким, как на полюсе, — Мелвилл стал публиковаться анонимно, печатая рассказы в журналах.

> Когда Мелвилл умер в 1891 году, то был уже настолько забыт, что автор короткого некролога в «Нью-Йорк таймс» не сумел правильно написать его имя.

> С 1920-х началось переосмысление Мелвилла, и его признали классиком мировой литературы.

Началось переосмысление. Выглядит загадочно, правда? В английской статье на Wikipedia этот момент описан подробнее (спасибо @techniX).

> The “Melville Revival” of the late 1910s and 1920s brought about a reassessment of his work. The centennial of his birth was in 1919. Carl Van Doren’s 1917 article on Melville in a standard history of American literature was the start of renewed appreciation. Van Doren also encouraged Raymond Weaver, who wrote the author’s first full-length biography, Herman Melville: Mariner and Mystic (1921).

По русски об этом можно прочитать в этой статье. https://daily.afisha.ru/brain/1028-mobi-dik-germana-melvilla-nesvoevremennyj-shedevr/ Итак, американский критик и биограф Карл Ван Дорен https://en.wikipedia.org/wiki/Carl_Van_Doren написал статью, потом (на 100-летие автора), посвятил целый раздел в своей книге. Способствовал созданию биографии… И вот, закрутилось!

Так что, после 70 лет люди, наконец, доросли до понимания творчества Мелвилла? Или, может быть, вернулась мода на романтизм? Или в 1851 году критики “перекрыли кислород”, а через 70 лет нашёлся другой критик? Не знаю, я не искусствовед и я могу только удивляться.

Эта история интересна тем, что показывает нам удивительный и простой факт — произведение существует вне времени! Или даже “сквозь” время. Автора давно нет с нами, но в умах, сердцах людей снова создаются образы, которые чувствовал и создавал писатель. А бумага, оказывается, это довольно надёжный носитель информации!

Мы живём в цифровую эпоху. Что будет с десятками тысяч игр, художественных и музыкальных произведений через 50, 70, 100 лет? Станет ли что-нибудь из этого наследием культуры, или все сгинет в забытье и устаревших технологиях? Очевидно, сейчас мы наблюдаем “перенасыщение”, но кто в наши дни возьмёт на себя роль “критерия”? Или всё, что нам остаётся — хранить традицию? Узнал бы цифровой мир нового Достоевского, или талантливый автор был бы задушен монетизацией, мотивацией, изучением ЦА и другими особенностями современного “культурного рынка”?

Интересные вопросы, на которые лично у меня нет ответов.

# Re: Язык и сознание
std.hugeping
hugeping(ping,1) — hugeping
2020-09-08 19:06:26


Иллюстрация #2
2.png

# Re: Язык и сознание
std.hugeping
hugeping(ping,1) — hugeping
2020-09-08 19:05:33


Иллюстрация #1
1.png

# Эффективность против простоты
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:53:37


Простой код — изящный и понятный код. Он работает предсказуемым образом, в нём легко выявить ошибки ещё на стадии написания. Наконец, он просто красив! Какой программист не стремится к простому коду? Когда мы представляем себе идеальный код — мы обычно имеем в виду именно простой, красивый исходный код! Но почему мы пишем нечто совсем другое?

Уравнение прямой — что может быть проще?

Ах + Ву + С = 0

Формула существует в мире идеальном. Но попробуем нарисовать отрезок прямой в грубой действительности — на растровом мониторе. Мы можем, конечно, выразить y через x и, увеличивая на 1 x, рассчитывать y. (Или x от y, для вертикальных отрезков). Потом ставить пиксель в координаты (x, y). Простой алгоритм. Только, никто так не делает. Медленно, неэффективно. Вы наверняка слышали об алгоритме Брезенхэма, который используется в таких случаях. К примеру, реализация рисования отрезка в INSTEAD (на C), выглядит так:

static __inline void line0(struct lua_pixels *hdr, int x1, int y1, int dx, int dy, int xd, unsigned char *col)
{
    int dy2 = dy * 2;
    int dyx2 = dy2 - dx * 2;
    int err = dy2 - dx;
    unsigned char *ptr = NULL;
    int w = hdr->w; int h = hdr->h;    int ly = w * 4;
    int lx = xd * 4;    while ((x1 < 0 || y1 < 0 || x1 >= w) && dx --) {
        if (err >= 0) {
            y1 ++;
            err += dyx2;
        } else {
            err += dy2;
        }
        x1 += xd;
    }
    if (dx < 0)
        return;
    ptr = (unsigned char*)(hdr + 1);
    ptr += (y1 * w + x1) << 2;    pixel(col, ptr);
    while (dx --) {
        if (err >= 0) {
            y1 ++;
            if (y1 >= h)
                break;
            ptr += ly;
            err += dyx2;
        } else {
            err += dy2;
        }
        x1 += xd;
        if (x1 >= w || x1 < 0)
            break;
        ptr += lx;
        pixel(col, ptr);
    }
    return;
}

static __inline void line1(struct lua_pixels *hdr, int x1, int y1, int dx, int dy, int xd, unsigned char *col)
{
    int dx2 = dx * 2;
    int dxy2 = dx2 - dy * 2;
    int err = dx2 - dy;
    int w = hdr->w; int h = hdr->h;
    unsigned char *ptr = NULL;
    int ly = w * 4;
    int lx = xd * 4;    while ((x1 < 0 || y1 < 0 || x1 >= w) && dy --) {
        if (err >= 0) {
                x1 += xd;
            err += dxy2;
        } else {
            err += dx2;
        }
        y1 ++;
    }
    if (dy < 0)
        return;    ptr = (unsigned char*)(hdr + 1);
    ptr += (y1 * w + x1) << 2;    pixel(col, ptr);    while (dy --) {
        if (err >= 0) {
            x1 += xd;
            if (x1 < 0 || x1 >= w)
                break;
            ptr += lx;
            err += dxy2;
        } else {
            err += dx2;
        }
        y1 ++;
        if (y1 >= h)
            break;
        ptr += ly;
        pixel(col, ptr);
    }
    return;
}

static void line(struct lua_pixels *src, 
int x1, int y1, int x2, int y2, 
int r, int g, int b, int a)
{
    int dx, dy, tmp;
    unsigned char col[4];
    if (y1 > y2) {
        tmp = y1; y1 = y2; y2 = tmp;
        tmp = x1; x1 = x2; x2 = tmp;
    }
    col[0] = r; col[1] = g; col[2] = b; col[3] = a;
    if (y1 >= src->h)
        return;
    if (y2 < 0)
        return;
    if (x1 < x2) {
        if (x2 < 0)
            return;
        if (x1 >= src->w)
            return;
    } else {
        if (x1 < 0)
            return;
        if (x2 >= src->w)
            return;
    }
    dx = x2 - x1;
    dy = y2 - y1;
    if (dx > 0) {
        if (dx > dy) {
            line0(src, x1, y1, dx, dy, 1, col);
        } else {
            line1(src, x1, y1, dx, dy, 1, col);
        }
    } else {
        dx = -dx;
        if (dx > dy) {
            line0(src, x1, y1, dx, dy, -1, col);
        } else {
            line1(src, x1, y1, dx, dy, -1, col);
        }
    }
    src->dirty = 1;
}

И это — весрия без анти-альясинга… Согласитесь, понять из алгоритма, что именно он делает, не так-то просто…

С одной стороны — простое уравнение. С другой — десятки строчек низкоуровнего кода, в которых отражена дискретная действительность наших компьютеров.

Я очень люблю OpenBSD за её простоту. Если сравнивать с современным Linux — это небо и земля! Но я понимаю, что за простоту пришлось заплатить… эффективностью. Ядро Linux очень сложное! Очень хитрые способы синхронизации (взять хотя бы rcu) разросшийся код системных вызовов… Даже если сравнивать один и тот же код разных версий — разница будет видна невооружённым глазом. Например, код из версии ядра 3.16:

void __napi_complete(struct napi_struct *n)
{
    BUG_ON(!test_bit(NAPI_STATE_SCHED, &n->state));
    BUG_ON(n->gro_list);
    list_del(&n->poll_list);
    smp_mb__before_atomic();
    clear_bit(NAPI_STATE_SCHED, &n->state);
}
void napi_complete(struct napi_struct *n)
{
    unsigned long flags;`    /*
     * don't let napi dequeue from the cpu poll list
     * just in case its running on a different cpu
     */
    if (unlikely(test_bit(NAPI_STATE_NPSVC, &n->state)))
        return;`    napi_gro_flush(n, false);
    local_irq_save(flags);
    __napi_complete(n);
    local_irq_restore(flags);
}

А вот аналогичный код, но уже из 4.18

bool napi_complete_done(struct napi_struct *n, int work_done)
{
    unsigned long flags, val, new;    /*
     * 1) Don't let napi dequeue from the cpu poll list
     *    just in case its running on a different cpu.
     * 2) If we are busy polling, do nothing here, we have
     *    the guarantee we will be called later.
     */
    if (unlikely(n->state & (NAPIF_STATE_NPSVC |
                 NAPIF_STATE_IN_BUSY_POLL)))
        return false;    if (n->gro_list) {
        unsigned long timeout = 0;        if (work_done)
            timeout = n->dev->gro_flush_timeout;        if (timeout)
            hrtimer_start(&n->timer, ns_to_ktime(timeout),
                      HRTIMER_MODE_REL_PINNED);
        else
            napi_gro_flush(n, false);
    }
    if (unlikely(!list_empty(&n->poll_list))) {
        /* If n->poll_list is not empty, we need to mask irqs */
        local_irq_save(flags);
        list_del_init(&n->poll_list);
        local_irq_restore(flags);
    }    do {
        val = READ_ONCE(n->state);        WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));        new = val & ~(NAPIF_STATE_MISSED | NAPIF_STATE_SCHED);        /* If STATE_MISSED was set, leave STATE_SCHED set,
         * because we will call napi->poll() one more time.
         * This C code was suggested by Alexander Duyck to help gcc.
         */
        new |= (val & NAPIF_STATE_MISSED) / NAPIF_STATE_MISSED *
                            NAPIF_STATE_SCHED;
    } while (cmpxchg(&n->state, val, new) != val);    if (unlikely(val & NAPIF_STATE_MISSED)) {
        __napi_schedule(n);
        return false;
    }    return true;
}
EXPORT_SYMBOL(napi_complete_done);

Кроме очевидного увеличения объёма кода тут присутствует любопытный фрагмент. Обратите внимание на конструкцию:

new |= (val & NAPIF_STATE_MISSED) / NAPIF_STATE_MISSED * NAPIF_STATE_SCHED;

Попробуйте самостоятельно понять, что она значит. Это яркий пример встречи мира идеального и мира материального. К счастью, над этой строчкой присутствует комментарий, который описывает назначение кода.

Сложность кода растёт, простота теряется… Нельзя назвать ядро Linux примером плохого кода, но и красивым этот код можно назвать лишь с натяжкой.

К сожалению, мир в котором мы живём — это мир компромиссов.

Мы можем следовать одному из принципов:

- Linux — стихийная хакерская разработка;
- OpenBSD — принцип простоты в абсолюте;
- Проект https://suckless.org/ — принцип простоты до абсурда.

А можем пытаться выбрать что-то среднее. Но только ведь мы мечтаем об идеальном коде! А идеалы не терпят компромиссов. Так что в качестве отдушины, я пользуюсь на ноутбуке OpenBSD. А в INSTEAD я стараюсь придерживаться серединного пути. Но все-таки, все-таки все идеи приходят из мира идеального. Так что, даже в ядре Linux мы можем увидеть отголоски кода нашей мечты. :)

# Bolder Dash с БК0010–01
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:49:46


Мне повезло, программировать я начал в лет 13, когда у нас в стране появились доступные компьютеры. Я был счастливым обладателем машины под названием БК0010–01. Конечно, сейчас даже стыдно озвучивать её характеристики. Но главное — на этом можно было программировать! Вообще, в каком то смысле было проще. В то время всё было просто. Железо — простое. Программы — простые. Сегодня, между человеком и машиной столько слоёв абстракции, что пробиться сквозь них очень тяжело. А в то время, ты мог программировать прямо в машинных кодах. Или вообще, на листке бумаги… Аналоговый мир впервые встретился с цифровым. (Кстати, успех таких проектов как PICO-8 или TIC-80 объясняется, как мне кажется, попыткой снова придать программированию простоту и радость творчества, которую у нас забрали.)

Так вот, я из тех людей, которые научились программировать благодаря играм. Я играл в игры и хотел делать такие же. Это и было основным стимулом для изучения возможностей БК. Одной из первых игр, в которые я играл была игра Bolder Dash.



Конечно, я тогда не мог знать, что Bolder Dash не самобытная игра на БК. Игра поразила меня своей сложностью. В то время я едва смог пройти несколько уровней, но не оставлял попыток пройти игру дальше.

Интересно, что потом, когда у меня появился уже x86 компьютер и я познакомился с разными вариантами Bolder Dash, я каждый раз был разочарован. Да, в этих играх человечек тоже толкал камни в разные стороны, но… Игра была абсолютно иной! В ней не было интеллектуальности! Скорее, рутинные уровни. Тяжёлое впечатление, словно ты играешь в sudoku или разгадываешь кроссворд. Каждый раз я с теплом вспоминал болдера с “бэкашки”…

В одной из версий INSTEAD, я добавил возможность создавать простые 2-D игры. Вот тогда (или чуть позже) я и вспомнил про Bolder Dash.

Мне хотелось сделать не просто клон, а точную копию игры. Поэтому, я вооружился дизассемблером PDP-11 и… Начал реверсить код.

Кстати, в то время я уже знал, что автор игры на БК (Мелентьев А.В.) был вдохновлён игрой Bolder Dash на Atari. Но он не играл в неё, а просто видел. После этого, он по памяти написал свою реализацию. Как здорово, что он не скопировал оригинал, и получилась совершенно новая игра!

Реверс кода PDP-11 оказался приятной и несложной задачей, буквально за несколько дней я воссоздал оригинальный алгоритм на Lua. С некоторыми улучшениями. :) Интересно, но я обратил внимание на тот факт, что функции часто начинались с “красивых” адресов, а между блоками кода часто были пропуски. Тогда я не мог этого понять, но ответ оказался простым! Игра писалась непосредственно в машинных кодах! Без использования ассемблера!

Кстати, вот так выглядит первый уровень игры в Lua реализации.

--$Name:STANDARD
--$Name(ru):СТАНДАРТ
maps = {
-- 0
"################",
"#+@@@@@@@@@@@@@#",
"#::::::@@::::::#",
"#::::::@@::::::#",
"#::::::@@::::::#",
"#:::@@@@@@@@:::#",
"#:::@::::::@:::#",
"#:::@: $$ :@:::#",
"#:::@: $$ :@:::#",
"#:::@: $$ :@:::#",
"#::##########::#",
"#::    %     ::#",
"#::          ::#",
"#::@@@@$$@@@@::#",
"#::::::::::::::#",
"################",

Ещё несколько дней, и болдер даш заработал на INSTEAD!

Когда я рассказывал об игре знакомым и говорил, что это “Болдер Даш”, всегда происходил эффект ложного узнавания. Люди думали, что понимают о чём идёт речь, и это мешало. Так как этот “Болдер” совершенно самобытная игра. Поэтому, я назвал игру “Miner Bold”.

Прямо сейчас, вы можете поиграть в Miner Bold. А я пока продолжу.

Так в чём же уникальность гнёмплея этой игры, по сравнению с оригинальным Bolder Dash, которого мы все знаем?

Фактически, это аркадная головоломка. Игра — набор простых с виду уровней, каждый из которых имеет индивидуальные особенности. Каждый из которых проходится за пару минут (если знать — как). Но если не проявить смекалку, каждый уровень может стать блокадой.

В физике тоже есть нюансы. Например, вы можете толкать камни вверх. А также, делать это на лету… В некоторых ситуациях… :) В некоторых ситуациях, можно даже “пугать” врагов. Конечно, эта механика следствие очень простого кода, но и она придаёт игре свой шарм.

Кроме оригинальных уровней, я добавил библиотеку дополнительных лабиринтов. Игра пишет демки успешных прохождений, которыми можно потом обмениваться (Пишутся они в каталог с сейвами). Если не нажимать на кнопки при старте, то игра покажет уже записанные демки. Также запустить демку можно кнопочкой “d” из меню выбора уровня (предварительно записав демку или взяв ее у товарища и подложив в каталог с игрой).

В игру можно играть на Android с помощью жестов. Только играйте двумя руками одновременно, тогда управление становится не хуже клавиатурного. Проверено мной и сыном, игра проходима. :)
Всем БКшникам — привет! :)

https://www.youtube.com/watch?v=ghZ3iQQj0iI

# О творчестве (цитаты)
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:45:41


Aug 23, 2018 · 2 min read

По моим наблюдениям, в наши дни творчество само по себе встречается очень редко. Чаще всего оно оценивается с точки зрения коммерческого успеха, и как следствие — рационализируется.

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

Главный элемент творчества — чувство личной свободы.
(Чехов)

Существуют два способа не любить искусство. Один из них заключается в том, чтобы его просто не любить. Другой в том, чтобы любить его рационально.
(Оскар Уайльд)

Совершенства достигает лишь тот, кто отказывается от всяческих средств, ведущих к сознательной утрировке.
(Поль Валери)

Если бы мы могли совершенно не принимать в расчет все правила и общепринятые способы, которыми делаются фильмы, книги и проч., какие бы замечательные вещи можно было бы создавать! Мы совершенно разучились наблюдать. Наблюдение мы заменили деланием по шаблону.
(Тарковский)

Чтобы хорошо писать, надо разучиться грамматике.
(Гёте)

Чем недоступнее рассудку произведение, тем оно выше.
(Гёте)

Кто хочет понять поэта, должен идти в страну поэта.
(Гёте)

Мне важно установить в этом фильме то специфически человеческое, нерастворимое, неразложимое, что кристаллизуется в душе каждого и составляет его ценность. Ведь при всём том, что внешне герои, казалось бы, терпят фиаско, на самом деле каждый из них обретает нечто неоценимо более важное: веру, ощущение в себе самого главного. Это главное живёт в каждом человеке.
(Тарковский о “Сталкере”)

Я не пишу песни для кого-либо специально. Конечно, мне хочется, чтобы все люди могли меня понять… Но… Я не знаю. Песни которые я пишу (мы пишем), и песни которые мы играем. Мы делаем только так как мы хотим.
(В. Цой)

Набрать нужное количество слов — это не самое трудное. Куда труднее сочинить рассказ как таковой; литературное творчество — процесс загадочный до жути. Вам так хочется сделать все правильно, вы лезете вон из кожи, на каждом шагу беспощадно судите себя — и в итоге оказываетесь в глухом тупике. Тысячи и тысячи написанных слов не сложились во что-либо приемлемое; среди дикого сумбура невозможно найти правильный курс.
Р.Шекли

# Абсолютно ли познание?
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:44:00


Когда я сталкиваюсь с мнением о том, что физика должна исключить религиозное восприятие и любую метафизику. Что физика претендует на монополию в познании истины. Что только лишь недалекое сознание может верить в Бога. Я каждый раз удивляюсь. Конечно, есть вульгарный упрощенный материализм, который наивен по своей сути и спорить с которым невозможно. Но есть в этой часто происходящей подмене понятий и нечто фундаментальное.

Я хочу привести что то вроде мысленного эксперимента, который иллюстрирует мои мысли по поводу границ материализма.

Мы – люди. Мы – задаем вопросы. Но задавая любой вопрос, мы получаем такой ответ, который можем себе представить. Не случайно говорят, что правильно заданный вопрос – половина ответа. Любой ответ всегда сформулирован в том же понятийном пространстве (аристотелевой логики, математики, языка и так далее), что и вопрос.

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

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

Теперь, представим себе, что существует реальность. Настоящий мир весь целиком. Сам в себе. Или, упрощенно – истина. Многие ученые верят в это.

Частью этого мира являются люди. Люди пользуются мышлением (язык, математика, логика). Если встать на позицию материализма, то можно сказать что язык, математика, логика (мышление) – сформированы средой. Например, причинно - следственные связи логики – это отражение направленности времени. Математика – суть закономерностей мира. И так далее.

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

Но если язык сам по себе порождение мира, то какие у нас вообще есть основания считать, что созданный миром язык таков, чтобы мир мог быть им полностью описан? Мир, создающий язык, на котором он может быть полностью описан? Если язык действительно таков, то не похоже ли это все на осознающий себя мир?

С точки зрения материализма, на мой взгляд, естественней верить в то, что язык не способен вместить истину. И тогда мы приходим к схеме двух миров: человеческий мир, способный быть сформулированным человеческим мышлением (видимиый мир), и мир – надчувственный, трансцендентный. Который ускользает от рассудка, не попадает в его систему координат (невидимый). И тогда мы приходим к почти религиозному взгляду на мир. Почти, потому что следующий шаг – это введение бытия Бога. Которое очень сложно исключить, так как язык – не больше создателя. Но мера сложности создателя выше меры сложности языка. Это все больше похоже на рождение.

Если же мы верим в то, что язык способен вместить в себя истину, то это тоже приводит нас к религиозному взгляду, который можно отнести к пантеизму. Но в случае пантеизма мы приходим к тому, что бог – это мы. Но почему же тогда человек в этом мире так несчастен? Так что, на мой взгляд, и в этом случае ответом может быть только бытие Бога.

Интересно отметить, что данный текст тоже пишется в рамках человеческого мышления. И интересно, что его интерпретация тоже имеет разный смысл в двух вариантах: случая абсолютного мышления и относительного. Но моя цель просто показать – как все непросто. Что наши рассуждения одинаково приводят к сингулярностям. Религиозный взгляд не конфликтует с физикой, он находится вообще в другой плоскости. Вера – это знание при помощи любви. (Тарковский)

Мы часто делаем подмены, во время наших рассуждений. Например, мы считаем “пространство” чем то самими собой разумеющимся. Хотя таким оно было только во времена Ньютона. Что такое пространство? Что такое движение? Вообще, философия науки на данный момент находится в стагнации. Да, мы даже не способны осознать даже такое “простое” понятие как движение! Любая физическая истина, будучи сформулированной, теряет абсолютность. Любая истина, выраженная логикой – теряет абсолютность. В качестве примера, попробуйте представить абсолютную истину, сформулированную физиком? У вас не получится.

Свобода воли – еще один интересный пример. Как бы мы не рассуждали, мы приходим либо к ее отрицанию, либо к ее “нефизичности”.

Само понятие “существует” – тоже предмет отдельного разговора.

Для меня, сам факт того, что человек пытается “заглянуть за край” является одним из доказательств бытия Божия. Мне кажется крайне неэкономично было бы мертвому и безжизненному абсолюту создавать человека с бесконечностью в душе. Но как бы вы не считали, во что бы вы не верили, я твердо убежден – ваш выбор обусловлен прежде всего не логикой, а сердцем. А если ваше сердце говорит одно, а логика – другое. Не бойтесь – логика хитрит. На мой взгляд, это еще одно “доказательство” бытия Бога, которое выражено в том, что человек свободен в своем выборе.

И в заключении, еще один пример. Многие из нас во сне делали нелепые поступки, чувствуя (во сне!) их абсолютную логичность. Просыпаясь же, мы удивлялись нелепости сна. Почему же мысль о том, что человек может “проснуться” в новую жизнь может казаться нелепой?

# Фиксированная передача
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:42:25


Летом я езжу в городе на “глухаре” – велосипеде с фиксированной передачей. Глядя на множество стереотипов и предубеждений, которые связаны с этим типом велосипеда, мне захотелось хотя бы немного исправить это положение вещей и я перевел одну из статей Шелдона Брауна (довольно известного в велосипедных кругах веломеханика) на тему фиксированной передачи… Надеюсь, она окажется кому-то полезной…

Автор статьи: Шелдон Браун (Sheldon Brown)
Оригинал статьи на английском http://www.sheldonbrown.com/fixed.html

Перевод: Петр Косых

Я все равно думаю, что переключение передач может понадобиться только людям за сорок пять. Не лучше ли одержать победу силой своих собственных мышц без помощи искусственного переключателя? Мы теряем твердость. Что до меня, дайте мне “глухарь”! – Анри Дегранж (Henri Desgrange), L'Équipe article of 1902

# Что такое фикс и почему он может вам понадобиться?

Самый старый и простой тип велосипеда – “глухарь”. Это односкоростной велосипед без фривила (односкоростной кассеты): то есть, когда велосипед в движении, педали постоянно вращаются. На фиксе вы не сможете ехать по инерции.

Многие энтузиасты выбирают такие велосипеды и ездят на них хотя бы время от времени. Зачем они это делают? В двух словах на этот вопрос ответить непросто. Существует почти мистическая связь между фиксером и велосипедом: он ощущается как продолжение вашего тела и это ощущение сильнее, чем на велосипеде с холостым ходом. Если вы опытный велосипедист, то вам определенно стоит попробовать глухую передачу.

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

# Для удовольствия

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

Конечно, нужно решиться на этот шаг и пройти через период привыкания. Но как только он пройдет, вы обретете совершенно новое удовольствие от езды на велосипеде. Когда вы едете на фиксе, вы чувствуете более тесную связь с велосипедом и дорогой. Есть какая то предельная, незамутненная простота в фиксированной передаче, которая может оказаться для вас крайне привлекательной. Каким то образом, как только заканчивается период привыкания, оказывается, что езда на глухаре приносит большее удовольствие, чем езда на велосипеде с передачами и трещеткой! Если вы не верите моим словам, почитайте отзывы о фиксированной передаче. http://www.sheldonbrown.com/fixed-testimonial.html

# Для поддержания формы

Езда на фиксе – отличное упражнение. Когда вам нужно взобраться в подъем, вам не нужно думать о том, когда менять передачу, потому что у вас она одна. Вместо этого, вы знаете, что нужно просто встать и поднажать, даже если расчет (передача) слишком высока, чтобы быть оптимальной для подъема. Это делает вас сильнее.

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

На спусках вы не можете катиться по инерции, а передача слишком низкая. Это заставляет вас педалировать с большим каденсом http://www.sheldonbrown.com/gloss_ca-g.html#cadence, чем на многоскоростном велосипеде. Педалирование с более высоким каденсом разрабатывает ваши ноги. Высокая частота вращения заставляет вас учиться более равномерному и плавному педалированию – если вы не будете правильно педалировать, вы будете подскакивать в седле.

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

# Чувство контроля

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

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

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

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

# Эффективность трансмиссии

Фикс заметно легче, чем многоскоростной велосипед сравнимого качества, из за отсутствия заднего тормоза, дюрайлеров http://www.sheldonbrown.com/gloss_da-o.html#derailer, манеток, лишних звезд http://www.sheldonbrown.com/gloss_sp-ss.html#sprocket . Фикс также имеет существенно более короткую цепь.

Правильно собранный фикс имеет идеальный чейнлайн http://www.sheldonbrown.com/gloss_ch.html#chainline . Это, а также отсутствие дюрайлеров, настолько сильно повышает эффективность трансмиссии, что вы это почувствуете.

# Трековые велосипеды

Многие люди думают, что фиксы и трековые http://www.sheldonbrown.com/gloss_tp-z.html#track велосипеды это синонимы, но это не так.

Трековые велосипеды созданы для использования на велодромах (велосипедных треках). Некоторые велосипедисты ездят на них и по дорогам, но они неидеальны для дорог.

Трековые велосипеды отличаются от шоссейных http://www.sheldonbrown.com/gloss_ri-z.html#road еще больше, чем отличаются от них фиксы.

Трековые велосипеды не имеют тормозов. Тормоза не нужны на треке, так как все едут в одном направлении, и никто из рядом едущих велосипедистов не может (и не должен) останавливаться быстрее вас. (На большинстве треков, в целях безопасности, тормоза запрещены!)

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

Геометрия рамы http://www.sheldonbrown.com/gloss_e-f.html#frame у трекового велосипеда также отличается от рам дорожных велосипедов. Так как на треке нет выбоин и неровностей, обычно рамы делаются более жесткими, с большими углами. Это хорошо для маневренности, но делает жесткой езду по реальным дорогам.

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

На трековых велосипедах не используются эксцентрики http://www.sheldonbrown.com/gloss_q.html#quick , что усложняет обслуживание в дорожных условиях.

На трековые велосипеды нельзя установить крылья http://www.sheldonbrown.com/gloss_e-f.html#fender , что ограничивает их полезность в плохую погоду.

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

Если вы заинтересовались трековыми гонками, посмотрите сайт Майка Глада The drome. http://www.velodrome.com/

# Дорожные фиксы

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

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

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

Вы можете купить готовый дорожный фикс, но у меня есть подробная статья переделка в фикс, http://www.sheldonbrown.com/fixed-conversion.html которая может помочь вам собрать свой.

# Фиксы из горных велосипедов

Фикс из горного велосипеда может стать универсальным транспортным средством для езды в городе и, при наличии авантюризма, его можно брать в лес. Горные велосипеды обычно имеют адекватный клиренс, правда с другой стороны, у большинства из них вертикальные дропауты. http://www.sheldonbrown.com/fixeda.html#vertical

У меня есть фикс на основе старого Bridgestone CB-3 http://sheldonbrown.org/bicycle.html#cb3 для плохих зимних условий, с 28/15. Это дает хорошую низкую передачу с расчетом 3.63 (49" / 3.88 м), http://www.sheldonbrown.com/gain.html которая позволяет мне ехать настолько быстро, насколько я считаю безопасным ездить по заснеженным улицам. Такая низкая передача делает передний тормоз почти бесполезным: низкая передача позволяет мне быстро тормозить велосипед за счет сопротивления вращению, особенно учитывая тот факт, что на ней сильно не разгонишься.

У меня есть пару горных фиксов с флип-флоп втулками, http://www.sheldonbrown.com/fixed.html#flipflop так что у меня на одной стороне втулки фиксированная передача, а на другой стороне получаются две передачи со свободным ходом. Это достигается с помощью двух передних звезд и двух звездочек на трещетке. (Трещетка на самом деле старая 5 или 6-скоростная у которой 3 звезды заменены на проставки.)

Спереди у меня стоит двойная система 42/52, которую я использую с 19-зубчатой фиксированной звездочкой, или с трещеткой с 20/30 зубцами. Все это дает 3 работающих комбинаций:

	Расчет 	Дюймы 	Метры 	Использование
52/19 Фикс. 	5.45 	71.2 	5.70 	Обычная дорога
52/20 Трещ. 	4.90 	64.1 	5.13 	Устал или холмы
42/30 Трещ. 	2.64 	34.4 	2.75 	Бездорожье

Комбинации 52/30 и 42/20 невозможны из за длины цепи. Я меняю передачи руками… да, плохой способ, так что я и не делаю это часто.

Брюс Ингл, участник Charles River Wheelmen, http://www.crw.org/ подкинул мне идею получше, он сделал тройной фикс на основе горного велосипеда. Он использовал кассетную втулку Шимано, http://www.sheldonbrown.com/k7.html запаяв механизм трещетки. Я немного волнуюсь относительно перспектив на будущее у этой втулки, в частности, насчет соединения между корпусом барабана и втулки, но я думаю я попробую повторить этот вариант. Он получил:

	Расчет 	Дюймы 	Метры
48/20 Фикс. 	4.65 	62.4 	4.99
42/26 Фикс. 	3.13 	42 	3.36
36/32 Фикс. 	2.18 	29.3 	2.34

# Трансмиссия

1/8" или 3/32"

Многие велосипедисты с трека используют более толстую цепь, чем цепи на многоскоростных велосипедах. Многоскоростная цепь имеет номинальную внутреннюю ширину в 3/32". На односкоростных велосипедах, включая большинство трековых, используются более широкие цепи в 1/8". Вы можете купить фиксированные звездочки обоих размеров.

(Некоторые люди по ошибке воспринимают ширину как шаг звена, говоря о “шоссейном” шаге или “трековом” шаге. Это ошибка. Шаг это расстояние от центра до центра между роликами, и все современные велосипедные цепи имеют одинаковый шаг, ½"/12.7 мм)

В большинстве случаев я бы порекомендовал использовать многоскоростной размер 3/32". Он легче, более совместим с вашими передними звездами от многоскоростных велосипедов, и, вероятно, сделает работу трансмисии мягче (вследствие скошенных боковых пластин) в случае, если на велосипеде неидеальный чайнлайн.

Судя по моему опыту, 3/32" цепи не менее надежны или прочны чем 1/8".

Для истинных ретро-ценителей, есть другой вариант – это 1" x 3/16" цепи. Этот размер был распространен на треке и требует специальных звездочек с числом зубцов вдвое меньшим, чем у стандартных звездочек с шагом ½". Настоящие трековые гонщики использовали цепь без роликов. Таких цепей больше нет. Но роликовые цепи такого размера еще где-то можно достать.

Еще более запутывает ситуацию шаг цепи в 10 мм. продвигаемый Шимано http://www.sheldonbrown.com/gloss_sa-o.html#shimano несколько лет назад. Идея была в том, чтобы сэкономить на весе, сделав все меньше. Идея, время которой так и не пришло.

# Продление жизни звездочек и цепи

Если вы хотите продлить жизнь цепи и звездочек, выбирайте четное число зубьев, если это возможно. Смотрите мою статью по продлению жизни цепи. http://www.sheldonbrown.com/chain-life.html

# Центровка передней звезды

Натяжение цепи на фиксе крайне важно и регулируется путем сдвига задней оси назад и вперед в дропаутах. Если цепь натянуть очень туго, то движение трансмиссии будет затруднено, хотя бы при одном положении педалей (звезды обычно не идеальны). Цепь должна быть настолько тугой, насколько это возможно, но без заедания хода трансмиссии. Если натяжение цепи ослаблено, то цепь может слететь, что очень опасно на велосипеде с фиксированной передачей.

Установите заднюю ось так, чтобы цепь была натянута в самой тугой позиции шатунов. Теперь ослабьте каждую бонку и снова затяните, но только лишь с помощью усилий пальцев. Вращайте медленно шатун и следите за цепью, чтобы выявить позицию, соответствующую самому сильному натяжению. Слегка ударьте по натянутой цепи подходящим инструментом, чтобы заставить переднюю звезду немного сдвинуться на пауке. Затем поверните шатун еще немого, чтобы найти следующее положение самого тугого натяжения и так повторяйте до тех пор, пока это нужно.

Рукам требуется небольшой опыт, чтобы научиться тому, с какой силой ударять по цепи и насколько ослаблять бонки, но это действительно несложная процедура.

Затяните немного бонки и все перепроверьте. Затягивайте бонки в равномерной последовательности, как это делается с гайками на колесах у машин. Моя обычная последовательность начинается с затягивания бонки напротив шатуна, затем пропустить 2 бонки по часовой стрелке (144 градуса), затянуть одну, пропустить еще 2 по часовой стрелке, и так далее. Никогда не затягивайте две соседние бонки. Вы можете выбрать противоположное направление движения, но попытайтесь выработать привычку всегда начинать из одной точки и всегда идти в одном направлением. Это уменьшит вероятность случайно пропустить бонку.

После того как вы отцентрировали и затянули переднюю звезду, отрегулируйте положение задней оси, чтобы сделать натяжение цепи настолько тугим, настолько это возможно (но без заедания трансмиссии). Обратите внимание, как свободно работает трансмиссия на ослабленной цепи. Вот так она и должна работать, когда вы закончите, но с минимально-возможным провисанием цепи.

# Установка заднего колеса

Когда вы устанавливаете заднее колесо на фиксе – или на любом велосипеде с одной скоростью –, существуют три вещи, которые вы должны настроить одновременно:

- Колесо должно стоять прямо. Это, в основном, означает, что передний край колеса должен быть точно посредине между перьями рамы. Если у колеса симметричный зонт, и вы отцентрировали его относительно перьев, то колесо выровнено прямо.
- Натяжение цепи должно быть правильным. (См. предыдущий раздел)
- Гайки на оси или эксцентрики должны быть затянуты туго. Замечание: если у вас ось на гайках, жизненно необходимо, чтобы резьбы были правильно смазаны консистентной или жидкой смазкой. Вам следует также смазать поверхность контакта в том месте, где гайка давит на шайбу которая контактирует с рамой.

Некоторые ребята, которые до этого использовали велосипеды со скоростями находят такую процедуру раздражающей. Особенно с втулками на гайках. Это потому, что они не знакомы со способом “гуляющего” колеса.

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

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

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

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

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

> Мне нравится сначала освободить правую часть оси, натянуть цепь немного сильнее, чем нужно, и ударить по цепи гаечным ключом, как описывает Шелдон в процедуре центрирования передней звезды. Таким образом, я могу сдвинуть ось совсем немного вперед, чтобы цепь была хорошо натянута. Колесо при этом немного повернется, и нужно будет настроить позицию левого конца оси, но это уже почти не повлияет на натяжение цепи. – Джон Аллен

Замечание: этот способ не работает с втулками на эксцентриках, но с ними обычно меньше проблем.

# Выбор расчета

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

Я живу в Новой Англии с небольшими холмами. Для велосипеда с обычными дорожными колесами и 165 мм. шатунами я понял, что для меня, передача 42/15 подходит лучше всего. Это дает передачу 5.77 (75.6" / 6.05 м). Это достаточно мало для того, чтобы я мог въезжать в горки где я обычно езжу, но достаточно много, чтобы я мог достаточно быстро съезжать вниз.

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

Те, кто живут в плоских местах, скорее всего предпочтут что-нибудь значительно большее. Когда я посещал мою сестру в Иллиноисе, я повернул мое колесо и использовал 42/14, передачу 6.18 (81.0" / 6.48 м).

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

Раздельщики часто предпочитают что-нибудь еще более высокое. (Многие британские триалисты предпочитают фиксы для этих соревнований.) Берил Бартон (Beryl Burton), вероятно, самая известная триалистка в истори, использовала почти исключительно фикс. Если мне не изменяет память, она обычно ездила на 52/14 или 52/13!

Чем выше передача, тем более желательно иметь тормоз на велосипеде. Тому есть две причины:

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

Если вы планируете регулярно делать скип-стопы (скидить), то вам следует также учесть число скид-патчей у выбранной вами передачи.

# Большее или меньшее число зубцов?

Как только вы определились с передачей, следующий вопрос состоит в том, какой из эквивалентных вариантов числа зубьев для звезды/задней звезды(кога) использовать.

Например, 36/12, 39/13, 42/14, 45/15 и 48/16 все дают одну и ту же передачу 3:1. Что выбрать?

	                 Больше         Меньше
Хорошо: 	Немного меньшее трение 	Немного легче
	Более долгая жизнь цепи/кога 	Больший клиренс до земли
	Меньшее напряжение цепи 	Больший клиренс до перьев
Плохо: 	Немного тяжелее 	Быстрый износ цепи/кога
	Иногда проблемы с клиренсом до перьев 	Большее напряжение цепи
		(и вероятность смещения оси)

Эти различия в основном незначительны. Большинству велосипедистов подойдут звезды от 30 зубцов для техничного внедорожного использования, 40 зубцов для дороги и 50 для использования на треке.

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

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

# Флип/флоп втулки

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

Наиболее распространенное использование таких втулок – это установка фиксированной звездочки на одной стороне и фривила на другой. Обычно, фривил ставят на 1 или 2 зубца больше, чем фиксированная звездочка.

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

- Более низкая передача облегчит подъем.
- Фривил позволит вам ехать по инерции (отдохнуть) на спусках (что было бы утомительно на такой низкой передаче, если бы она была глухой.)

Для каждого зубца разницы, позиция задней оси будет меняться на 1/8" (3 мм.)

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

Вы также можете использовать две разные фиксированные звездочки. В таком случае я бы порекомендовал разницу в 1 зуб. Я использую 14 и 15 коги с 42 звездой впереди на паре моих велосипедов.

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

Бывают двойные фиксированные втулки, и, как по мне, это наиболее желательная конфигурация. Такое устройство наиболее универсально, потому что вы можете накрутить 1 или 2 фиксированные звезды или 1 или 2 фривила.

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

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

# BMX фдип-флоп втулки

Есть еще один тип “флип-флоп” втулок, в основном используемых в BMX. Этот тип имеет резьбу для двух фривилов, без резьбы для локринга. Одна сторона это стандартная 1.375" резьба, другая – более мелкая метрическая резьба. Она сделана для того, чтобы устанавливать более мелкие фривилы, чем те, которые устанавливаются на обычную втулку (14 и 15 зубцов).

# Педали

Наиболее важная характеристика, которую нужно учесть при выборе педальной системы для фикса – это хороший клиренс. Вам следует также выбрать педали, в которые вы легко встегнетесь и выстегнетесь, так как обе операции усложняются постоянным движением шатунов.

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

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

Иногда, начинающие фиксеры пытаются использовать обычные педали (топталки). Я настоятельно советую не делать так. Езда на фиксе с обычными педалями без крепления это продвинутая техника катания, которую можно рекомендовать только опытным фиксерам.

# Начало езды

Езда на велосипеде требует подходящей техники старта. http://sheldonbrown.com/starting.html Многие велосипедисты имеют плохие навыки старта езды, такие как закидывание ноги на ходу или подпрыгивание на старте. Эти методы работают на фиксе еще хуже, чем они работают на обычном велосипеде.

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

Я использовал край седла, чтобы приподнять велосипед, но я таким образом порвал Brooks Pro http://sheldonbrown.com/leather.html – оторвались заклепки, которые крепят кожу к рамке седла!

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

# Остановка

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

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

Когда велосипед замедлится до прогулочной скорости, выстегните левую ногу, затем подождите пока правая педаль окажется внизу. В тот момент, когда правая педаль начнет подниматься, распрямите правую ногу и позвольте движению педали приподнять вас. Оттолкните руль и позвольте седлу пройти вперед между ваших ног, поставьте левую ногу на землю. Схватите уезжающий вперед велосипед за седло.

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

# Торможение

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

Вам действительно следует иметь передний тормоз. Передний тормоз, даже без заднего, остановит велосипед настолько быстро, насколько это вообще возможно. Это происходит потому, что когда вы максимально тормозите передним тормозом, на заднее колесо практически нет нагрузки и, следовательно, нет трения.

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

Это очень ценный опыт для любого велосипедиста, который любит ездить быстро: он может спасти вам жизнь.

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

Некоторые фиксеры стараются не использовать тормоз за исключением экстренных ситуаций. Я не уверен в том, что это хорошая идея. Очень тяжелая и постоянная нагрузка сопротивления педалированию широко зарекомендовала себя как вредная для ног. Она является контр-продуктивной для развития мышц и координации педалирования. Загуглите “eccentric contraction” для дополнительной информации. http://www.google.com/search?client=safari&rls=en&q=eccentric+contraction&ie=UTF-8&oe=UTF-8 Eccentric contraction зарекомендовала себя как причина микро-разрывов в мышечной ткани, так что это ослабляет ваши мышцы, в отличие от других физических нагрузок.

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

> Физиология упражнений относительно новая наука. Микро-разрывы в мускулах сейчас считаются началом укрепления мышц. Распространенные упражнения для строительства мускул – поднятие тяжестей, отжимания, приседания. Nautilus и Cybex тренажеры и так далее используют eccentric contraction – вы поднимаете штангу, или свое тело, или тянете рычаг, затем опускаете. Но число повторений в упражнениях намного меньше, чем при езде на велосипеде, обычно 2 или 3 подхода из 10 повторений, вместо тысяч за час педалирования. Тяжелые нагрузки при сопротивлении вращению педалей, возможно, вредная вещь по той же причине, что и низкий каденс. Сильная нагрузка, повторенная много раз, ведет к излишнему травмированию, и будет истощать, а не наращивать мышцы. – Джон Аллен

# Скип-стоп (скидинг)

Велосипедистам не использующим тормоза следует освоить технику, называемую скип-стоп. Это примем с помощью которого вы можете заблокировать заднее колесо усилием ног.

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

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

Вам действительно стоит научиться этому приему! Его проще делать на большей скорости.

Чем меньше передача, тем более эффективно вы можете “тормозить” путем сопротивления вращению педалей.

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

Смотрите мою статью Торможение и маневрирование http://sheldonbrown.com/brakturn.html для более детальной информации.

# Скид патчи

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

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

- Упростите передачу к самому маленькому (меньшим числом зубцов) эквиваленту в виде отношения чисел. Назовем передачу p/q.
- Если числитель p у дроби – четный, то число скид-патчей равно q. Скид-патчи равномерно распределены по покрышке, если их больше одного.
- Если вы способны скидить с обоих позиций и числитель нечетный, число возможных скид-патчей удваивается. Скид-патчи с одной позиции (одна из ног впереди) лягут в промежутках между скид-патчами для другой позиции (эта же нога – позади).

Например:

48/12 упрощается до 4.1, таким образом тут будет только 1 пятно контакта (скид-патч).

45/15 упрощается до 3/1, таким образом будет только 1 скид-патч, или 2 если вы умеете скидить с обоих позиций.

42/15 упрощается до 14/5, то есть тут будет 5 скид патчей.

44/16 упрощается до 11/4, то есть тут 4 скид патча, или 8 – если вы умеете скидить с обоих позиций.

Дробь 43/15 не может быть упрощена, так что тут 15 скид патчей, или 30 – если вы умеете скидить с обоих позиций.

Объяснение: давайте посмотрим на 45/15 или 3/1. Заднее колесо поворачивается точно 3 раза за каждый оборот шатунов, таким образом, если одна и та же нога в передней позиции, одно и то же место покрышки будет протираться при торможении. ½ поворот шатунов соответствует другой позиции (другая нога впереди) и это повернет заднее колесо на 1 ½ оборота. Таким образом, пятном контакта станет противоположная точка на шине. Аналогично, для более больших отношений, если числитель четный, скид-патчи будут попадать на одно и то же место не зависимо от того, какой шатун впереди. Но если числитель нечетный, скид-патчи будут чередоваться. Табличка для Excel от Джона Алена http://sheldonbrown.com/skidpatch.xls помогает вычислить число скид-патчей для любой комбинации звезд.

Задний тормоз тоже оставляет протертости. Переднее колесо не уходит в занос при нормальном торможении. Передний тормоз также может остановить велосипед намного быстрее, но требует осторожного обращения, чтобы избежать выкидывания велосипедиста через руль: см. мою статью по торможению и маневрированию. http://sheldonbrown.com/brakturn.html

# Опасности фикса

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

# Чирканье педалью

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

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

Насколько именно эта проблема опасна зависит от высоты каретки, длинны шатунов и устройства педалей.

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

> Избегание зацепления педалью это одна из причин не следовать обычному совету Шелдона http://sheldonbrown.com/brakturn.html#leaning стараться держать свое тело и велосипед на одной линии во время крутых поворотов. Если вы наклоните туловище по направлению поворота, велосипед будет устойчивей, но с другой стороны… – Джон Аллен

# Соскок цепи и блокировка колеса

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

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

# Зажевывание пальцев, брюк, шнурков

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

> Тут были изображения отрубленных пальцев. Вы можете посмотреть их здесь. – Прим. пер. http://www.sheldonbrown.com/fixed.html

Простите, за эти ужасные фото, но это реальная опасность!

Похожим образом, во время езды, если вы носите широкие штаны или у вас развязался шнурок, то одежду может зажевать в трансмиссию. На велосипеде со свободным ходом, это нестрашно. Вам просто надо остановить движение педалей, затем прокрутить их назад, чтобы освободиться. Самое ужасное что произойдет – ваша одежда испачкается в масле.

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

Я искренне надеюсь, что моя статья убедит некоторых из читателей попробовать прокатиться на глухаре, и, быть может, вам понравится фиксированная передача так же сильно, как она нравится мне. У меня есть 11 фиксов! http://www.sheldonbrown.com/fixed-scb.html

# Познаваемость и антропный принцип
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:27:04


Люди привыкли к тому, что мир познаваем. Настоящий ученый убежден, что процесс познания ничем не ограничен, что можно разобраться в том, как работает вселенная и подчинить себе ее законы. Мы смотрим фантастические фильмы, подсознательно веря в то, что рано или поздно люди начнут осваивать другие звезды, встретятся с другими цивилизациями… Но на чем основана эта вера?

Если мыслить мир без Бога, мы исключаем антропный принцип. И в таком случае, вроде бы не видно никаких оснований для веры в принципиальную возможность неограниченного человеческого познания. В самом деле, может оказаться, что мы просто ограничены каким то фактором, который не сможем перешагнуть (или даже помыслить).

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

Это как с мыслями о бесконечности: если мы можем дойти до этой точки, то значит можем шагнуть еще дальше. А потом еще и еще. Но на чем, кроме житейского опыта основано это убеждение? Скорость света может оказаться действительно максимальной скоростью, кротовые норы могут оказаться несбыточной мечтой. Вероятность успешной миссии корабля-колонии – ничтожно малой, недостаточной, чтобы сделать возможными межгалактические переходы. Может просто не оказаться законов (в смысле их применимости и доступности), которые помогли бы человеку освоить вселенную. Человек может оказаться тупиковой (неудачной) формой жизни, неспособной к познанию вселенной, видящей только маленький, доступный для сознания слой неведомой реальности.

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

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

Интуитивно мы понимаем, что все эти рассуждения выглядят нелепо. Возвращая антропный принцип в полном смысле (говоря, что Бог сотворил вселенную для нас) – наш разум более не вступает в конфликт с интуицией. Я не знаю, доберемся ли мы до звезд, но это вполне возможно, если Бог подарил нам эти звезды. Антропный принцип предполагает, что вселенная познаваема, ибо она создана для нас. Человек архитектурно сродственен миру. Конечно, это не означает, что мы гарантированно начнем бороздить просторы галактики, но хотя бы дает основание для надежд на то, что мы все-таки способны вместить в себя вселенную.

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

# Вероятность личного бытия
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:26:33


Исходя из текущего научного представления о вселенной, количество галактик в нашей вселенной — несколько миллиардов. Размер только нашей галактики около 100 000 световых лет. Количество звезд в ней — больше 150 миллиардов.

Возраст Земли — 4-5 миллиардов лет. Самые древние исторические свидетельства о человеческих цивилизациях лежат в диапазоне нескольких тысяч лет.

Теперь, читающие эти строки, представьте себе вероятность вашего существования. Нет, не вероятность возникновения «жизни», и даже не вероятность возникновения «человека», а вероятность вашего личного существования. Что во всех этих невообразимых масштабах пространства и времени, сейчас, вопреки всему «здравому смыслу» существует огонек вашего сознания. Что вы не знаете другого времени, как только то, в котором вы вошли в этот мир. Микроскопический, почти нулевой отрезок времени. Микроскопический, почти нулевой масштаб. Почти нулевая вероятность. И все-же, ваше сознание заполнено отраженной в ней вселенной, которая ворвалась в нее, когда вы осознали собственное бытие… Так ноль или один?

И сотворил Бог человека по образу Своему, по образу Божию сотворил его;

# Об эволюции
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:25:57


Как не специалист в данной области, строго говоря, я не могу с достоверностью судить о том, насколько теория эволюции состоятельна и общепризнана. Но мне думается, что сам путь развития жизни на земле от простого к сложному, а также временные масштабы процесса не вызывают сомнения у большинства ученых. Объяснить же сам процесс с научной точки зрения — это гораздо более сложный вопрос, который я не рискну поднимать, но думаю, что наука не готова сейчас предложить исчерпывающий ответ.

Когда думаешь о вселенной: о всех этих расстояниях, которые почти невозможно представить, о нескольких миллиардах лет развития земли, о зыбкости жизни, о том, что возможно, нашими предками были животные — то легко почувствовать потерянность во всем этом. И невольно думаешь: а как же Бог? как может быть центром всего Христос? Человек сотворен Богом, или лишь слепой случайностью, которая нащупала себе дорогу за долгие годы эволюции? А как же книга Бытия?

Быт1:1 В начале сотворил Бог небо и землю.

Если под небом и землей представить себе планету Земля и ее атмосферу, то первый стих книги Бытия покажется даже наивным. Но если иметь в виду, что тексту несколько тысяч лет, и для людей того времени небо и земля, скорее всего, означали всю вселенную, то у стиха будет уже несколько другой смысл. А если вспомнить еще одно толкование, где под небом и землей понимается видимый и невидимый (небесный) мир, то мы обнаружим еще один смысл. И какой из них верный? Каждое из толкований верно, так как следует более фундаментальному смыслу, который заложен в этой короткой строке.

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

Для простоты (не обращая внимания на слабые моменты теории), представим себе, что эволюция это просто результат случайности и отбора. То-есть эволюция заключается в «нащупывании» или «протаптывании» оптимального пути развития, находя его среди множества вариантов. Представим себе, что мы наблюдаем становление человека из обезьяны (или нашли археологическое подтверждение этому процессу). Значит ли, что человека сотворила «случайность»?

Оставаясь в рамках науки — да. С научной точки зрения мы опускаемся все глубже и глубже, и останавливаемся на том пределе, до которого можем добраться — до случайности или квантовой механики.

Но случайность это свойство нашего мира, сотворенного Богом. Наблюдая эволюцию, мы наблюдаем становление творения. Бог создал человека. Или, глядя изнутри мира, мы можем сказать, что мир таков, что в нем возможен человек, и это факт бытия. (Кстати, еще сложный вопрос, соотношение «вероятности» и факта личного бытия.)

Когда рассуждаешь таким образом, конечно, понимаешь, что применяя неуклюжие умозрительные построения мы едва ли понимаем кто есть Бог, но по крайней мере, это дает возможность сказать — случайность не есть бог.

Христос явил Бога настолько, насколько возможно человеку познать Бога. Если я верю в то, что Бог создал человека, и узнаю Бога в Христе, то я верю, что Христос — Агнец, закланный от создания мира Откр13:8. То-есть событие смерти и Воскресения Христа, послание Духа Утешителя вплетены в мироздание на уровне сотворения мира. Бог воссоздал человека во Христе, поэтому Христос это второй Адам или виноградная лоза, как говорит о Нем Церковь. Альфа и Омега — то-есть центр координат, начало отсчета. Новый Завет. Еще есть термин домостроительство Божие. Наверное, слишком грубый термин, но я бы сказал, что это как новая «прошивка». Бог создал человека неповрежденным, в Адаме человек отпал от Бога, и его цель — «вернуться». Думаю, это возвращение можно мыслить и как личное, и как общее.

Отсюда сложность «рационального-рассудочного» понимания Христа как Человека и Бога. Думаю, что исповедуя Христа Богом, Церковь «сформулировала» или озвучила опыт веры, то-есть факт веры. Наверное можно попробовать построить такую цепочку: Кто обладает истинным бытием? Бог. Мы обладаем бытем в той мере, в которой Бог обитает в нас. Кто явил Бога? Христос. Но домостроительство это тоже тайна, и такая цепочка наверняка «условная».

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

# О времени
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:25:13


Время существует для того, чтобы актуализировать свободу.

# Николай Сербский — Мысли о добре и зле
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:24:44


«Духовные не бьются над вопросом: кто сотворил меня? — понимая, что никого во всей вселенной нельзя назвать Творцом всего, кроме единого Бога.»

# О физике
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:24:15


Вчера и сегодня смотрел фрагменты документального фильма про вселенную. Фильм снят по Стивену Хокингу. Мысли, которые переросли в поток сознания…

Всегда путаюсь от следующей штуки. В фильме показывается красочный космос (одна из мыслей — что эти краски — не «настоящие» в том смысле, что глазами так не увидишь). Камера перемещается в произвольную точку галактики со сверх-световой скоростью. Ну или даже в другие галактики. Есть еще такая программа, симулятор вселенной — celestia. Нажимаешь мышкой на галактику соседнюю и …уже там.

Вот это я и не могу осознать. Если скорость света это предел, и мы рассматриваем вселенную с этой точки зрения (вселенная. где это аксиома), то как можно даже мысленно представлять, а тем более моделировать такие «прыжки»?

Вот я нажимаю на галактику и оказываюсь там. Как такое представить — если это невозможно? Какой рисунок звезд я увижу? В каком времени? Какое вообще время? В тоже-самое? Что значит тоже-самое? Где? То-есть для меня эти перемещения как какой-то парадокс, который не мыслится. Не могу понять. Интересно, как запрограммирована celestia? И если физик верит в то, что скорость света это предел, но вместе с тем разум его совершает такие вот «прыжки», то не значит ли это, что физик здесь подобен идеалисту?

Похоже, Стивен Хокингс атеист. И в фильме местами (среди тех фрагментов, что я смотрел) чувствуется, и даже почти настойчиво, преобладание именно этого мировоззрения. Например, голос за кадром начинает рассуждать об антропном принципе. Сначала он удивляется тому, что вот так все совпало, что и солнце и земля и законы физики нашей вселенной такие, что появилась жизнь и потом — человек… Все в том духе, может быть Бог «настроил»? Ну а потом ответ: но представьте себе что вселенных много, и каждая из них со случайными законами физики. Ну а мы наблюдаем ту, в которой могли возникнуть только мы. Слабый антропный принцип то-есть.

Здесь я задумался. Явно же, что Хокинг о чем-то другом говорит, когда говорит о Боге. То есть для него Бог не мыслится вне вселенной или вне законов физики. Вселенная — только она СУЩЕСТВУЕТ ИСТИННО. То-есть обладает истинным бытием. Разность в понимании проявляет уже где-то на уровне слов: СУЩЕСТВУЕТ, БЫТИЕ. Для христианина самостоятельным БЫТИЕМ обладает только Бог (Яхве — Сущий) и БЫТИЕ здесь понимается как фундаментальная трансцендентность. В этом смысле вселенная получает объективность существования только в Боге. В фильме же это понятие как-то размыто до смысла — «подчиняется законам физики». То есть для физика (если он честный атеист), похоже, трансцендентны физические законы (которые, к тому же, познаваемы), и в этом его можно назвать где-то даже пантеистом. Не это ли имел в виду Эйнштейн, когда говорил, что «Бог не играет в кости»?

СУЩЕСТВУЕТ, ПРОСТРАНСТВО — сложно это все. В каком пространстве существует сознание?

Вопрос бытия можно поставить и так — что имеет объективную самостоятельную ценность? Поражающие своими размерами безжизненные (по крайней мере, в основном) просторы вселенной или сердце человеческое? И возвращаясь к мысленным межгалактическим «прыжкам» — разве человек не больше вселенной?

В фильме есть пафос человечества. Космические корабли, бороздящие просторы галактик. Перспектива увеличения жизни человека ( пригодится для межзвездных переходов!). И это вдохновляет. Но… Само-по себе это не ценно.

Что ценно? Что обладает истинной (самостоятельной) ценностью? Число живущих людей? А может, абсолютное знание? Думаю, мысль фильма в пределе (неосознанная мысль?), если нет места Богу — это желание получить абсолютную власть через абсолютное знание. Рай уже здесь — в этой вселенной. Человеческий рай. Гордая мысль.

Бог создал человека свободным настолько, что мы сами выбираем, где будет наше сердце. «Создал» — не в смысле биологической лаборатории или по Дарвину из обезьяны или… как-то по другому. Создал — это значит создал ИЗ НИЧЕГО. По-настоящему.

Как можно верить в человеческий рай? Человек пал. Мы живем в мире, который сломан. Об этом нам говорит, хотя бы совесть. И принципиально, от экспансии человека в космос, если она произойдет, человек не изменится. Тогда что же мы построим? Адам (а значит — все человечество) потерял рай через грех. И вернуть его можно, но разве через технику???…

Истина это не знание физических законов, это жажда правды и любви. Истина — то что является самоценностью. То что является истинным бытием. Это то, где твое сердце. Истина это Бог.

Христианин верит (а святые и опытно знают), что Бог есть Любовь. Чем сильнее любовь, тем больше и страдание. Так как в падшем мире все страдают, и даже животные, а Святой молится за весь мир. Но молитва и гордость не совместимы. Бог любит смиренное сердце, и Дух Святой обитает в смиренных сердцем. Господи Иисусе Христе, помилуй нас грешных!

И вот, насколько далеко от всего этого документальный фильм про вселенную, когда в нем говорится о Боге… Насколько разные: знание и Истина. Несравнимые вещи.

Думаю, что честная наука должна останавливаться на том месте, где она не может ничего сказать.

# Асимметрия добра и зла или о трансцендентности
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:23:26


8 лет назад (пишу этот текст в 2014 году), когда мне было 27 лет, я начал в очередной раз задаваться главным вопросом. Кто я? Я нашел свои записи того времени, и решил сохранить некоторые из них. Точно помню, что одной из первых мыслей, которые меня поразили – было осознание асимметричности мира. Копирую текст без изменений…

Добро и зло. Это те два слова, которые так привычны и между тем смысл которых так неуловим. Кажется, что кристально-четкое понимание этих простых на первый взгляд категорий может помочь ответить на основной заветный вопрос – “зачем”?

И все-таки, обычно именно мировоззрение определяет то, каким образом воспринимается добро и зло, и (как обычно) эта подмена понятий происходит незаметно.

Изучение результатов запроса ‘что такое добро и зло’ к поисковой системе – увлекательное занятие.

И все же…

Понятия о добре и зле не существует (не может быть применено на себя или другого субъекта) без существования сознания (свободы воли).

Понятие добра первично. (Понятие абсолютного зла неопределено. Понятие абсолютного добра существует в религии.)

Понятия о добре и зле могут восприниматься не только как форма общественных отношений, но и как отношение к миру (Богу?) в целом.

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

Хорошо, я знаю, что вы уже наверное увидели (или увидите) очередную подмену понятий. И все же… Я делаю вывод, который сам по себе, как кажется мне, вполне объективен:

Добро и зло – асимметричны…

Они асимметричны так же, как, например, асимметричны процессы, стоящие за понятиями: “созидать” и “разрушать”.

… Каждый из нас, знает он об этом или нет, хочет он того или нет, делает свой выбор и этот выбор асимметричен, хотя бы в рамках человеческого сознания. А что есть человеческий мир, как не удивительная красота вселенной, отраженная в нашем сознании?

…Так что такое трансцендентность?

# Информационные следы или отцы и дети в кибернетической утопии
std.hugeping
hugeping(ping,1) — All
2020-09-08 18:22:32


// Изначально было опубликовано 13-08-2006

Когда то они были такими же как ты. Они искали, они любили, они чувствовали, они жили. Они не знали – что такое Смерть. Они не знали – что такое Время. В их мечтательных глазах отражались кроны сосен ныряющие в кристальное небо и рваная вата облаков. Но они проиграли. Теперь они – по другую сторону.

Не верь в их опыт – они просто разучились думать. Не верь в их мир – они сами ненавидят его. Не верь им – иначе ты проиграешь…

Манифест подростка

Возможно, приход Сети означает для нас доступность информации любого рода. Возможно, с приходом Сети мы обрели наше прошлое.

Интернет появился не так давно, и пока сложно сказать каков средний срок жизни информации в сети. Да, конечно, существуют утверждения, относительно срока в 2-3 года, но… в это сложно поверить. Я начал задумываться об этих вещах, когда анализировал ответы поисковых систем на запрос по моему имени и фамилии. Я выловил сообщения 97-98 годов, когда у меня и интернета собственно еще не было… А кроме того, существование подобных https://archive.org/index.php проектов также заставляет сильно задуматься.

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

Если срок жизни информации составит хотя бы 12-13 лет, значит ли это, что наши дети получат доступ к нашему прошлому? Нашему личному прошлому. Станем ли мы понятнее для них? Станем ли мы ближе? Какими будут отцы и дети в кибернетической утопии?

# Re: Музыка и звуки
std.favorites
hugeping(ping,1) — All
2020-09-08 17:33:00

# Ленты RSS в клубе
std.favorites
hugeping(ping,1) — All
2020-09-08 17:32:59

# Спойлеры в клубе
std.favorites
hugeping(ping,1) — All
2020-09-08 17:32:59

# Что такое инстед?
std.favorites
hugeping(ping,1) — All
2020-09-08 17:32:59

Pages: 1 2 3 4 5 6