Pytanie o wybór języka programowania, który wykonuje się z przeglądarki po stronie klienta

0

Witam, po kilkunastu latach przerwy w programowaniu chciałbym do tego wrócić. Czy istnieje język programowania, który nie wymaga instalowania niczego dodatkowego na komputerze a który pozwoli z pozycji przeglądarki internetowej pobrać daną stronę, sparsować jej kod źródłowy oraz przedstawić użytkownikowi dane?
Chodzi o to aby nie obciążać tym serwera tylko komputer klienta i aby połączenie klient-strona odbywało się bezpośrednio a nie przez serwer.

0

Javascript? (Chyba że to pytanie podchwytliwe...)

0

który pozwoli z pozycji przeglądarki internetowej pobrać daną stronę

Same domain policy może się włączyć. Chyba, żeby to zrobić jako rozszerzenie do Chrome czy coś (ktoś wchodzi na dowolną stronę, wciska przycisk "do something", i się odpala kod wtyczki, który coś tam robi i ma dostęp do otworzonej strony)

0
Noozen napisał(a):

Javascript? (Chyba że to pytanie podchwytliwe...)

No właśnie -- bo jak chcesz coś wykonywać w przeglądarce, to jaki inny język (bez dodatkowych instalacji/wtyczek)?

0

To nie podchwytliwe pytanie. Wiem, że kiedyś był chyba tylko JS, ale minęło kilkanaście lat i może powstało coś jeszcze.

Zależy mi na tym aby użytkownik nie musiał niczego instalować, wchodzi na stronę i np. klika przycisk, który wykonuje zadanie - pobiera kod innej strony (przez połączenie bezpośrednie), jest on parsowany z wykorzystaniem zasobów użytkownika a następnie wynik jest wyświetlany w okienku.

Czy obecnie jest możliwe napisanie takiej aplikacji? Jeśli tak to w jakim języku? Czy JS da tu radę?

0
Gwidon Zuchwaly napisał(a):

To nie podchwytliwe pytanie. Wiem, że kiedyś był chyba tylko JS, ale minęło kilkanaście lat i może powstało coś jeszcze.

Zależy mi na tym aby użytkownik nie musiał niczego instalować, wchodzi na stronę i np. klika przycisk, który wykonuje zadanie - pobiera kod innej strony (przez połączenie bezpośrednie), jest on parsowany z wykorzystaniem zasobów użytkownika a następnie wynik jest wyświetlany w okienku.

Czy obecnie jest możliwe napisanie takiej aplikacji? Jeśli tak to w jakim języku? Czy JS da tu radę?

To co powstało, to różne biblioteki na bazie JS. Szczególnie, jeśli nie chcesz dodatkowych instalacji i jeśli chcesz zachować przenośność (żeby działało w każdej przeglądarce).

A to co opisujesz zrobić się da (raczej), ale pachnie mi jakimiś problemami z bezpieczeństwem... Nie lepiej zrobić to po stronie serwera? Hostingi coraz tańsze... :) Szczególnie, że stronę i tak musisz gdzieś postawić, nie?

0

Mam serwer dedykowany, ale jeśli to co chce stworzyć zyska na popularności to szybko jego wydajność przestanie wystarczać. Kolejny problem to musiałbym łączyć się ze stronami (w celu pobrania ich kodu) przez serwery proxy co podraża koszty a narzędzie ma być udostępnione za darmo. Także ideałem byłoby aby klient łączył się ze stroną bezpośrednio i wykorzystywał zasoby swojego urządzenia do parsowania pobranych danych. Ja wówczas oszczędzam na: serwerach proxy, zasobach serwera oraz transferze danych.

0
Gwidon Zuchwaly napisał(a):

Mam serwer dedykowany, ale jeśli to co chce stworzyć zyska na popularności to szybko jego wydajność przestanie wystarczać. Kolejny problem to musiałbym łączyć się ze stronami (w celu pobrania ich kodu) przez serwery proxy co podraża koszty a narzędzie ma być udostępnione za darmo.

Nie ma czegoś takiego jak darmowy obiad. :) Więc ktoś tak czy owak płaci.Jeśli płaci, to spodziewa się jakichś zysków (niekoniecznie materialnych). Jeśli narzędzie zyska na popularności, to czy ktoś odniesie z tego jakieś korzyści (poza użytkownikami)? Jeśli tak, to czemu nie chce zapłacić za rozwiązanie lepsze?

