Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: laskov в Nov 14, 2022, 10:08



Титла: js хостнат другаде
Публикувано от: laskov в Nov 14, 2022, 10:08
Правя устройство за следене на температури като използвам този урок ($2). Устройството е във вътрешна мрежа и няма да се вижда отвън. За да видят графиката, обаче, уеб клиентите трябва да имат достъп до Интернет, понеже се използва js, който се намира другаде:
Код:
<script src="https://code.highcharts.com/highcharts.js"></script>
До тук добре. Нямам проблем с това.
След като експериментирах с цел коректно изобразяване на часа, нещата се получиха така:
Код:
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.13/moment-timezone-with-data-2012-2022.min.js"></script>   
<script src="https://code.highcharts.com/highcharts.js"></script>

Това работи добре. Въпросът ми е: Такава ли е практиката - ползване на скриптове от другаде и счита ли се това за добра практика?


Титла: Re: js хостнат другаде
Публикувано от: spec1a в Nov 14, 2022, 11:05
   Ами,не е добра практика.
Особено,като гледам това cloudflare.com ...

Можеш ли да контролираш къде какво има на чужди сървъри ?






П.С. Сега кашика като види cloudflare,ще почне да бълва огън и жупел.  ;D


Титла: Re: js хостнат другаде
Публикувано от: go_fire в Nov 14, 2022, 11:56
Кашика си е за кашика, Ласков си е за него. Всеки има различни потребности и виждания.

=*=

По въпроса.

Такава ли е практиката - ползване на скриптове от другаде и счита ли се това за добра практика?

Практика е. Добра ли е? Не е. Какво може да се направи? Ами въпросната машина да е виртуална или поне контейнер, че когато я праснат, а ще я праснат да не пострада нищо друго от инфраструктурата. Обаче, ако е контейнер, опастността не е премахната, просто се пестят ресурси.


Титла: Re: js хостнат другаде
Публикувано от: 4096bits в Nov 14, 2022, 12:08
На теория, можеш навсякъде да ги сложиш.

Ако нямаш място да ги качиш локално на сървъра, не мисли, дали е добра практика. Върши работа. Освен това, отвори някоя уеб страница и погледни сорс кода ѝ. JS библиотеки се линкват отвсякъде. И не виждам нищо лошо в това. Особено, ако е от страницата на разработчика им. Така отпада и необходимостта ръчно да ги обновяваш и да следиш за това, ако се окаже, че има бъгове. Както си го направил със highcharts например - https://momentjs.com/downloads/moment.js в script тага и клиента си я дърпа от тях. Не виждам защо повдигаш въпроса за едното, а не за другото  ;)

Можеш да направиш и друго. Само че не мога да ти кажа как се прави, просто защото не зная. Да погледнеш, дали не можеш да кешираш библиотеката в кеша на браузъра на клиента.


Титла: Re: js хостнат другаде
Публикувано от: spec1a в Nov 14, 2022, 12:21
   По добре да е контейнер (няколко контейнера) във виртуална машина.

   И някакво решение за възстановяване на данните във виртуалката в даден момент.
Брал съм ядове със всевъзможни докери-мокери,няма надеждно решение
за бекъп/възстановяване,това "docker commit ..." и "docker save ..." не
вършат достатъчно добра работа.


Титла: Re: js хостнат другаде
Публикувано от: go_fire в Nov 14, 2022, 12:22
Това става, но не в интернетския навигатор, а в кеширащо прокси, което му е по пътя.


Титла: Re: js хостнат другаде
Публикувано от: ray в Nov 14, 2022, 12:29
И според мен някакво прокси е най-добрия вариант.


Титла: Re: js хостнат другаде
Публикувано от: laskov в Nov 14, 2022, 14:01
На теория, можеш навсякъде да ги сложиш.

Ако нямаш място да ги качиш локално на сървъра, не мисли, дали е добра практика. Върши работа. Освен това, отвори някоя уеб страница и погледни сорс кода ѝ. JS библиотеки се линкват отвсякъде. И не виждам нищо лошо в това. Особено, ако е от страницата на разработчика им. Така отпада и необходимостта ръчно да ги обновяваш и да следиш за това, ако се окаже, че има бъгове. Както си го направил със highcharts например - https://momentjs.com/downloads/moment.js в script тага и клиента си я дърпа от тях. Не виждам защо повдигаш въпроса за едното, а не за другото  ;)

Можеш да направиш и друго. Само че не мога да ти кажа как се прави, просто защото не зная. Да погледнеш, дали не можеш да кешираш библиотеката в кеша на браузъра на клиента.
На ESP32-то наистина няма много място. Но все пак, на него мога да поставя highcharts .

