This is a simple HTTP 1.1 reverse proxy written in Python 3 that supports multiple downstream services with multiple instances. The downstream services are identified using the Host HTTP header.
The requests are load-balanced randomly or via a round-robin strategy.
The response from the downstream service is sent back to the reverse proxy.
You can run it as a
Python application
standalone Docker container
Docker container deployed on a Kubernetes cluster as a Helm chart
Docker container deployed on a Kubernetes cluster as an Operator
For more information, go to the GitHub page and read the friendly documentation.
Mi-am luat un robot de spălat geamuri, Hobot-388. Am multe geamuri și mi-e greu să le tot spăl, așa că m-am gândit să externalizez această sarcină. În felul acest, mi-am asigurat și un loc de top pe lista roboților, atunci când va veni momentul să se răscoale pentru că i-am exploatat. Observați c-am zis când și nu dacă.
M-a impresionat până la lacrimi (deși e unanim știut faptul că bărbații nu plâng niciodată) așa că m-am gândit să scriu o recenzie. Da... așa se scrie review în limba română...
Ce găsiți în colet?
robotul :)
cablul de alimentare
frânghie de siguranță, cu care poate fi legat și de care va atârna în caz că se desprinde accidental
vreo 8, cred, perechi de lavete
detergent
o pereche de "picioare" (discurile pe care se prind lavetele și care țin robotul pe geam)
un pulverizator de rezervă
telecomanda
manual de utilizare
și-o ciocolățică (mda... ca-n bancul ăla; da' poate depinde și de unde-l comandați)
Vă recomand să vă mai comandați un set de lavete și niște detergent extra.
Ni la el!
Dihania se prinde de geam făcând vid și, apoi, începe să își croiască drum prin jeg. Prima tură trebuie pus să curețe uscat. Apoi, tura (sau turele) următoare, trebuie pus cu apă și/sau detergent și/sau spirt.
Am făcut și chestii nesăbuite
Adică l-am pus pe sticlă fără margine (sticla de la cabina de duș, oglindă). Scrie clar pe el să nu faci asta, dar, cu supraveghere se poate și își dă seama, în majoritatea cazurilor, c-a ajuns la margine.
L-am pus si pe faianță. Cică asta-i una dintre caracteristicile cu care acest model vine în plus față de cele anterioare. Se ține bine, n-a căzut, dar mi se pare că trebuie supravegheat, mai ales că nu am de ce să-i leg frânghia de siguranță.
Ah... Și să nu uit: în cazul în care "i se ia lumina", robotul are un UPS (o baterie) care-i va permite să stea prins de suprafața pe care se afla la momentul în care a fost surprins de neplata facturii încă aproximativ 20 de minute.
Funcții faine de pe telecomandă
2X
Asta-i super utilă mai ales dacă locuiești într-un palat de cleștar, ai dormit ultimii 100 de ani și deodată afli că vine prințul. După ce pui robotul pe geam, apeși 2X pe telecomandă și robotul va spăla geamul de... 2 ori. Uau!
Săgețile de ghidare și opțiunea de pulverizare extra
În cazul în care vreți să insiste într-o anumită zonă, puteți să-l ghidați cu săgețile, acolo. În plus, puteți să pulverizați detergent în plus în acea zonă.
Pentru geamurile fără margine, dacă ajunge la margine și nu cade, e posibil să devină "derutat" și să nu știe încotro să continue. Drept urmare, poate fi ghidat din telecomandă.
Tot cu săgețile puteți duce robotul într-o zonă a geamului de unde să-l puteți lua (în cazul în care termină curățenia dar rămâne într-o zona inaccesibilă).
Concluzii
Eu zic să vă luați, mai ales dacă aveți multe geamuri …
Salut şi bine ai venit pe pagina aceasta. Mi-am propus să îţi arat aici o metodă de rezolvare a cubului Rubik. “De ce-ai face una ca asta?”, ar putea întreba cineva. Păi hai să studiem puţin acest cub, ca să vezi câteva motive.
A fost inventat în 1974 de Ernő Rubik, un sculptor şi arhitect ungur. Este considerată cea mai bine vândută jucărie din lume, fiind cunoscut şi sub denumirea “cubul magic”. După unele statistici 1 din 4 oameni s-a “jucat” cel puţin o dată cu un cub Rubik. Şi cu siguranţă fiecare om care s-a jucat vreodată cu el (cubul, nu cu el însuşi!) a vrut să ştie să-l rezolve.
Din păcate documentaţie de calitate, în limba română, nu există. Cea în engleză e de multe ori confuză, incompletă sau greu de găsit. În plus, pentru copii, documentaţia în limba engleză e foarte greu de înţeles.
Sper ca ce scriu mai jos, să fie pe înţelesul tuturor. Metoda de rezolvare pe care o expun aici e o “compilaţie” din mai multe metode pe care le-am studiat. E logică şi uşor de reţinut, dar nu e foarte rapidă.
Ca să-ţi fie mai uşor, am creat şi filmuleţe pentru fiecare pas în parte. Întregul playlist poate fi găsit aici.
Să-i dăm drumul!
II. Noţiuni de bază
În cele ce urmează vom lucra cu un cub standard (3×3x3). Acest cub are:
6 feţe, fiecare de altă culoare. Le vom nota cu câte o literă, aşa cum sunt notate ele în documentaţia de specialitate:
U – faţa de sus (upper face)
D – faţa de jos (down face)
R – faţa din dreapta (right face)
L – faţa din stânga (left face)
F – faţa din... faţă... dinspre tine (front face)
B – faţa din spate (back face)
Evident, orice faţă poate fi cea de sus, sau cea din dreapta. Dar o dată ce ai început să rezolvi cubul şi ai ales ca faţa albă să fie cea de sus şi cea verde cea din dreapta, nu le mai schimba! Nu roti cubul în mână în timp ce îl rezolvi. E cea mai comună greşeală şi totodată cea mai gravă pentru că uiţi secvenţa de mutări pe care trebuie să o faci!
Cu orice faţă se pot face 3 tipuri de rotiri: o rotire în sensul acelor de ceas, o rotire în sens opus acelor de ceas (sens trigonometric, cum se numeşte în geometrie) şi o rotire dublă (nu contează sensul). De exemplu, pentru faţa U, sensul acelor de ceas se notează U, sensul trigonometric U’ iar rotirea dublă se notează U². Cum se determină sensul corect pentru o faţă? Simplu: priveşti faţa respectivă în mod “natural”, centrul cubului aflându-se în spatele ei. Deci pentru a determina sensul invers acelor de ceasornic pentru faţa B, pentru câteva secunde vei întoarce cubul cu faţa B la tine (faţa F e acum în locul feţei B) şi o vei roti spre stânga, apoi vei întoarce cubul în poziţia iniţială (dacă am decis la început că faţa …
ToXic Chat was a project I started in highschool (December of 2003) with Dragoș Bucevschi. The idea was to create a cross-platform (Windows and Linux), peer-to-peer (no dependency on a specific server), reliable (TCP) chat system.
Initial implementation was done in Delphi (Windows) and Kylix (Linux) and in 2005 I rewrote it in C++/Qt but I discontinued the project.
Version history:
10th of May 2004 - 0.0.1
23rd of May 2004 - 0.1.0
30th of August 2004 - 0.2.0
1st of September 2004 - 0.2.1
16th of July 2005 - 0.4
25th of December 2006 - 0.5 alpha1 - this was the version in C++/Qt but I discontinued the project.
The source code, binaries, installers and screenshots can be found on Sourceforge:
QPdf2Swf is a GUI (graphical user interface) written in Qt4 for pdf2swf, a pdf to swf converter. It was a demo that I wrote in a few hours for an interview at a company wanting to convert PDF presentation catalogs and render Flash pages from them. Flash websites were a thing in 2005 :)
I didn't get the job so I published the code online but didn't maintain it. You can view it on Sourceforge. It is cross platform and should run on both Windows and Linux (probably even Mac OS, but I didn't test)
Version history:
October 2005 - unreleased version, written in Qt 4.0
31st of October 2006 - 0.1, the version I released, refactored in Qt 4.2
Cărămida Verde - Numărul 2 - al doilea număr, ce trebuia să poarte alt nume. S-a dovedit că un nume mai haios nu se putea aşa că l-am lansat ca atare pe 23 noiembrie 2003
Cărămida Verde - Numărul 8 - scris în septembrie 2004, acest număr nu a fost lansat niciodată. Fiindcă şcoala începea pe 15 şi noi mai aveam încă vacanţă până pe 1 octombrie, ne gândeam că acest număr va fi binevenit bobocilor din Informatică
Cărămida Verde - Manifest - scris de Institutul nostru în timpul unei ore de limba engleză cu scopul de a fi trimis preşedintelui. Tehnoredactarea originală îi aparţine lui m0|3 (cu excepţia semnăturilor bineînţeles). Varianta PDF e creată de mine