Także ideałem byłoby aby klient łączył się ze stroną bezpośrednio i wykorzystywał zasoby swojego urządzenia do parsowania pobranych danych. Ja wówczas oszczędzam na: serwerach proxy, zasobach serwera oraz transferze danych.

To może można pracę podzielić? Trochę zrobić u klienta (przy pomocy JS), a trochę na serwerze? Piszesz ogólnikami, więc i ja nie podam Ci dokładnego proponowanego podziału pracy, ale może warto to przemyśleć...?

1

Nie przejmuj się, że rozwiązanie się nie skaluje, jeśli nawet nie wiesz czy będzie taka potrzeba

0

Kiedyś takie coś jak np. youtube nie miało racji bytu ponieważ transfer danych w serwerowniach był bardzo drogi a internet u użytkowników zbyt wolny aby można było oglądać streamowane video. To co chcę zrobić ma rację bytu tylko jeśli większość zadań zostanie wykonana po stronie klienta. W przeciwnym wypadku trzeba będzie czekać aż zasoby serwerowe będą mocniejsze i tańsze od obecnych.
'
Wydaje mi się, że nie pisze ogólnikami, mam do wykonania następujące prace (cały czas zakładam, że użytkownik nie musi instalować żadnych dodatków):

  1. Połączenie się ze stroną internetową oraz pobranie jej kodu źródłowego (jeśli zrobię po stronie serwera to muszę wykupić serwery proxy, oraz wystąpi duże zużycie transferu danych). // z tego co się zorientowałem to nie można tego zrobić w JS, ale liczę, że ktoś nie wie, że nie można i zna jakiś sposób ;)
  2. Parsowanie tego kodu (zużycie mocy obliczeniowej).
  3. Wyświetlenie wyniku (a to już nie problem).

Teraz pytanie co mogę zrobić po stronie JS w urządzeniu klienta a co muszę po stronie serwera np. w php? Wiem, że w PHP spokojnie mogę wykonać taką aplikację, problem w tym, że jeśli to się samo nie utrzyma to nikt nie będzie do tego dopłacać.

0

@Gwidon Zuchwaly: To nadal ogólniki jednak. :) Szczególnie punkt 2, bo nie wiadomo co chcesz z tym zrobić -- ile tej mocy rzeczywiście będzie trzeba? Tak dużo na parsowanie kodu? Jakbyś przynajmniej określił w notacji O(...) jaka jest złożoność tego, co chcesz zrobić z tym kodem?

I jaki masz obecny rynek na ten swój pomysł? Bo się martwisz o klęskę urodzaju, a ogólniki nie pozwalają nam oszacować, czy to realne zmartwienie.

W każdym razie, w JS da się to wszystko. :)

I co to znaczy "jeśli to się samo nie utrzyma to nikt nie będzie do tego dopłacać"? Skoro ma się samo utrzymać, to jednak nie będzie za darmo, nie? :) Więc z czego będzie się utrzymywać?

0

@koszalek-opalek: ponieważ chcę wrócić do programowania to przyda mi się projekt, który ma chociaż 1% szansy powodzenia. Jeśli mam robić coś co się nikomu nie przyda (a nie przyda się jeśli nie będzie to mogło być darmowe w użytkowaniu) to też nie znajdę motywacji aby kolejny rok przy tym posiedzieć. Samo pisanie programów dla pisania było dobre jak miałem 12 lat, teraz aby mi się "chciało" muszę widzieć w tym potencjał.

Jeśli chodzi o rynek to praktycznie każdy internauta będzie tym zainteresowany, promować to można w sieciach społecznościowych, przez blogerów na YT itd... z resztą o ile faktycznie uda się to wykonać to mam nadzieję, że zadziała marketing wirusowy.
"Skoro ma się samo utrzymać, to jednak nie będzie za darmo, nie" - większość największych projektów - wikipedia, google, facebook, youtube itd jest "za darmo" a zarabia na reklamach, sprzedawaniu danych itp.

Odnośnie zapotrzebowania na moc obliczeniową to nie jestem w stanie tego obliczyć, póki co pomysł to tylko koncepcja. Wszystko zależy od tego ile docelowo aplikacja miałaby danych analizować - ale czym więcej danych tym lepszy efekt działania aplikacji i tym samym satysfakcji użytkownika, którą można przekuć na lajka na fb ;)