Аз съм пишман админ и също такъв програмист и съображенията ми са че:
* бъдеща промяна на скритовете, направена от авторите им, може да доведе до неработеща страница при мен;
* бъдеща промяна на скритовете, направена от злодеи, може да доведе до вреди на устройства, където е заредена страницата ми;
* чрез DNS гимнастики може да се направи пренасочване към фалшиви и вредоносни js

Не виждам как контейнери, виртуални машини и проксита могат да са полезни в случая.
Единственото решение, според мен, е да си сваля скриптовете на мой сървър и да се зареждат оттам. Въпросът е, дали тези със звездичките може да се случат, дали не съм параноик и дали няма нещо, за което не съм помислил. (е то винаги има такова :)  )


Титла: Re: js хостнат другаде
Публикувано от: 4096bits в Nov 14, 2022, 14:23
Ако са ти на облака, трябва да ти разбият акаунта там, за да ти подменят библиотеките.

Имаш и трети вариант. Всичко да е изцяло в облака. Това не е някакво голямо приложение, та едва ли ще те чарджат много, ако изобщо го направят. Амазон май под оперделен трафик и обем не ти взимаха нищо, но вече не съм много сигурен, че отдавна гледах.
А към сензора само заявки за данните да се изпращат или самото устройство да изпраща на нещо слушащо в облака и там да си генерираш и графика и всичко. Ако го правиш на сървъра, отпада ти и необходимостта от js библиотеки за тази цел. От сензора само взимаш данните и си ги държиш. При заявка, генерираш графиката и я пращаш.

Аз също съм пишман програмист и уеб дизайнер още по-малко ( всичко засега е за мои си неща и по малко съм помагал тук-там ), но това са ми  разсъжденията. Предполагам, че всичко зависи, колко заявки ще имаш към това и колко ще ти е трафика. Генерирането и изпращането на графиката ти вдига малко повече трафика заради изпращането на картинка, но ако държиш js библиотеките на сървъра и ги пращаш и двете при всяка заявка, не виждам, къде е разликата. Може да се окажат и с по-голям обем.

Но пък така се обезсмисля цялото съществуване на тази машинка. Това някакви килобайти ли има за памет? Много интересно ми става. За съжаление със С++ почти никакъв ме няма.


Титла: Re: js хостнат другаде
Публикувано от: laskov в Nov 14, 2022, 15:03
Това някакви килобайти ли има за памет? Много интересно ми става. За съжаление със С++ почти никакъв ме няма.
4 MВ за файлова система, в която да поместиш index.html и каквото решиш. При нужда може да се постави microSD карта. Устройството е от Olimex: ESP32-EVB-EA-IND ($2)

Облаци не ползвам.


Титла: Re: js хостнат другаде
Публикувано от: spec1a в Nov 14, 2022, 16:28
   Добре правиш,че не ползваш публични облаци.

   Преди известно време рещих да пробвам що е то AWS.
Една от възможностите беще някаква минимална конфигурация
с безплатен пробен период.Започнах да минавам през менютата и
по едно време ми поиска ... номер на кредитна карта !
Че и още свързани с това данни ...
   Естествено,пратих ги на путката си майна,затворих браузъра и
повече не съм се занимавал с това.


Титла: Re: js хостнат другаде
Публикувано от: Naka в Nov 14, 2022, 16:43
Js се кешира подобно на html и css. Така, че все тая дали е някъде другаде. Печелиш, че няма да се грижиш дали се обновява библиотеката, някой друг ще се грижи за нея....Обаче ако объркат нещо при ъпдейтите или някой добър ден решат, че вече (компанията) я спира услугата или няма да я подържа ...губиш всичко.

Затова аз бих си ги изтелил локално на сървера скриптовете (или на някой мой подходящ адрес) и след като заработи всичко на 6 повече не бих ги барал. така поне се застраховаш от смяна на политикита на фирмата предоставяща скриптовете.

За външни скриптове...Само за несериозни неща -- като например Cookie Consent библиотеката (по EU закона за кукитата, дали сте съгласни), разните googъл скриптове, броячи и т.н. Т.е неща от които можеш да се откажеш във всеки един момент или да ги смениш с нещо друго.



Титла: Re: js хостнат другаде
Публикувано от: jet в Nov 14, 2022, 19:17
С един wget си сваляш библиотеките при теб и работиш с локални копия. Ако понякое време решиш да ги обновиш от оригинала, правиш един Гит къмит на твоето копие и припокриеш с оригинала. Ако нещо се омаже или искаш да видиш какво точно е променяно - Гит отново.


Титла: Re: js хостнат другаде
Публикувано от: 4096bits в Nov 14, 2022, 20:03
Така и не се научих да го ползвам това Git.  :)


Титла: Re: js хостнат другаде
Публикувано от: jet в Nov 15, 2022, 00:01
Git го дадох само като пример, ползвай си което VCS знаеш.

