#0 by System at 2013-12-08 02:56:06 (576 săptămâni în urmă) - [Link]
Salut. Cu cîteva luni în urmă am creat static.md. De atunci l-am trecut prin practică și îmbunătățit. Acum a ajuns la starea finală și am decis să îl prezint pe TMD.
Site-ul nu are nimic în plus, doar pagina principală cu butonul Încarcă pe ea. După încărcare primești imaginea și 3 linkuri: direct, bbcode și html. Fără alte opțiuni care să îți distragă atenția sau să pară complicat.
Dacă încarci mai multe imagini odată, se crează automat o galerie și apare link-ul ei, pe care poți să îl transmiți altei persoane.
Avem și extensie pentru Chrome, cu care poți face screenshot la un site intreg (de sus pînă jos) sau doar la partea vizibilă. După care screenshot-ul se deschide într-un tab aparte unde poți să desenezi niște notițe pe el (linii, pătrate, săgeți, text), apoi poți să îl încărci pe static.md sau să îl salvezi în calculator. Extensia mai are și o funcționalitate foarte utilă în unele cazuri: Cînd faci click dreapta în browser pe orice imagine, în meniu apare ”Încarcă imaginea”, care o deschide in tab-ul de redactare. Am vrut să facem extensie și pentru Firefox, dar s-a primit prea complicată și pentru a o face să meargă pe Firefox cred că o să trebuiască foarte mult de schimbat, așa că pînă cînd nu se preconizează așa ceva.
Prezentare Video la Extensia pentru Chrome
ÎnchideЗакрыть
Update 23.03.14: Am creat API. Update 01.12.14: API v2. Update 27.12.14: Am facut extensia pentru chrome open-source Update 05.09.15: Slider plugin nou pentru galerii. Se acepta imagini .ico Update 15.09.16: Site-ul se va închide aproximativ peste un an. Update 20.11.16: Site-ul a fost mutat pe serverul proprietarului nou. Update 29.11.16: Extensia funcționează (butonul de Upload a revenit)
#26 by System at 2014-01-26 19:39:52 (568 săptămâni în urmă) - [Link]
#23 StewieG, "... prin programa scrot o sa creez un shortcut care va executa comanda scrot cu anumite argumente ,va salva intr-un folder temporar dupa care va fi incarcat pe http://static.md shi linku va fi copiat in clipboard , idea generala ii asha ..." - cu captcha o sa trebuiasca sa faci sa apara un popup sa arate intrebarea, introduci raspunsul, apoi o sa se incarce imaginea. O sa fie ok asa?
#25 StewieG, "... sa nu fie tare multe caractere , ma gindesc ca mai mult de 4-5 caractere nu vor fi? ..." - de ex: "2 + 5 = ?", "3.1 - 2 = ?", "12 + 1.1 = ?", o sa fie ok asa?
#30 by System at 2014-03-17 16:17:23 (561 săptămâni în urmă) - [Link]
#29 moldcraft, foarte comodă : )
Mesaj util ?
Da1 puncte
#31 by System at 2014-03-22 17:54:15 (561 săptămâni în urmă) - [Link]
#27 StewieG, lucrez acum la API (am finisat captcha). Si este un task care nu prea am cunostinte ca sa il rezolv. Nu stiu bash atit de bine. Daca poti/vrei sa incerci sa il rezolvi.
#33 by flienteen ( ͡° ͜ʖ ͡°) (0 mesaje) at 2014-03-23 14:33:55 (560 săptămâni în urmă) - [Link]
#31 moldcraft, "... Nu stiu bash atit de bine ..." - îi destul de simplu) exemplu: https://gist.github.com/flienteen/9722475 exemplul e trivial, fără nici o verificare.
Mesaj util ?
Da1 puncte
#34 by System at 2014-03-23 17:10:17 (560 săptămâni în urmă) - [Link]
#37 by Feross (Power User) (0 mesaje) at 2014-07-31 13:30:36 (542 săptămâni în urmă) - [Link]
tare bun, nota 10. Extensia de la chrome nu are concurenta, am incercat multe nici una nu era asa performanta ca aceasta de la static.
Mesaj util ?
Da3 puncte
#38 by System at 2014-11-30 15:27:08 (524 săptămâni în urmă) - [Link]
Analiza API-uri wrote:
Pentru a prevenit abuzul, un API te impune sa faci careva actiuni inainte de a-l folosi sau iti pune limite.
Iata citeva metode de prevenire a abuzului pe care le stiu
Limita pe IP la numarul de requesturi
De exemplu la github de API poti sa te folosesti fara sa faci nimic (sa ai cont de exemplu), dar e limita 60 de requesturi pe ora.
Minusul la metoda asta e ca un intreg oficiu poate sta de pe acelasi router (acelasi IP).
Dar o metoda sa detectezi ca requestul a fost facut de la un anumit calculator (adica calculatorul sa aiba ca un ID unic), din pacate nu exista. Dar oricum apare aceeasi problema (ca cu router-ul din oficiu), deja pe un calculator/server poate sa ruleze mai multe servere virtuale.
ÎnchideЗакрыть
Sa iti inregistrezi o aplicatie, si folosind token-ul aplicatiei, iti pune diferite limite (pe numarul de requesturi)
Cam toate API-urile sunt asa (facebook, twitter).
Minusul la metoda asta e ca poti sa iti inregistrezi mai multe conturi si peste multe token-uri incarci cit de mult ai nevoie.
Dar nu vreau sa fac prin metoda asta, ca sa nu pun oamenii sa se inregistreze pe site, sa lase email-urile lor, nu vreau sa ii complic.
ÎnchideЗакрыть
Sa introduci captcha
Cred ca cea mai simpla si sigura metoda.
Minusul la metoda asta - e incomod pentru utilizatori sa introduca captcha pentru fiecare imagine incarcata.
Pe metoda asta functioneaza http://static.md/api/v1
ÎnchideЗакрыть
Sa astepti citeva secunde
Spui serverul ce imagine vrei sa incarci, el iti spune cit timp sa astepti pina cind o sa ai voie sa o incarci.
Minusul la metoda asta e ca poti porni concomitent mai multe incarcari, serverul la toate o sa iti spuna sa astepti citeva secunde, dar dupa ce ele trec, toate incarcarile o sa se intimple aproape in acelasi timp.
Poti sa pui limita pe IP dar apare problema cu mai multi oameni de pe acelasi router (ca in prima metoda).
ÎnchideЗакрыть
Sa folosesti puterea procesorului sa faca calcule pentru a gasi o solutie matematica + sa astepti careva timp
Ca Bitcoin mining.
In cazul cu imaginile as putea sa fac asa:
Userul trimite la server imaginea si cere problema care trebuie solutionata cu ajutoru procesorului
Serverul ii raspunde cu un token (care contine md5 al imaginii, timpul cind a fost generat, si alte date) si numarul de zero-uri care trebuie gasit
Userul incepe sa caute un numar X astfel ca hash(token + X) sa inceapa cu atitea zero-uri cite a cerut serverul
Userul incarca imaginea, token-ul si X-ul gasit
Serverul vede cit de repede userul a gasit solutia (timpul curent - timpul cind a fost generat token) si decide cite secunde userul trebuie sa astepte pina cind va putea incarca imaginea si va primi link. Daca solutia a fost gasita repede, atunci userul are calculator puternic si il pune sa astepte mai multe secunde, daca solutia a fost gasita greu, atunci userul are calculator slab, si il pune sa astepte mai putine secunde. Asta se face pentru ca indiferent de puterea calculatorului, in final la toti userii pentru a incarca o imagine o sa le ia (de exemplu) 5 secunde.
Minusul la metoda asta, e ca irosesti curent electric consumat de calculatoare si la unii useri calculatorul o sa frineze in timp ce cauta solutia.
Am creat acest plugin cu functionalitatile care simteam nevoia de mult timp. Pluginul de galerii anterior arata frumos, dar era incomod ca nu poti controla cum vrei sa iti arate imaginea.
De exemplu foarte vroiam sa vad imaginea cum arata in marimea originala. Scroll-ul acum e default de la browser, daca ceva mai usor faci scroll la o imagine mare.
Cu timpul cred ca o sa mai repar designul, de exemplu sa fie cu animatii, ca acum apare totul brusc.
Mesaj util ?
Da0 puncte
#41 by TPI (Power User) (1 mesaje) at 2014-12-05 10:06:58 (524 săptămâni în urmă) - [Link]
#40 moldcraft, foarte bună modificare, pluginul vechi blura imaginile și deobicei făceam Open Image in new tab și puteam norml să mă uit.
Mesaj util ?
Da2 puncte
#42 by flienteen ( ͡° ͜ʖ ͡°) (0 mesaje) at 2014-12-13 23:42:22 (523 săptămâni în urmă) - [Link]
#38 moldcraft, "... http://static.md/api/v2 ..." - am citit acum documentația la API-ul dat, și nu pot înțelege care e logica cu așteptarea și cu primirea token-ului și trimiterea imaginii de 2 ori.
Cum lucrează și ce ai făcut eu înțeleg, însă nu înțeleg de ce? Într-un final mai tare încurci, trafic și request în plus.
Ce te încurcă să faci mai simplu, un request cu imagine, un response cu link, atât.
Mesaj util ?
Da0 puncte
#43 by System at 2014-12-14 00:31:45 (523 săptămâni în urmă) - [Link]
#42 flienteen, stiu... asta e ca un experiment
Sa para complicat pentru un nepriceput care are de gind sa faca flood. Daca ii spun de la inceput ca doar incarci imaginea si primesti link, pare totul foarte simplu si clar, dar cind o sa vada token, asteptare, etc. o sa zica "Asta are diferite protectii, nici nu incerc sa mai fac nimic".
Pe viitor, am o idee sa folosesc totusi faza cu asteptarea mai cu sens. O sa fac un mecanism de detectare cit de incarcat e serverul si in dependenta de asta cit sa astepte. De exemplu daca serverul nu e incarcat deloc, nu astepteapta deloc (imaginea o incarca repede), daca serverul abia rasufla, ii pun sa astepte mai mult ca sa isi mai revina.
Am vrut sa fac ca in primul request, in loc de imagine sa trimiti md5 al continutului imaginii (ca defapt asta este tot de ce am nevoie pentru a genera token-ul), dar nu am reusit in javascript din blob-ul imagini sa primesc exact md5 care se genereaza in link.
Daca gasesti o solutie cum de facut md5 al continutului unei imagini care a fost selectata in input[type=upload], ca acel md5 sa fie exact md5 care se genereaza in link cind incarci imaginea pe static.md, atunci o sa fac o mica modificare in API si pull request la extensia TMD sa nu incarce de doua ori imaginea.
Mesaj util ?
Da0 puncte
#44 by System at 2014-12-14 15:49:25 (522 săptămâni în urmă) - [Link]
#45 by flienteen ( ͡° ͜ʖ ͡°) (0 mesaje) at 2014-12-14 17:14:26 (522 săptămâni în urmă) - [Link]
#43 moldcraft, mi se pare absurd tot asta, pentru că într-un final tot la trimiterea imaginii și primirea unui link ajungi, iar token-ul și md5-ul cela e doar de formă. Toate limitările și lucrurile mai complicate trebuie făcute pe server, API se face ca să atragă utilizatorii, nu să-i respingă cu tot felul de captcha/requesturi/trafic/calcule în plus, dacă nu poți oferi așa un API atunci nici nu-l mai fă public. Dacă cineva ar vrea să te floodească, nu o să-l oprească nimic.
#43 moldcraft, "... atunci o sa fac o mica modificare in API si pull request la extensia TMD sa nu incarce de doua ori imaginea ..." - pe mine nu mă deranjează în nici un fel, poți să lași cum este.
Apropo, acum am făcut request cu cURL, trimițând doar imaginea, și am primit linkul înapoi, și nici măcar nu m-am folosit de APIul care e expus.
Mesaj util ?
Da0 puncte
#46 by System at 2014-12-14 17:26:28 (522 săptămâni în urmă) - [Link]
#45 flienteen, "... Apropo, acum am făcut request cu cURL, trimițând doar imaginea, și am primit linkul înapoi, și nici măcar nu m-am folosit de APIul care e expus. ..." - Incarcarea pe site merge inca pe metoda veche/simpla (cind abia am creat site-ul si nu exista API). O sa repar in curind.
Mesaj util ?
Da0 puncte
#47 by System at 2014-12-27 13:25:54 (521 săptămâni în urmă) - [Link]