0

Ja np. nie będę tym zainteresowany, rynek się właśnie Tobie zmniejsza. Facebook jest utrzymywany z reklam, ale jednak jakoś jest utrzymywany. Jak zamierzasz utrzymywać swoją usługę?

Wow, co za zdziwienie, im więcej ludzi, tym większe zapotrzebowanie na moc obliczeniową. Gdzie te problemy O(1).

0
Gwidon Zuchwaly napisał(a):

@koszalek-opalek: ponieważ chcę wrócić do programowania to przyda mi się projekt, który ma chociaż 1% szansy powodzenia. Jeśli mam robić coś co się nikomu nie przyda (a nie przyda się jeśli nie będzie to mogło być darmowe w użytkowaniu) to też nie znajdę motywacji aby kolejny rok przy tym posiedzieć. Samo pisanie programów dla pisania było dobre jak miałem 12 lat, teraz aby mi się "chciało" muszę widzieć w tym potencjał.

Jeśli chodzi o rynek to praktycznie każdy internauta będzie tym zainteresowany, promować to można w sieciach społecznościowych, przez blogerów na YT itd... z resztą o ile faktycznie uda się to wykonać to mam nadzieję, że zadziała marketing wirusowy.
"Skoro ma się samo utrzymać, to jednak nie będzie za darmo, nie" - większość największych projektów - wikipedia, google, facebook, youtube itd jest "za darmo" a zarabia na reklamach, sprzedawaniu danych itp.

No właśnie, czy li za darmo nie jest -- utrzymuje się z reklam. Z czego ty chcesz utrzymać swój projekt?

Odnośnie zapotrzebowania na moc obliczeniową to nie jestem w stanie tego obliczyć, póki co pomysł to tylko koncepcja. Wszystko zależy od tego ile docelowo aplikacja miałaby danych analizować - ale czym więcej danych tym lepszy efekt działania aplikacji i tym samym satysfakcji użytkownika, którą można przekuć na lajka na fb ;)

No to ciężka sprawa -- jak chcesz wiedzieć, czy to w ogóle pójdzie, jak nie możesz oszacować złożoności?

0

@enedil: Nie wiesz co to będzie za aplikacja a z góry zakładasz, że nie będziesz korzystać - tym głosem nic do dyskusji nie wnosisz, no ale każdy ma prawo do nudy.
Poza tym nie zrozumiałeś tego co napisałem - nie chodzi o to że czym więcej użytkowników tym większe zapotrzebowanie na moc obliczeniową - to jest tak oczywiste, że o takich rzeczach się nie pisze. Ja na tym etapie nie wiem ile aplikacja ma danych analizować aby obsłużyć jedno zapytanie jednego użytkownika - może ich być mało i wówczas efekt jest mizerny, lub ogrom i użytkownik dostaje dane, z których będzie usatysfakcjonowany. Jednak gdzieś to trzeba mądrze wyważyć. Tak naprawdę wiele zależy od tego co uda się na komputerze użytkownika wykonać obniżając tymsamym koszty.

0

@koszalek-opalek: projekt utrzyma się z reklam pod warunkiem, że większość operacji zostanie wykonana po stronie klienta. Wówczas koszty utrzymania nie powinny być duże - podobne jak przeciętnej strony internetowej.
Nie jestem teraz w stanie oszacować potrzebnych mocy obliczeniowych ponieważ jeszcze aplikacji nie ma, jest to tylko koncepcja i dopiero w "praniu" wyjdzie ile danych trzeba przeanalizować aby uzyskać satysfakcjonujący wynik dla np. próby 10000 zapytań wraz z pomiarem satysfakcji użytkowników. Teraz to mogę sobie tylko gdybać.

Wiem co część osób może sobie myśleć - z projektu skorzysta 10 osób dziennie a on się martwi o moce obliczeniowe. Otóż problem jest taki, że wszystko musi się bilansować i jeśli powiedzmy mój koszt obsłużenia jednego zapytania to będzie 1 grosz to od reklamodawcy muszę przynajmniej ten 1 grosz dostać. W przeciwnym wypadku choćby nie wiem jak fajne narzędzie wykonać to nikomu do niczego się nie przyda bo nikt nie będzie do tego dopłacać.

