ZeroNet Blogs

Static ZeroNet blogs mirror

I host a ZeroNet node in a Raspberry Pi 2 in my home and by remote mode, all my mobile devices, including my laptop can use it.

I use the Linux Deploy app and create an independent node in my Yotaphone 2 (Android 5) and in background it can keep running for more than one day, though I always shut it down when I don't use it and only seed a dozen zites, everytime it costs 5-10 MB to update all zites, and the battery can probably last for about 8 hours if I keep surfing on ZeroNet with the eink screen.

Also I have my personal ZeroNet clearnet proxy running in a VPS. So I can securely access ZeroNet anywhere by any device.

So actually I can use 3 ZeroNet nodes at the same time with my phone :3

Btw, on the left panel of this blog there is link to ZeroNet Mobile Guide, if you didn't know it yet ;)

Screenshot:


ZeroNet-Mobile-Battery.png (0x0)

The two screenshots show the battery life usage when running ZeroNet by Linux Deploy: left one shows that after keeping using ZeroNet for more than 1 hour, there was still 65% (5 hours) battery life left. Right one shows that after keeping ZeroNet running in the background for about 2 hours, there was still 61% (17 hours) battery life left.

За прошедшие сутки было сделано следующее:


Эффекты полупрозрачности

В варианте блога BinChan боковая панель становится полупрозрачной (почти невидимой), когда открыта страница с постом блога. При наведении мыши видимость панели восстанавливается. В оригинальном ZeroBlog эффекта полупрозрачной панели нет.

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

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

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

Исправления Identicon

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

В коде предусмотрено переключение между старым и новым вариантами, но настройка еще не вынесена на страницу настроек.

Детальная информация о сборке включается в образ сайта

В целях упрощения отладки при сборке снапшотов в файл siteAddress/buildlog.txt записывается информация о сборке: идентификатор коммита, бранч, и состояние рабочей копии. Кроме того, туда выгружается git log, так что этот файл можно использовать в качестве краткого changelog-а.

Содержимое файла доступно также по адресу siteAddress/?Settings:BuildLog.

Очередное открытие при чтении исходников движка. ZeroBlog исправляет URL в гипер-ссылках, но не исправляет URL в свойстве src изображений.

what-a-twist.jpg (480x360)

Продублирую список сделанного за сегодня из TODO, поскольку сайт по ссылке еще имеет плохую доступность. Плюс немного подробностей.


  • Система настроек блога:
    • ☑ [FEATURE] Страница изменения настроек в интерфейсе сайта.
    • ☑ [FEATURE] Показ/скрытие элементов title, description, links в боковй панели.
    • ☑ [FEATURE] Показ/скрытие элемента footer.
    • ☑ [FEATURE] Показ/скрытие TOC в боковой панели.
    • ☑ [FEATURE] Показ/скрытие аватара блога в боковой панели.
    • ☑ [FEATURE] Включение/выключение поддержки тегов.
  • Стили:
    • ☑ Укомплектовать сайт полными версиями шрифтов Tinos и Roboto.

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

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

Если говорить о технической стороне, то теперь средствами движка можно выдавать страницы (виртуальные «посты» блога), содержащие заготовки виджетов наподобие:

<label class='settings-boolean' data-settings='show_toc'>Show Table of Contents</label>

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

Были добавлены настройки:

  • Содержимое левой панели сайта настраивается практически в каждом аспекте. Вы можете отключить/включить:
    • Аватарку блога.
    • Заголовок.
    • Описание под заголовком.
    • Ссылки TOC (оглавление по датам и по тегам).
    • Дополнительный текст (в котором обычно размещаются ссылки на другие сайты, вот как у меня в этом блоге).
  • Текст в footer-е также можно отключить.
  • Отключение тегов возвращает блог к look & feel оригинального ZeroBlog, если вам теги не нужны и только мусорят своим присутствием на экране.

Что касается look & feel, шаблон блога с правками BinChan имеет важное преимущество: версию для мобильных устройств. В то же время, на десктопных устройствах он выглядит несколько хуже оригинального на мой личный вкус. Я рассчитываю исправить вёрстку для полного соответствия на десктопе оригиналу.

Но перед тем, как этим заниматься, я внёс правку в самый существенную проблему внешнего вида ZeroBlog — шрифты. Теперь это полноразмерный Tinos в котором больше нет проблемы с отсутствующими русскими буквами. Roboto, использующийся в заголовках, также обновлён. Размер блога заметно подрос, но для пользовательского контента всё еще полно места в пределах дефолтных зеронетовских 10-ти мегабайт.

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

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

Для создания этой картинки используется библиотека github.com/stewartlord/identicon.js. И если вы откроете примеры генерируемых изображений, то увидите, что изображения отличаются не только паттерном, но и цветом.