Не е голяма философия:
1) Еднократно изпълняваш
git init
2) Всеки път като направиш промени:
git add -A
git commit -a -m "коментар"

И това е.
За да не се бъхтеш да гледаш старите весрии с команден ред, инсталираш някое ГУИ (https://git-scm.com/downloads/guis), то си чете скритата директория на Гит и ти покзва миналото с картинки и боички промените и дърветата какво си творил до момента.
Има и уеб фронт енд-и.

Като натрупаш история можеш да си играеш с бранчове или да връщаш стари версии (това е голямата сила на ГИТ). Съвременните ИДЕ-та си имат интеграция с Гит.
При един бранч можеш да създаваш нови/ триеш файлове, превключването към другия бранч пък обратно трие новите / създава изтритите файлове.
Като не ти трябва повече истори - затриваш .git директорията.
Като ти нарастне апетита, четеш за още други команди.



Титла: Re: js хостнат другаде
Публикувано от: remotexx в Nov 15, 2022, 06:35
   Добре правиш,че не ползваш публични облаци.

   Преди известно време рещих да пробвам що е то AWS.
Една от възможностите беще някаква минимална конфигурация
с безплатен пробен период.Започнах да минавам през менютата и
по едно време ми поиска ... номер на кредитна карта !
Че и още свързани с това данни ...
   Естествено,пратих ги на путката си майна,затворих браузъра и
повече не съм се занимавал с това.

А пробва ли някой от конкурентите - GCP, Azure, AliBaba ... все ще се намери някой дето да не иска кредитна карта, е регистрация при тях ще искат (ел. поща поне да си откриеш при тях)

П.П. Между другото наскоро търсих нещо за в облака и се оказа че само Алибаба имаха скалируемо решение - всички други йок

SSH Tunnelling With Alibaba Cloud To Expose A Local Environment
Pouch Container
https://www.alibabacloud.com/blog/595277


Титла: Re: js хостнат другаде
Публикувано от: spec1a в Nov 15, 2022, 09:09
   Добре правиш,че не ползваш публични облаци.

   Преди известно време рещих да пробвам що е то AWS.
Една от възможностите беще някаква минимална конфигурация
с безплатен пробен период.Започнах да минавам през менютата и
по едно време ми поиска ... номер на кредитна карта !
Че и още свързани с това данни ...
   Естествено,пратих ги на путката си майна,затворих браузъра и
повече не съм се занимавал с това.

А пробва ли някой от конкурентите - GCP, Azure, AliBaba ... все ще се намери някой дето да не иска кредитна карта, е регистрация при тях ще искат (ел. поща поне да си откриеш при тях)

П.П. Между другото наскоро търсих нещо за в облака и се оказа че само Алибаба имаха скалируемо решение - всички други йок

SSH Tunnelling With Alibaba Cloud To Expose A Local Environment
Pouch Container
https://www.alibabacloud.com/blog/595277

   Странно решение си взел...
   Нали знаеш,че "Алибаба" е китайска фирма.
А ти както си проамерикански и антикитайски настроен :o

   Доколкото знам,и останалите решения предлагат известна гъвкавост.
В смисъл,можеш да си увеличиш РАМ паметта и дисковото пространство.
Eстествено,за доста повече бецален ...
Е, напълно е възможно "Алибаба" да предлага най-изгодни условия,
все пак се конкурира с "голямата тройка" -  AWS , Azure , GCP,



   По принцип винаги съм бил против публичните облаци.
Но,мога да опитам облака на Алибаба.


Титла: Re: js хостнат другаде
Публикувано от: go_fire в Nov 15, 2022, 09:40
С извинение към Ласков, че му цапам темата!

=*=

Обърка се. Jet не харесва китайчоците. Remotexx не чак да ги обожава, но много се нада на тях.

И още нещо. От голямата тройка само Лазура е… отворен. Почти няма нещо в него, което да не са публикували на Github. Другите два нямат и ред код.

Съответно нещото на Алибаба (т'ва не са ли две думи на турски език???) по типичен, китайски почин взема най-доброто и го прави свое. Големи части от този облак са също отворени.

=*=

И за да не е зян. Според мен нещата трябва да останат, както са, щом си говорим за Иеспи. Ако го излупкат, не могат да направят големи щети на остатъка от мрежата. Отначало не знаех, че си говорим за микроконтролер, затова говорех за виртуализация.


Титла: Re: js хостнат другаде
Публикувано от: laskov в Nov 15, 2022, 09:58
Явно е мислено по въпроса. Ето какъв вариант има посочен на сайта на cdnjs :
Код:
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js" integrity="sha512-CryKbMe7sjSCDPl18jtJI5DR5jtkUWxPXWaLCst6QjH8wxDexfRJic2WRmRXmstr2Y8SxDDWuBO6CQC6IE4KTA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
При мен, обаче, не заработи така. Казва ми
Цитат
None of the “sha512” hashes in the integrity attribute match the content of the subresource.
и после още грешки. Явно пропускам нещо.

...
И за да не е зян. Според мен нещата трябва да останат, както са, щом си говорим за Иеспи. Ако го излупкат, не могат да направят големи щети на остатъка от мрежата. Отначало не знаех, че си говорим за микроконтролер, затова говорех за виртуализация.

Абе хора, js кодът НЕ СЕ изпълнява на Иеспито! Той се изпълнява там, където се зареди страницата от Иеспито. Това може да е компютър с усхадуя, с Линукс или телефон с нещо си. Те могат да пострадат. А аз нямам контрол над тези устройства.


Титла: Re: js хостнат другаде
Публикувано от: go_fire в Nov 15, 2022, 10:13
В крайна сметка Хайчартс е сериозен проект. Ако му се случи нещастие, много бързо ще се разбере навсякъде и ще можеш да го спреш при теб. Като нямаш достатъчно памет на устройството, то нямаш и много варианти.

Друг вариант е да ползваш диаграмите на Гългъл. Доколкото знам (лично не съм ги ползвал), са изключително лесни за ползване. А да избабанят Гългъл не го умеят и „великите“ руснаци.


Титла: Re: js хостнат другаде
Публикувано от: laskov в Nov 15, 2022, 10:23
Трябва да се чете! ($2)   :)  [_]3


Титла: Re: js хостнат другаде
Публикувано от: laskov в Nov 15, 2022, 10:40
Оказва се, че според sha512 хешът, публикуван на сайта им излиза, че скриптът е манипулиран или неистински!
Е, аз ли съм първият, който го е забелязал? Или само аз съм решил да ползвам integrity проверка?!


Титла: Re: js хостнат другаде
Публикувано от: spec1a в Nov 15, 2022, 10:40
...
А да избабанят Гългъл не го умеят и „великите“ руснаци.
...

   Да напомня,че миналата година руснаците избабаниха не кои да е,а М$
(плюс още няколко "величия" като Соларуиндс...).
Самите М$ се отърваха леко,поради факта,че ползваха съвсем отделна
мрежа (ставаше дума за изпращане на ъпдейти).


Титла: Re: js хостнат другаде
Публикувано от: 4096bits в Nov 15, 2022, 10:52
Подкрепям идеята на @jet.

Сетих се сам, направих си хранилище, качих moments.js и може да си го ползвам директно, ако искам“

https://raw.githubusercontent.com/wavic/test/main/moment.js

След това погледнах мнението му и предлага същото човека. По-просто от това няма накъде.


Титла: Re: js хостнат другаде
Публикувано от: 4096bits в Nov 15, 2022, 14:48
Сега си мисля и за svg обаче там май ще е повечко писане.


Титла: Re: js хостнат другаде
Публикувано от: laskov в Nov 15, 2022, 15:31
И аз си мислех за варианта, който jet предложи и го направих така. Обаче, понеже git и svg не ги познавам, и понеже това, надявам се, ще е устройство, които след като го инсталирам на мястото му, няма да го препрограмирам, а и понеже не се очаква да добавям още много такива устройства, засега ще дам воля на мързела ми :)