0
Gwidon Zuchwaly napisał(a):

@koszalek-opalek: projekt utrzyma się z reklam pod warunkiem, że większość operacji zostanie wykonana po stronie klienta. Wówczas koszty utrzymania nie powinny być duże - podobne jak przeciętnej strony internetowej.

Nie kupuję tego. Klient będzie wg Ciebie chciał poświęcać swoją moc obliczeniową? Bo przecież, skoro ma Ci się nie opłacać robić tego po stronie serwera, to chyba jest to jakaś ciężka obliczeniowo rzecz, no ale wtedy klient odpalając to (i to jeszcze w JSie) na swojej przeglądarce będzie czekał ruski miesiąc na wynik, a komputer w tym czasie będzie bezużyteczny (bo będzie coś w tle liczył). No i jeszcze dokładając do tego wolny (być może) internet u klienta...

Nie jestem teraz w stanie oszacować potrzebnych mocy obliczeniowych ponieważ jeszcze aplikacji nie ma, jest to tylko koncepcja i dopiero w "praniu" wyjdzie ile danych trzeba przeanalizować aby uzyskać satysfakcjonujący wynik dla np. próby 10000 zapytań wraz z pomiarem satysfakcji użytkowników. Teraz to mogę sobie tylko gdybać.

Oprócz gdybania masz coś takiego jak analiza złożoności. Weź to zrób, bo sprawa jest istotna -- czy to jest O(n), czy O(n^2), czy O(2^n) [n to rozmiar danych].

Wiem co część osób może sobie myśleć - z projektu skorzysta 10 osób dziennie a on się martwi o moce obliczeniowe. Otóż problem jest taki, że wszystko musi się bilansować i jeśli powiedzmy mój koszt obsłużenia jednego zapytania to będzie 1 grosz to od reklamodawcy muszę przynajmniej ten 1 grosz dostać. W przeciwnym wypadku choćby nie wiem jak fajne narzędzie wykonać to nikomu do niczego się nie przyda bo nikt nie będzie do tego dopłacać.

Mylisz się, ludzie są w stanie płacić duże pieniądze za "fajne narzędzia". :)

0

Cóż, kolejny problem w tym rozwiązaniu - jeśli więcej danych powoduje lepsze wyniki, a Ty chcesz wykonywać obliczenia po stronie klienta, wówczas wcale nie zaoszczędzisz na łączu (bo każdemu, na żądanie będziesz musiał wysłać te dane, które będą wykorzystywane do obliczeń).

0
enedil napisał(a):

Cóż, kolejny problem w tym rozwiązaniu - jeśli więcej danych powoduje lepsze wyniki, a Ty chcesz wykonywać obliczenia po stronie klienta, wówczas wcale nie zaoszczędzisz na łączu (bo każdemu, na żądanie będziesz musiał wysłać te dane, które będą wykorzystywane do obliczeń).

To akurat chyba nie (przynajmniej teoretycznie, bo praktyki jeszcze nie ma :)), bo Autor chce chyba, żeby aplikacja u klienta sama sobie ściągała dane "skądś"... Czyli nie od niego...

0

@koszalek-opalek: wszystko nie powinno trwać dłużej niż kilkanaście sekund, ponadto użytkownik na bieżąco będzie otrzymywać dane częściowe, także nie będzie się "nudzić" ale wiadomo, że jak się to przemnoży przez 100.000 zapytań to koszt obsłużenia tego może być nieadekwatny do zysków z reklam. Aplikacja musi być darmowa aby stała się popularna, dlatego w grę nie wchodzi pobieranie jakichkolwiek opłat. To ma być coś dla mas, kolejna "możliwość" jaką daje nam internet i nowe technologie, która to będzie przydatna dla przeciętnego człowieka.
Odnośnie tego, że ludzie są w stanie płacić za fajne narzędzia to wiem coś o tym bo mam na swoim koncie komercyjne specjalistyczne oprogramowanie. Ale tu nie chodzi o sprzedaż kilkuset, czy kilku tysięcy licencji a o coś dla bardzo szerokiego grona odbiorców.

@enedil: ja żadnych danych nie muszę wysyłać to ma działać tak, że użytkownik aplikacji sam pobiera dane z serwisów internetowych. Ważne jest też to aby dane były aktualne bo te dane zmieniają się z godziny na godzinę. Także aby np. magazynować te dane na własnym serwerze i moc je aktualizować to pewnie trzebaby mieć własną serwerownie ;)

