Проект Sprinternet

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

По базе данных можно начать с такой вот таблицы пользовательской активности:

Code: Select all

CREATE TABLE spr_action (
     id int unsigned primary key not null auto_increment,
     op char(8),
     port smallint,
     usr char(16) not null default "unknown",
     adr char(16) not null default "127.0.0.1",
     utime int unsigned not null default 0,
     index spr_ac (op,usr,adr,utime)
) ENGINE=InnoDB;
Соответственно счётчиком посещений станет SELECT COUNT(*) FROM spr_action;

P.S. Скорее счётчиком должно быть SELECT MAX(id) FROM spr_action; т.к. активность предполагает подчищаться по мере накопления (возможно буду суммировать по месяцам и удалять детали)

P.P.S. 13 июля 2021 года заменил тип varchar на char у всех текстовых полей чтобы индексы быстрее работали
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Project SprinterNet

Post by Lavr »

Shaos wrote:А вот так может выглядеть главная страница при заходе по https://
А вот когда зарегистрированный пользователь Спринтера полезет к тебе туда по http:// -
там будет какая-то упрощенная, адаптированная под Спринтер страница?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

Lavr wrote:
Shaos wrote:А вот так может выглядеть главная страница при заходе по https://
А вот когда зарегистрированный пользователь Спринтера полезет к тебе туда по http:// -
там будет какая-то упрощенная, адаптированная под Спринтер страница?
Со Спринтера будет авторизация через программу - не через веб-страничку - т.е. Спринтер будет посылать специально сформированный запрос на HTTP-сервер и анализировать ответ.
После успешной авторизации в каждый запрос к HTTP будет добавляться sid, который вернул сервер в ответ на успешную аутентификацию, и это откроет пользователю закрытые ресурсы.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

Теперь можно лицезреть главную страничку с самодельным счётчиком :mrgreen:

https://sprinternet.io
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

Shaos wrote:Теперь можно лицезреть главную страничку с самодельным счётчиком :mrgreen:

https://sprinternet.io
За пару дней уже 300 раз страничка показалась :)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Project SprinterNet

Post by Lavr »

Shaos wrote:
Shaos wrote:Теперь можно лицезреть главную страничку с самодельным счётчиком :mrgreen:
https://sprinternet.io
За пару дней уже 300 раз страничка показалась :)
Ты уж извини, я как в том анекдоте:"А вшивый - о бане..." :wink:
Я всё к тому, что если зарегистрированный пользователь Спринтера зайдёт на ТАКУЮ страничку,
то в каком виде он её увидит на своём экране? (я вижу, что тут https://)

Меня именно этот вопрос интересует:"Что увидят зарегистрированные пользователи Спринтера в этом самом SprinterNet?"
То, что технические вопросы преодолимы - это сомнения не вызывает...
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

Lavr wrote:
Shaos wrote:
Shaos wrote:Теперь можно лицезреть главную страничку с самодельным счётчиком :mrgreen:
https://sprinternet.io
За пару дней уже 300 раз страничка показалась :)
Ты уж извини, я как в том анекдоте:"А вшивый - о бане..." :wink:
Я всё к тому, что если зарегистрированный пользователь Спринтера зайдёт на ТАКУЮ страничку,
то в каком виде он её увидит на своём экране? (я вижу, что тут https://)

Меня именно этот вопрос интересует:"Что увидят зарегистрированные пользователи Спринтера в этом самом SprinterNet?"
То, что технические вопросы преодолимы - это сомнения не вызывает...
Ну в https:// со Спринтера можно будет попасть только через шлюз (т.е. тот же самый sprinternet.io, но на порту 8080 с параметром op=https и только после успешной аутентификации средствами Спринтера) - скорее всего я поставлю там заглушку, что если Спринтер пытается через шлюз залезть на https://sprinternet.io, то его надо вывести вместо этого на главную страницу http://sprinternet.io:8080, где будет список ресурсов именно для Спринтера.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Project SprinterNet

Post by Lavr »

Shaos wrote:...если Спринтер пытается через шлюз залезть на https://sprinternet.io, то его надо вывести вместо этого на главную страницу http://sprinternet.io:8080, где будет список ресурсов именно для Спринтера.
А у Спринтера есть какой-то браузер? Или как-то иначе зарегистрированный пользователь Спринтера
увидит "список ресурсов именно для Спринтера"?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

Lavr wrote:
Shaos wrote:...если Спринтер пытается через шлюз залезть на https://sprinternet.io, то его надо вывести вместо этого на главную страницу http://sprinternet.io:8080, где будет список ресурсов именно для Спринтера.
А у Спринтера есть какой-то браузер? Или как-то иначе зарегистрированный пользователь Спринтера
увидит "список ресурсов именно для Спринтера"?
Будет :)

На http:// браузер будет ходить напрямую, а на https:// через шлюз и по предварительно разрешённому списку сайтов
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Project SprinterNet

Post by Lavr »

Shaos wrote:
Lavr wrote:А у Спринтера есть какой-то браузер? Или как-то иначе зарегистрированный пользователь Спринтера
увидит "список ресурсов именно для Спринтера"?
Будет :)
На http:// браузер будет ходить напрямую, а на https:// через шлюз и по предварительно разрешённому списку сайтов
Ты извини, что я как-бы несколько навязчив в этом вопросе, но я именно это и стремился услышать,
что ты мне, наконец, сказал.