Титла: Re: js хостнат другаде
Публикувано от: 4096bits в Nov 15, 2022, 15:54
Ами Git ти прави копие на локална директория например с някой проект и можеш да имаш контрол на версиите. Слагаш тези двата файла в някоя папка гитваш я, комитваш я и си ти. Имаш си директни линкове към библиотеките. Провери. Няма да ти е излишно. Като не те мързи де  :)


Титла: Re: js хостнат другаде
Публикувано от: jet в Nov 15, 2022, 23:25
Щом пространството ти е кът, нищо не прави с Гит.
Само един wget на дървото с кода да дойде при теб и това е. Обръщаш всички пътища в кода с локалните.


Титла: Re: js хостнат другаде
Публикувано от: 4096bits в Nov 16, 2022, 03:11
@jet, тези две библиотечки не може ли да си ги държи на компютъра и от там да ги качва в Git. А на сайта само линкове към тях.


Титла: Re: js хостнат другаде
Публикувано от: laskov в Nov 16, 2022, 09:28
Щом пространството ти е кът, нищо не прави с Гит.
Само един wget на дървото с кода да дойде при теб и това е. Обръщаш всички пътища в кода с локалните.
Сложих ги на един уеб сървър във вътрешната мрежа на който имам MRTG и разни други неща. Сега, обаче се замислих, дали някой ден ще ми се прииска страницата да се вижда отвън без VPN. Засега мисля, че не, но нали апетитът идвал с яденето ...
  ... а мога да ги сложа и на мой публичен ...