Автор Тема: Web програмиране на асемблер - не е чак толкова трудно.  (Прочетена 8510 пъти)

go_fire

  • Участник
  • *****
  • Публикации: 5071
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Здрасти Джон,

Тъкмо онзи ден те споменах и ти взе, че се появи с много силно включване. Този договор за разпространение, който цитираш, май от ФСС го бяха яко оплюли. Ако е същият, ама мисля, че е той. Не ми се проверява сега, ама, ако искаш, ще проверя.

Ти твоята страница на нея ли си мигрирал? Гледам, че изглежда по-различно и коментарите са отстрани. Или просто си си човъркал собствената система.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Здрасти Джон,

Тъкмо онзи ден те споменах и ти взе, че се появи с много силно включване. Този договор за разпространение, който цитираш, май от ФСС го бяха яко оплюли. Ако е същият, ама мисля, че е той. Не ми се проверява сега, ама, ако искаш, ще проверя.

Ти твоята страница на нея ли си мигрирал? Гледам, че изглежда по-различно и коментарите са отстрани. Или просто си си човъркал собствената система.
Затова и избягах от Artistic лиценза. Преди 1..2 години реших да изчистя проблемните места и мигрирах към EUPL и стандартен BSD за където трябва.

Моята страница asm.info си е все още на MiniMagAsm, просто смених дизайна. Това е лесно - сменя се само шаблона за страниците и малко CSS файлове (сравни например със тази страница, която е със същия енджин, но с друг дизайн).

А новия енджин за който написах - AsmBB не е CMS, а е форум - там производителността и мащабируемостта са изключително важни, тъй като системата може да се ползва от много потребители не само за четене, но и за писане. Безопасността е на порядък по-добра, данните се пазят в ACID база данни (SQLite) и сървъра трябва да може да обработва голямо количество връзки едновременно.

Затова и там се използва FastCGI. (От който протокол, впрочем съм във възторг. Супер гъвкаво нещо и много удобен за поддържане именно на асемблер).

И моят сайт и демо инсталацията на форума се хостват на най-евтиния споделен хостинг на superhosting. Пиша го за да можете да оцените производителността.

Ето и една тема с 15000 поста, постнати от бот като тест. Може да се види, че времето за обработка на заявките е все още съвсем приемливо.
« Последна редакция: Юни 15, 2016, 19:41 от johnfound »
Активен

go_fire

  • Участник
  • *****
  • Публикации: 5071
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Чакай, как така СХ. Те дават само php/perl и май python. Или ти си си наел server, а не домуване?
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Чакай, как така СХ. Те дават само php/perl и май python. Или ти си си наел server, а не домуване?

Не е така. Има си и CGI и FastCGI. Не е нает сървър, а най-евтиния споделен - 5лв на месец, Супер-нещо-си-там. (на мене даже по-евтино ми излезе, защото издебнах промоция. :) )
Активен

jet

  • Участник
  • *****
  • Публикации: 1763
  • Distribution: debian sid
  • Window Manager: kde
    • Профил
Абе, то сайт може да се напише и със шел скрипт, ама къде е ползата от файдата (ха може даже и на Фортран, пък ако знае някой какво чудо е правенето на екрани в Кобол там ще е още по-култово).
С експериментална цел е ок, ама да спестиш 100 нано секунди от зареждането, а да се сгърчиш отвсякъде няма голям смисъл.
Да, сайта е супер статичен и изглежда като изваден от 1995г. и ако трябва малко да пораздвижиш сайта - например с база данни отзад и/или търсачка не дай си боже количка за пазаруване, капчи, форми, контрол на версии етц. дето са базови за един сайт и т.н. ще стане много весело.
Като proof of concept е даже много интересно.
Активен

Linux: From WTF to OMG

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Да, сайта е супер статичен и изглежда като изваден от 1995г. и ако трябва малко да пораздвижиш сайта - например с база данни отзад и/или търсачка не дай си боже количка за пазаруване, капчи, форми, контрол на версии етц. дето са базови за един сайт и т.н. ще стане много весело.
Като proof of concept е даже много интересно.

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

4096bits

  • Участник
  • *****
  • Публикации: 3039
    • Профил
Не зная, как извън упражнението, може да се хване някой да прави сайт на асемблер. По-скоро се чудя за причината за това. Асемблер се слага там, където трябва скорост на изпълнение. Сайта няма да ми зареди по-бързо, ако е направен на този език. В интернет, колко бързо ще ти зареди страницата важи почти само от преносната среда. Изключая разбира се сървъри, които обработват безумно много заявки в секунда.

Поправка. Приветствам работата ви. Сетих се, че това може чудесно да работи на платки от рода на Pi :) Ама кода на асемблер не беше ли пряко свързан с архитектурата?  :'(
« Последна редакция: Юни 16, 2016, 08:53 от 4096bits »
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Не зная, как извън упражнението, може да се хване някой да прави сайт на асемблер. По-скоро се чудя за причината за това. Асемблер се слага там, където трябва скорост на изпълнение. Сайта няма да ми зареди по-бързо, ако е направен на този език. В интернет, колко бързо ще ти зареди страницата важи почти само от преносната среда. Изключая разбира се сървъри, които обработват безумно много заявки в секунда.

Поправка. Приветствам работата ви. Сетих се, че това може чудесно да работи на платки от рода на Pi :) Ама кода на асемблер не беше ли пряко свързан с архитектурата?  :'(

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

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

А на асемблер, икономията е далеч по-голяма от двойна. Не мога да сравнявам директно, ако вярвам на данните от провайдера, консумираната памет на работещ енджин AsmBB с един потребител е примерно 1.2MB. Примерно подобни скриптове на PHP консумират 20MB. Ако някой може да цитира консумацията на памет примерно на SMF (този форум) да не се окаже и доста по-висока, заради връзките към MySQL.

Аз не мога да провеждам много сериозни тестове, но когато тествах AsmBB (най-евтиния споделен хостинг) някои момчета от bgdev.org се отзоваха и го понатовариха доста с апачи бенча и чрез постване с ботове (преди да пусна защитата от ботове, сега вече не става), но така и не можаха да го съборят - сайта си обработваше заявките без проблеми.
Активен

4096bits

  • Участник
  • *****
  • Публикации: 3039
    • Профил
Пф. Винаги ме е било страх от асемблера.  ::) А ми се е искало да поназнайвам. Така и не намерих от къде да чета нещо написано на нормален човешки език.

Както и да е. Мога ли да му кажа на сървъра да просто да листне съдържанието на директория?
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Както и да е. Мога ли да му кажа на сървъра да просто да листне съдържанието на директория?

Ако питаш за моите скриптове - то такава функционалност просто не съм писал, защото не ми е нужна.

Ако въобще за скрипт написан на асемблер - то да, разбира се, при това е сравнително просто. Използваш системните функции на Linux за да прочетеш директорията (sys_getdents) и след това формираш HTML кода както си искаш и го изпращаш на STDOUT-a (sys_write).

Има разбира се подробности но това е главното, просто трябва да имаш представа за CGI протокола (е, или FastCGI или SCGI, ако искаш да използваш тях).
Активен