А если мы походим по разным блогам, то заметим, что изображения почти не отличаются цветами.

Это баг в коде ZeroBlog.

Дело в том, что библиотека Identicon ожидает получить строку, которую можно интерпретировать как шестнадцатиричное число. Разработчик ZeroBlog не обратил внимание на эту особенность, а, может быть, она была недостаточно четко описана в документации библиотеки. В качестве строки для генерации картинки ZeroBlog передаёт в библиотеку адрес сайта без преобразований. Понятно, что шансы воспринять её как корректное число достаточно малы.

Более детально, вот что происходит:

Библитека берёт несколько последних символов строки и пытается использовать их как 16-ричное число — обозначающее тон картинки. Если этому фрагменту повезло начинаться с [0-9a-fA-F], то мы получаем на выходе число от 0 до 15. Если не повезло, то мы получаем NaN — Not a Number. Теоретически мы можем получить число больше 15, если корректные символы попадутся два или более раза подряд. Но шансы на это достаточно невысоки.

Вот пример, как это работает:

Адрес Число Результат
1MaQ4W5D6G52TpBfPACU9k9QcB1DxvHZ5v 13
1BLoGBTid3NhGu8ts3fAfHJprnbrH3wfTV NaN

Я в размышлениях, что теперь с этим делать.

Можно добавить добавить конвертирование адреса в 16-ричную запись перед вызовом Identicon, но тогда потеряется обратная совместимость создаваемых паттернов с оригинальным ZeroBlog.

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

А можно вообще забить на совместимость и использовать более крутой генератор аватарок, например этот.

Tu-160 lights

- Posted in Military@Balancer by with comments

Tu-160. World's biggest bomber.

IMG_20180506_182526.jpg (806x1213)​​​​​​​

Tu-160 light.

- Posted in Military@Balancer by with comments

Tu-160. World's biggest bomber.

IMG_20180506_182526.jpg (0x0)​​​​​​​

New blog post

- Posted in Military@Balancer by with comments

Tu-160. World's biggest bomber.

IMG_20180506_182526.jpg (0x0)​​​​​​​

The zite Mixtape developed (in progress) by Lola allows you to create and share playlists including the Cover, Title, Artist and audio file for each song.

The zite currently do not have a button to do this, but Hey! will love hacking.

You will need ZeroNet port open in order to share your Mixtape

First go to the Demo playlist, you will see an empty zite, that is becouse is not a zite. It is a Mixtape (playlist)!.

Then go to ZeroHello and locate the new Merged zite (playlist) called just Mixtape, locate the cursor over the name, and three vertical points will appear. Click this button and select the option Clone, this will create an empty playlist for you!

Clone

The new zite (playlist) will be opened, take note of the address that will look something like 15k39oW3xh8WCrG2mvgC53EcQisHLAqnox.

Address

Now the tricky part, go to the folder where ZeroNet is installed and look for the folder data, inside you will see a lot of folders with names that look like zite addresses, well that is because they are!

Zites

Find the folder with the same name as the address of the zite you just created. Inside you will see the data/users folder. Move to some backup folder the content of users.

Go back to ZeroNet and lets rename our Mixtape, click and slide to the left the 0 icon on the up right corner. Locate Title and Description and change accordingly, click on Save configuration.

On the publish section click content.json and then the button Sign and Publish, and then on data/users/content.json and again click the button Sign and Publish (You might see some errors, don't worry, is normal).

Ok, now that the Mixtape is named we need to let the zite know that we are the owners.

Go back to your file system and open the file data/users/content.json and change it to look like the following (don't copy paste!), ignore the some_code sections, the important part is the line }, and below.

{
 "address": "some_code",
 "files": {},
 "inner_path": "data/users/content.json",
 "modified": 1525634594,
 "signs": {
  "some_code": "some_code"
 },
 "user_contents": {
  "cert_signers": {
   "zeroid.bit": ["1iD5ZQJMNXu43w1qLB8sfdHVKppVMduGz"]
  },
  "permission_rules": {},
  "permissions": {
   "lola@zeroid.bit": {"max_size": 100000}
  }
 }
}

Finally where it says lola@zeroid.bit change to your own Zeroid.

Now you can go back to Mixtape, click on your Mixtape and you will see the Add button (if you don't see it something went wrong, leave here a comment).

Add

Select a cover image (the size should be 240x196), put the title, description and select the audio file (in a format playable by a web browser, .ogg). Click Submit (more errors might show up, we don't care). Note: the songs are loaded in inverted order, last song loaded will be the first to play.

And you are set! You might need to click the button Sign and Publish on your playlist zite (not the Mixtape zite) to share the changes (not sure)

And to test the zite here is the (probably) most epic Mixtape in the universe: Guardians of the Galaxy vol. 1.

GotG