Widzę, że pojawiają się tu opinie podważające celowość stworzenia tej aplikacji co mnie dziwi bo nigdzie nie napisałem o co tak naprawdę chodzi.

0
Gwidon Zuchwaly napisał(a):

Widzę, że pojawiają się tu opinie podważające celowość stworzenia tej aplikacji co mnie dziwi bo nigdzie nie napisałem o co tak naprawdę chodzi.

Właśnie dlatego. :)

0

Generalnie szukam informacji od strony technicznej czy obecnie jest możliwość wykonania takiej aplikacji. To czy będzie miała racje bytu to się okaże jak ją napiszę. Ja wierze, że tak i to mi wystarczy.

0
Gwidon Zuchwaly napisał(a):

Generalnie szukam informacji od strony technicznej czy obecnie jest możliwość wykonania takiej aplikacji.

No to już dawno Ci pisaliśmy -- jest, JS (+biblioteki). Teraz do roboty i pokaż co Ci wychodzi! :)

0

Dasz jakiś przykład jak pobrać źródło jakiejś zewnętrznej strony w JS?

0
Gwidon Zuchwaly napisał(a):

Dasz jakiś przykład jak pobrać źródło jakiejś zewnętrznej strony w JS?

Prawy przycisk myszy na dowolnej stronie, a następnie Pokaż źródło. Zazwyczaj jak klikniesz w linki do skryptów w źródle to otworzy Ci się ten plik JS w przeglądarce.

0
lukaszek016 napisał(a):
Gwidon Zuchwaly napisał(a):

Dasz jakiś przykład jak pobrać źródło jakiejś zewnętrznej strony w JS?

Prawy przycisk myszy na dowolnej stronie, a następnie Pokaż źródło. Zazwyczaj jak klikniesz w linki do skryptów w źródle to otworzy Ci się ten plik JS w przeglądarce.

@lukaszek016: Nie, no stary, chyba nie o to chodziło... :)

A na temat, do @Gwidon Zuchwaly: Wygląda, że rzeczywiście, z przyczyn bezpieczeństwa (o czym wspominałem) takie działanie bezpośrednio z JS się nie powiedzie (przeglądarka nie będzie pozwalała na takie pobranie danych)... Trzeba użyć -- chcąc niechcąc -- jakiegoś serwera, z -- na przykład -- jednolinijkowym skryptem w PHP... Ale może ktoś mądrzejszy się wypowie...?

0

@koszalek-opalek: no właśnie o to chodzi, to nie takie proste. Zobaczymy, może ktoś pomoże.

0

Coś jak kopanie bitcoinów przy użyciu JavaScriptu? o to chodzi?

0

@WeiXiao: Nie. Tak jak pisałem ma to być dla mas, teoretycznie każdy kto korzysta regularnie z internetu powinien być tym zainteresowany. Jeśli są możliwości technologiczne aby to wykonać to nie zdziwię się jeśli z aplikacji będzie korzystało miliony osób. Uważam, że potencjał jest ogromny, choć jak zawsze w grę wchodzi kwestia możliwości technicznych, wykonania, promocji i zwykłego szczęścia.

0
Gwidon Zuchwaly napisał(a):

@WeiXiao: Nie. Tak jak pisałem ma to być dla mas, teoretycznie każdy kto korzysta regularnie z internetu powinien być tym zainteresowany. Jeśli są możliwości technologiczne aby to wykonać to nie zdziwię się jeśli z aplikacji będzie korzystało miliony osób. Uważam, że potencjał jest ogromny, choć jak zawsze w grę wchodzi kwestia możliwości technicznych, wykonania, promocji i zwykłego szczęścia.

@Gwidon Zuchwaly: Jeśli mówisz poważnie to nie zastanawiaj się nad robieniem tego czysto w prazeglądarce, tylko tak jak napisałem wyżej -- weź (na początek jakiś podstawowy) hosting, zrób jednolinijkowy proxy w PHP, a resztę w JS... I zobaczysz, co z tego wyjdzie...

https://stackoverflow.com/questions/578095/how-to-get-data-with-javascript-from-another-server

1 użytkowników online, w tym zalogowanych: 0, gości: 1