И я как раз хочу подсказать одну мысль, которая, как мне кажется, может быть полезной...
Спринтероводов, как мы видим, не так уж и много, и вполне очевидно, что пользователей ZX Spectrum в общем-то гораздо больше. И
мы с тобой вот тут обсуждали, что ни ZX Spectrum-у, ни более мощному Спринтер-у
современный HTML в общем-то не потянуть непринуждённо

И тормоза будут, и всякие артефакты графики.

Может быть имеет смысл в этой связи поддержать
WML — язык разметки документов для использования в сотовых телефонах и других
мобильных устройствах по стандарту WAP

?

Это практически - очень упрощенный HTML, который поддерживали слабенькие сотовые телефоны безо всяких там Андроидов и прочих Яблок-ОС, и поддерживали весьма шустро! Я этим занимался в своё время, и заверяю тебя со всей ответственностью!

Если сделать поддержку WML, то, я думаю и все ZX Spectrum-ы, а уж тем более Спринтер-ы смогут серфить по сети не напрягаясь.
Для Спринтер-ов можно HTML поддержать опционно...
Твой Project SprinterNet может стать и ZX SpectrumNet и со старых мобильников по нему серфить будет можно.

Ну то есть - если заново потратить усилия на Браузер, то, может быть, с большей пользой?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

ненене - никаких вапов :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
dvarkin
Fanat
Posts: 87
Joined: 05 Jul 2020 14:08
Location: Ижевск

Re: Project SprinterNet

Post by dvarkin »

User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

dvarkin wrote:ChaosNet?
нет - зачем? тут будет обычный TCP/IP (например протокол HTTP) и UDP/IP (свой собственный протокол передачи файлов между PC и Спринтером)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

Shaos wrote:
Shaos wrote: op=unixtime - возвращает количество секунд прошедших с нуля часов 1 января 1970 года относительно сейчас либо относительно момента указанного в параметрах запроса (url-encoded param)
можно расширить ответ (попутно поменяв имя операции с unixtime на просто time) - следом за 4 байтами unixtime (8 шестнадцатиричных символов) в хексе возвращать дату и время в нулевой таймзоне (GMT): YYYYMMDDHHMMSS (7 байтов или 14 символов в BCD - т.е. всего 22 символа):

Code: Select all

<?php
$param = $_GET["param"];
if($param){
  $time = strtotime(urldecode($param));
} else {
  $time = time();
}
echo dechex($time),gmdate("YmdHis",$time);;
?>
это может оказаться полезным скажем для настройки часов Спринтера - надо будет в EEPROM сохранять таймзону и флаг летнего перевода времени ну или просто смещение от GMT, которое пользователю надо будет ручками менять 2 раза в год для стран, где летом время сдвигается:

Image
P.S. В мире существует целый ряд временных зон с "нецелым" смещением от GMT: https://www.worldtimeserver.com/learn/unusual-time-zones/
Самые странные из них:
...
As an example, at 12:00 AM in an area using Coordinated Universal Time (UTC) it is 5:30 AM in India.
...
Nepal is fifteen minutes ahead of India's time zone. That means, when it is 12:00 AM in Greenwich -- at the Prime Meridian -- it is 5:45 AM in the greater Nepal area and Kathmandu.
...
Australia : Eucla and nearby towns use UTC + 8:45.
...
The Chatham Islands -- located in New Zealand -- observe Chatham Standard Time which has a forty-five minute offset from Coordinated Universal Time. It is the only area that uses such an alteration.
The offset is labeled as UTC + 12:45 during winter months and UTC + 13:45 during summer months when Daylight Saving is active.
Соответственно в EEPROM карточки SprinterNet надо будет сохранять таймзону с шагом в 15 минут (четверть часа) - соответственно надо уметь представлять числа от -12 до +14 с шагом в 1/4 (см. https://www.timeanddate.com/time/map/) - можно умножить количество смещаемых часов (со знаком и с дробной частью) на 4 и в пределах байта это будет значение от -48 (#D0) до +56 (#38), причём например таймзона +13:45 (сейчас на островах Chatham т.к. у них там летнее время в данный момент) будет представлено как +55 (#37).
пример запуска вышеприведённого скрипта с параметром: http://shaos.net/test/time.php?param=Jun%201%2002:42:33%20PDT%202021

Code: Select all

60b6010920210601094233 
пример запуска без параметров: http://shaos.net/test/time.php

Code: Select all

602ff60820210219173152
вот пример z80 кода для перевода BCD в байт от caro:

Code: Select all

;****************************
;	a(BCD) => a(BIN) 
;	[00h..99h] -> [0..99]
;****************************
bcd2bin:
	push	bc
	ld	c,a
	and	0f0h
	srl	a
	ld	b,a
	srl	a
	srl	a
	add	a,b
	ld	b,a
	ld	a,c
	and	0fh
	add	a,b
	pop	bc
	ret
https://www.msx.org/forum/development/msx-development/bcdhex-conversion-asm

Принятые таким образом байты даты и времени можно перевести в бинарное представление и поделать над ними математику перевода таймзоны на сколько нужно часов и минут...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Project SprinterNet

Post by Shaos »

Количество посещений головной https странички перевалило за 1000 :)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net