Erori de rotunjire în timpul tranziției

În Bavaria, o notă medie generală de \(2{,}33\) certifică eligibilitatea pentru Gimnaziu \(2{,}34\) nu. La această limită precisă, ordinea a două operațiuni de rotunjire poate determina de ce parte se încadrează un copil. Günther Felbinger discută potențialele consecințe ale acestui efect de rotunjire într-o postare pe blog . Din pur interes, am calculat eu însumi efectele pentru toate combinațiile de note permise în model.

.­.­.

Resetează Facebook 2FA

Din cauza unui incident, toate codurile exportate au fost șterse în timpul procesului de exportare în Google Authenticator ; salvasem codurile de recuperare pentru toate intrările, dar nu și pentru cel de Facebook . Nu aveam nevoie sau urgență, deoarece nu mai folosisem rețeaua socială de ani de zile, dar voiam să văd dacă aș putea cumva să-mi redobândesc accesul. Începutul unei odisee.

.­.­.

Cine știe așa ceva?

Uneori, o singură întrebare din emisiunea de la începutul serii (în acest caz, din partea stimatului prezentator Kai Pflaume) este suficientă pentru a transforma un final inofensiv de concurs într-o problemă minoră de optimizare. Exact asta se întâmplă la „Cine știe ce?”. Întrebare principală: Categoria este cunoscută, răspunsul nu este încă cunoscut – dar miza determină deja care rezultate sunt încă bune.

.­.­.

Scurtați corect sau incorect

Cunoștințe de bază despre fracții: Simplificarea factorilor identici este permisă. Simplificarea cifrelor identice nu este permisă. Și totuși, există fracții în care această simplificare interzisă pare să funcționeze. Merită să examinăm mai atent o familie de fracții deosebit de simplă: fracțiile în care aceeași cifră apare la sfârșitul numărătorului și la începutul numitorului.

.­.­.

Trenul silențios

Puzzle-urile de șah distractive îndulcesc viața. Puzzle-ul de astăzi: Alb la mutare, șah-mat în două. Poziția datează din 1926 de la Erich Brunner – și este interesantă tocmai pentru că nu arată deloc ca o poziție tipică cu două mișcări. Încerci șahuri directe, examinezi mutările de turn, cauți capturi de damă și, după câteva minute, realizezi: ideile evidente nu sunt răspunsul.

.­.­.

Să criptăm DomainFactory

Unele pachete de găzduire partajată cu cPanel nu oferă AutoSSL sau oferă acest serviciu doar în planurile cu prețuri mai mari. Prin urmare, nu puteți emite un certificat Let's Encrypt gratuit prin interfața cPanel, iar toate domeniile rămân blocate cu un certificat autosemnat. Browserul afișează pagina ca „nesigură”. Soluția: obțineți certificatul dvs. folosind acme.sh și instalați-l prin intermediul UAPI-ului cPanel – reînnoire automată, complet fără AutoSSL.

.­.­.

Divizibilitate

În episodul recent al emisiunii „Cine vrea să fie milionar ?”, a apărut o întrebare ingenioasă la care Günther Jauch a trebuit, evident, să se gândească: „Un număr este întotdeauna divizibil cu \(4\) fără rest dacă numărul format din ultimele sale două cifre este...?” – și exact aici trebuie să gândești matematic pentru o clipă, în loc să te lași atras de distragerile frumoase. Pentru că, deși răspunsuri precum „este par”, „conține un \(0\) sau „suma cifrelor este \(4\) ” sună plauzibil la prima vedere, răspunsul corect se află într-o proprietate simplă a sistemului nostru zecimal.

.­.­.

IA vs. Erdős

Unele probleme matematice sunt formulate atât de simplu încât pot fi explicate unui copil, însă atât de dificile încât ocupă generații întregi de matematicieni. O astfel de problemă este așa-numita problemă a distanței unitare: Plasați \(n\) puncte în plan. Câte perechi de puncte pot avea atunci o distanță de exact \(1\) ? Problema datează din vremea lui Paul Erdős și este studiată din 1946. OpenAI a publicat acum că un model intern a infirmat o conjectură de lungă durată cu privire la această problemă.

.­.­.

Cod în numere prime

În octombrie 1999, un grup condus de norvegianul Jon Lech Johansen, pe atunci în vârstă de 16 ani, a lansat programul DeCSS pentru a ocoli protecția la redarea DVD-urilor prin intermediul sistemului Content Scramble System (CSS). CSS a folosit criptare pe 40 de biți, ale cărei chei au fost distribuite producătorilor licențiați, pentru a restricționa redarea DVD-urilor. Deoarece distribuirea codului intra sub incidența DMCA din SUA și era interzisă din punct de vedere legal, activiștii au căutat modalități de a deghiza codul ca o entitate matematică.

.­.­.

ℚ nu este complet

Numerele raționale \(\mathbb{Q}\) par la prima vedere a fi un întreg continuu: între oricare două fracții, există întotdeauna o alta. Dar această impresie este înșelătoare: există mulțimi de numere raționale care sunt într-adevăr mărginite, dar al căror suprem sau infimum pur și simplu nu există în \(\mathbb{Q}\) . Motivul constă în existența numerelor iraționale precum \(\sqrt{2}\) , care, într-un fel, creează găuri invizibile în axa numerelor raționale.

.­.­.

Baruri de șefi Minecraft

PaperMC oferă o bază simplă pentru extinderea Minecraft pe server cu plugin-uri mici, fără a fi nevoie ca clienții să instaleze nimic. Atunci când se dezvoltă plugin-uri, se pune întrebarea cum să se afișeze informații dinamice jucătorului. Răspunsul constă într-o caracteristică vanilla adesea trecută cu vederea: bara de șefi . Destinată inițial șefilor din final, bara de șefi poate fi reutilizată și utilizată ca un HUD minimalist.

.­.­.

IPv6

Protocolul Internet (IP) este fundamentul tuturor aplicațiilor de pe internet. Alte protocoale, cum ar fi TCP și UDP, se bazează pe acesta, oferind la rândul lor servicii precum HTTP(S), e-mail, telefonie și DNS. IPv6 înlocuiește vechiul protocol IPv4, deoarece spațiul său de adrese relativ mic, de aproximativ 4 miliarde de adrese, a fost epuizat de mult. IPv6 este acum aproape omniprezent și mai util decât își dau seama mulți.

.­.­.

Git fără SSH

Cui nu i s-a întâmplat asta: Trebuie să descarci rapid ceva de pe un pachet de găzduire partajată ieftin (de exemplu, de la IONOS). git pull Poate doriți să rulați un program sau să utilizați o bază de date, dar furnizorul dvs. de găzduire nu vă acordă acces SSH – sau doar în cazul planurilor mai scumpe. Adesea, singura opțiune rămasă este procesul plictisitor de încărcare manuală a fișierelor prin FTP, ceea ce face ca implementările să fie inutil de complicate și predispuse la erori.

.­.­.

Amazon și taxa pe vânzări

Amazon este canalul perfect de cumpărături pentru freelanceri: rapid, accesibil și totul într-un singur loc. Amazon a reușit acum să ofere în mod constant facturi prompte și ușor disponibile pentru descărcare (chiar și pentru achizițiile de pe Marketplace). Fie că este vorba de un laptop nou, un scaun de birou sau doar o comandă rapidă de hârtie pentru imprimantă - produsele pot fi comandate cu doar câteva clicuri, de obicei prin intermediul contului personal pe care îl aveți de ani de zile.

.­.­.

starea git 2.0

Oricine este primul dimineața git status Oricine tastează și apoi bea cafea va adora acest mic ajutor. Mai ales atunci când se dezvoltă mai multe proiecte web în paralel, o imagine de ansamblu compactă este neprețuită: unde este arborele de lucru curat, unde există modificări necombinate și unde este în așteptare o operațiune de extragere/împingere? Un mic instrument shell este tot ce ai nevoie - atâta timp cât gestionează spațiile/Unicode-ul din căi în mod robust și nu se blochează cu comenzi remote blocate.

.­.­.

Limbaj și logică

Există o melodie frumoasă de Cali Rose , numită „It Is What It Is and It Ain't What Is Ain't ”. Aceasta poate fi simplificată la „It is what it is and it isn't what it isn't”. Cu doar câteva cuvinte, pot fi explorate lumi întregi de adevăr. Prin variația și combinarea celor două jumătăți, apare un mic teren de joacă pentru logică. Acum puteți lua această propoziție și găsi alte exemple interesante.

.­.­.

Automatizare Thunderbird

Thunderbird a cunoscut o renaștere remarcabilă din 2022. După ani de stagnare, Fundația Mozilla investește din nou activ în dezvoltarea sa. Inițiativa Supernova (Thunderbird 115+) a adus modernizări fundamentale, cum ar fi integrarea Rust pentru componentele critice pentru performanță, o interfață de utilizator modernizată bazată pe componente web și suport nativ Exchange prin intermediul API-ului EWS/Microsoft Graph.

.­.­.

Operatorul Walrus în PHP

În octombrie 2019, Python 3.8 a introdus operatorul Walrus (:=) prin intermediul PEP 572 – și astfel a declanșat una dintre cele mai mari controverse din istoria limbajului de programare. Dezbaterea a fost atât de aprigă încât inventatorul Python Guido van Rossum în iulie 2018 – chiar înainte de lansare – poziția sa de BDFL (Dictator binevoitor pe viațăDe la începutul anului 2019, Python a fost guvernat în schimb de un Consiliu Director ales.

.­.­.

Despre Celsius și Fahrenheit

Vorbești la telefon cu un prieten din SUA într-o zi geroasă de iarnă. „Sunt minus \(40\) de grade aici!”, exclamați amândoi simultan. În mod normal, ar fi vorba de a clarifica cine se referă la Celsius și cine la Fahrenheit - dar nu la această temperatură anume. De ce? Acest punct este singura temperatură la care scările Celsius și Fahrenheit sunt de acord!

.­.­.

Confuzie în ordinea naturală de sortare

Majoritatea managerilor de fișiere grafice nu sortează strict lexicografic, ci folosesc sortarea „naturală”. Blocurile de numere din nume sunt interpretate ca numere - blocul mai mare de numere câștigă, chiar dacă opusul ar fi valabil alfabetic. Ideea din spatele sortării naturale: Ceea ce oamenii își doresc de obicei este „9 înainte de 10”, „Capitolul 2 înainte de Capitolul 10” - fără a fi nevoie să adauge zerouri la început.

.­.­.

Prioritate în Programatorul de activități Windows

Oricine execută sarcini în Planificatorul de activități Windows va întâlni, mai devreme sau mai târziu, diferențe inexplicabile de execuție. Un script PHP care rulează în 5 minute pe linia de comandă durează brusc 20 de minute atunci când este executat prin Planificatorul de activități Windows. Același utilizator, aceleași permisiuni, același cod - de patru ori mai mult timp de execuție. Ce se întâmpla?

.­.­.

Benchmark-ul ARC-AGI

Scăderea continuă a prețului puterii de calcul — de două ordine de mărime pe deceniu — a alimentat enorm modelele de deep learning din 2010. Rețelele mai mari și mai multe date par să fi furnizat în mod fiabil scoruri din ce în ce mai mari la testele de referință comune — și au alimentat speranța că scalarea singură va duce inevitabil la AGI. Încă din 2019, François Chollet a introdus testul de referință ARC-AGI . pentru a măsura inteligența.

.­.­.

Afișează adresa de e-mail a expeditorului în Outlook

Adresa de e-mail a expeditorului rămâne un bun indicator al faptului dacă un e-mail este spam sau nu. În mod implicit, în Microsoft Outlook Desktop nu este intuitiv să adăugați o coloană care să afișeze adresa de e-mail reală în loc de nume. Microsoft nu a implementat această funcție ca o opțiune simplă până în prezent - cu toate acestea, ea poate fi adăugată la versiunea clasică Windows de Outlook folosind instrumente încorporate.

.­.­.

SSL în mediul de dezvoltare locală

În vremurile de browsere numai HTTPS, cookie-uri SameSite și condiții de dezvoltare realiste, este important să lucrați local cu certificate SSL reale. Let's Encrypt a făcut o muncă de pionierat aici – cu ajutorul certbot și Cloudflare, crearea și reînnoirea certificatelor wildcard este rapidă și ușoară. Acest lucru vă permite să accesați proiectele dvs. web criptate pe orice dispozitiv (smartphone, VM, ...) în rețeaua locală sau prin VPN.

.­.­.

Construiește-ți propriul model de limbă mare

„O mașină poate avea o memorie mare, dar nu poate gândi – dacă nu o învățăm.” – Alan Turing. Modelele moderne de inteligență artificială, cum ar fi GPT-4 sau Llama, se bazează pe seturi de date uriașe și structuri matematice complexe. Dar ce este cu adevărat în spatele ei? În acest articol, ne uităm la componentele cheie necesare pentru a construi un model de limbaj de la zero.

.­.­.

Găzduiți dvs. OpenStreetMap

OpenStreetMap (OSM) este o hartă gratuită a lumii creată în colaborare de oameni din întreaga lume – gratuită, deschisă și independentă. În timp ce Google Maps, ca lider de piață, este adesea prima alegere pentru hărțile digitale, OSM se bazează pe un principiu complet diferit: o comunitate colaborativă care colectează, îmbunătățește și pune la dispoziție datele geografice în mod gratuit.

.­.­.

Acces cu PHP la Exchange/Office 365

Anunțat de mult - acum realitate : Microsoft a dezactivat autentificarea prin parolă pentru anumite protocoale din Exchange Online din septembrie 2022 în favoarea oAuth2. Problemele GitHub ale multor biblioteci și scripturi de rezervă arată clar că schimbarea i-a surprins pe mulți administratori. Mai jos arătăm o modalitate prin care puteți continua să accesați conținutul căsuței dvs. poștale Exchange cu ajutorul oAuth2 prin PHP prin IMAP.

.­.­.

Trimite e-mailuri cu întârziere

Nu este timpul? E-mail trimis prea devreme? Întârzierea e-mailurilor poate fi utilă în multe situații: fie pentru a vă acorda timp de revizuire, fie pentru a vă gestiona în mod eficient propriul volum de muncă - sincronizarea poate fi crucială. Iată trei moduri prin care puteți întârzia trimiterea de e-mailuri și vă puteți optimiza propriile comunicări.

.­.­.

Controlați browserele cu AI

Automatizarea browserului joacă un rol important în domenii precum web scraping, testarea automată și interacțiunea cu aplicațiile web. Până acum, de exemplu , Puppeteer a fost folosit în acest scop. Odată cu apariția AI, se deschid acum noi oportunități pentru a face automatizarea browserului mai intuitivă și mai puțin intensă de întreținere - eliberați scena pentru Stagehand .

.­.­.

Depanare în PHP cu Xdebug

Xdebug este un instrument puternic de depanare și profilare pentru PHP, care ne ajută să analizăm și să optimizăm aplicațiile PHP. Acesta acceptă funcții precum depanarea pas cu pas, măsurarea performanței și urmărirea stivei, ceea ce simplifică foarte mult depanarea și oferă o perspectivă mai bună asupra codului. Următorul este un scurt ghid de configurare pentru utilizarea sa în VS Code.

.­.­.

Despre lichide

Imaginați-vă două căni identice - una umplută cu cafea și cealaltă cu lapte, ambele la același nivel. O linguriță de cafea este acum scoasă din cana de cafea în ceașca de lapte și amestecată. Apoi adăugați o linguriță din amestecul din cana de lapte înapoi în ceașca de cafea. Ce cană conține mai mult lichid străin după aceea?

.­.­.

Mesaje de confirmare Git cu ChatGPT

Mesajele de commit în Git sunt adesea neglijate. Mulți le văd doar ca pe un rău necesar pentru salvarea modificărilor. Cu toate acestea, mesajele de commit semnificative sunt un factor crucial pentru succesul unui proiect: ele asigură o bună trasabilitate a modificărilor, o colaborare eficientă în echipă și o remediere mai rapidă a erorilor. Un motiv suficient pentru a pregăti automat mesajele de commit folosind inteligența artificială.

.­.­.

Februarie dreptunghiulară

Februarie capătă uneori o formă neobișnuit de atrăgătoare în calendar. De exemplu, în februarie 2021, s-ar putea experimenta un astfel de „februarie perfect dreptunghiular”. Acest efect rar apare atunci când februarie are exact \(28\) de zile, iar 1 februarie cade într-o zi de luni. Dar cât de des se întâmplă acest lucru și cât timp trebuie să așteptăm data viitoare?

.­.­.

Centrare verticală în CSS

CSS este încă confuz pentru majoritatea dintre noi: are sute de proprietăți prost numite, fiecare dintre acestea putând afecta rezultatul în moduri neintuitive. Poziționarea verticală a elementelor în dezvoltarea web este dificilă și a provocat adesea dureri de cap în trecut. Dar din fericire acele zile s-au terminat.

.­.­.

înălțime: 0 până la înălțime: animare automată cu CSS

Tranzițiile CSS sunt o modalitate excelentă de a crea interactivitate. E de ajuns, transition la starea inițială a unui element, iar browserul animă tranziția dintre cele două stări. Tranziții pentru dimensiunile elementelor intrinseci precum auto Cu toate acestea, au fost o problemă pentru dezvoltatorii web de zeci de ani, iar singura opțiune a fost să calculeze înălțimea în mod dinamic folosind JavaScript.

.­.­.

Nu există un număr întreg între 0 și 1

Nu există \(n \in \mathbb{Z}^+\) astfel încât \(0 < n < 1\) .

.­.­.

Paradoxul liftului

În 1950, fizicienii George Gamow și Marvin Stern au observat un fenomen interesant: Gamow, care avea un birou la primul etaj al unei clădiri cu șase etaje, a observat că de cinci din șase ori următorul lift care a sosit a coborât, deși dorea. a urca. Stern, care lucra la etajul cinci, a observat contrariul.

.­.­.

Quine

Un program Quine sau Quine este un program care scoate propriul cod sursă atunci când este executat. Un Quine nu poate „păși în afara lui însuși”, de exemplu, imprimând conținutul fișierului care îl conține sau folosind abilitățile introspective pentru a-și tipări propria reprezentare. În schimb, trebuie să calculeze propriul cod sursă.

.­.­.

Rotația fișierelor cu script bash

Instrumente puternice, cum ar fi logrotate, fac munca de rotație a fișierelor de jurnal sau de rezervă mult mai ușoară. Deci fișierele sunt rotite după o anumită perioadă de timp sau când ating o anumită dimensiune. Dacă nu aveți acest instrument disponibil pe un server la distanță și puteți executa doar comenzi SSH la distanță, puteți utiliza un mic script bash care șterge fișierele vechi și face o singură solicitare.

.­.­.

Legea lui Benford

În lumea numerelor, întâlniți întotdeauna modele surprinzătoare care pot fi atât uimitoare, cât și iluminatoare. O astfel de curiozitate este Legea lui Benford, cunoscută și sub numele de Legea primei cifre. Acest fenomen matematic descrie distribuția de frecvență a primelor cifre în multe seturi de date reale și oferă perspective interesante asupra naturii numerelor așa cum apar în mediul nostru.

.­.­.

Calcul de probabilitate paradoxală

Am doi copii, un fiu care s-a născut joi. Care este probabilitatea să am o fiică? Să notăm zilele săptămânii cu numerele \(1, 2, … , 7\) unde \(1\ =\) luni, \(2 =\) marți și așa mai departe. Acum putem defini evenimentul „În ziua \(n\) s-a născut un băiat” ca \(B_n\) și analog pentru \(G_n\) .

.­.­.

Argumentul apocalipsei

Presupunând că numărul \(Y\) al tuturor persoanelor care s-au născut vreodată și se vor naște în cele din urmă este limitat, fie \(x\) poziția ta absolută de la începutul listei. Atunci \(0 < \frac{x}{Y} \leq 1\) . Putem spune acum cu o probabilitate de \(95\%\) că sunteți printre ultimii \(95\%\) dintre toți oamenii născuți vreodată, deci \(0,05 < \frac{x}{Y} \leq 1\) și deci \(Y < \frac{x}{0,05} = \frac{100 \cdot x}{5} = 20 \cdot x\) .

.­.­.

Paradoxul băutorului

Următoarea propoziție este cunoscută sub numele de „paradoxul băutorului”: „Există cineva în cârciumă, așa că dacă bea, toți cei din cârciumă beau”. Nu contează dacă acea persoană îi încurajează pe alții să bea sau există o altă ușă din spate, așa cum vom vedea într-un moment. Este un exemplu frumos din logica matematică de ordinul întâi.

.­.­.

Ghicirea numărului

Un băiat se gândește la un număr care este \(1\) , \(2\) sau \(3\) iar o fată are apoi voie să pună o singură întrebare despre acel număr. Băiatul poate răspunde doar „ Da ”, „ Nu ” sau „ Nu știu” . Printr-o intrebare inteligenta, fata reuseste sa denumeasca numarul corect la care se gandea baiatul dupa ce baiatul i-a raspuns. Care este intrebarea ta?

.­.­.

Obiect fără origine

Imaginează-ți că într-o zi primești un pachet misterios, fără adresă de retur. Curios, îl deschizi și găsești un inel, pe care i-l dai fiicei tale. Decenii mai târziu, ea este cea care poate trimite obiecte în trecut folosind o gaură de vierme. O face cu inelul pe care l-a primit odată de la tine, ambalat într-un colet adresat ție. Întrebarea este: De unde a venit inelul?

.­.­.

CI cu acțiuni GitHub

Ca alternativă la foarte apreciatul Travis CI, GitHub Actions este disponibil de ceva vreme. Ca instrument de integrare continuă, este foarte bine integrat în platforma de cod GitHub și acum rulează foarte stabil. GitHub Actions se bazează pe fișiere de configurare YAML care sunt stocate în depozitul unde urmează să fie executat fluxul de lucru.

.­.­.

Paradoxul lui Stein

În 1961, James și Stein au publicat lucrarea Estimation with Quadratic Loss . Luați date distribuite normal cu o medie necunoscută \(\mu\) și varianță \(1\) . Dacă acum alegeți o valoare aleatorie \(x\) din aceste date și trebuie să estimați media \(\mu\) pe baza acesteia, intuitiv \(x\) este o estimare rezonabilă pentru \(\mu\) (deoarece este prezentă o distribuție normală, \(x\) aleasă aleatoriu este probabil aproape \(\mu\) ).

.­.­.

UUID-uri în baze de date

UUID-uri (Identificatori de identificare unici universal) sunt valori de 128 de biți care sunt utilizate în bazele de date, printre altele, pentru a identifica în mod unic intrările din tabel. Ele sunt reprezentate ca un șir hexazecimal împărțit în cinci grupuri separate prin cratime (Exemplu: 09fe49b3-4d2b-471c-ac04-36c9e706b85f). Există numeroase Discuții despre avantajele și dezavantajele UUID-urilor în bazele de date - sunt indispensabile în sistemele distribuite.

.­.­.

Curățați istoricul Git partea 2

Date sensibile sau consum prea mare de memorie: Există motive întemeiate să doriți să schimbați istoricul Git. În această postare pe blog , am explicat cum să ștergeți fișierele din istoricul Git folosind BFG . Un punct slab al BFG este lipsa suportului pentru căile directe , așa că nu puteți elimina în mod specific fișierele sau folderele din subfoldere din istoric. Cu asta, este timpul să ne uităm la soluții alternative.

.­.­.

Limită de memorie în WordPress

tl;dr: Setați manual valorile sau valorile implicite ale WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT nu au niciun efect dacă WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT mai mică sau egală cu limita de memorie a PHP (denumită în continuare memory_limit numit) este. Sunt folosite pentru a seta valori prea mici ale memory_limit dinamic la un minim recomandat.

.­.­.

Sfat rapid: Modificați Iframe

Dacă încorporați un iframe terță parte (cum ar fi un widget), nu puteți accesa conținutul acestuia nici cu CSS, nici cu JavaScript (din cauza așa-numitei politici de aceeași origine ). Cu toate acestea, există o procedură foarte simplă pentru modificarea oricărui cod (și în alte fișiere care sunt reîncărcate în cadrul iframe). Pentru a face acest lucru, direcționați adresa URL prin propriul proxy PHP și modificați conținutul după cum doriți.

.­.­.

Monede în aplicația ANTON

ANTON este una dintre cele mai populare aplicații de învățare pentru elevii din clasele 1-10. Clasă. La prima vedere, aspectul de gamificare al achiziționării de monede („monede”) poate părea ciudat pentru adulți – dar înmulțește considerabil motivația, nu numai a copiilor mei. Salvează chiar și o mică „pernă” de monede pe care nu le atingi.

.­.­.

Despre robustețea IBAN-ului

IBAN-ul german este format din codul țării (DE), o cifră de control din două cifre (conform ISO 7064 ), codul bancar (8 cifre) și numărul contului (inclusiv numărul subcontului, 10 cifre, cifrele lipsă fiind completate cu zerouri la început), având o lungime de 22 de caractere. Pentru a calcula cifra de control, se formează mai întâi o secvență din așa-numitul BBAN (codul bancar și numărul contului), codul numeric al țării \(1314\) pentru Germania și cifra de control \(00\) .

.­.­.

Matematică în jocul Dobble

La ultima noastră seară de jocuri în familie, copiii au adus cu entuziasm jocul Dobble (ediția Harry Potter). După ce am pierdut cinci runde (fără ca cartea mea să se potrivească vizibil cu cartea de joc), am fost surprins să aflu că fiecare jucător poate găsi întotdeauna o potrivire în fiecare rundă. Cu toate acestea, neîncrederea mea a fost întâmpinată doar de mai multe runde pierdute - copiii erau pur și simplu mai rapizi.

.­.­.

Timp de blocare Bitcoin

Știți: timpul așteptat între două blocuri Bitcoin este în medie de \(10\) minute. Acum faceți o tranzacție importantă cu Bitcoin și așteptați cu nerăbdare să vedeți dacă și când apare în următorul bloc:

e50bfacc95975a4e7545d83d8954645f

.­.­.

Matematică Corona

În raportul săptămânal RKI din data de 11.11.2021 este trecut la p. 22 că \(36\%\) pacienții cu corona de peste 60 de ani din secția de terapie intensivă erau deja vaccinați complet. În această grupă de vârstă, \(87\%\) complet vaccinați în acest moment (vezi p. 18).

.­.­.

Fracții zecimale

Numerele zecimale finite se numesc fracții zecimale, deoarece sunt o reprezentare diferită pentru fracțiile cu puteri de zece la numitor. Așa este:

$$\frac{z}{n} = \frac{q_1}{1} + \frac{q_2}{10} + \dots + \frac{q_k}{10^k}$$

cu \(k \in \mathbb{N}\) și \(q_k\) \(k-1\) --lea loc la dreapta după virgulă.

.­.­.

Sfat rapid: Schimbați automat versiunea nodului

Utilizarea nvm este recomandată pentru instalarea rapidă și schimbarea versiunilor nodurilor. Dacă doriți să specificați în mod explicit versiunea de nod necesară într-un proiect, puneți un fișier numit .nvmrc cu numărul exact al versiunii (de ex. "12.10.0") în același folder cu package.json . Dacă treceți acum la folder, următoarea extensie a fișierului ~ / .bash_profile pentru bash execută comanda nvm use , care setează automat această versiune:

fe497e1c7f9f1547263eb3bffe15f9f6

.­.­.

Folosiți astăzi interogări de containere

De la apariția designului web responsiv, dezvoltatorii au cerut posibilitatea de a stiliza elementele DOM în funcție de dimensiunea lor reală, mai degrabă decât de dimensiunea viewport-ului browserului (folosind interogări media ). De fapt, interogările container (inițial interogări de elemente) sunt probabil cea mai solicitată caracteristică CSS care încă nu este disponibilă browserelor.

.­.­.

Curățați istoricul Git

Datele sensibile, cum ar fi parolele, ar trebui stocate în fișiere .env și, dacă este posibil, nu în repozitorii Git. Cu toate acestea, probabil că ni s-a întâmplat fiecăruia dintre noi cel puțin o dată din greșeală: să publicăm rapid un script API Google Maps JS în GitHub Gists (ca „public”) și, din greșeală, să nu ne ascundem propria cheie API Maps privată.

.­.­.

Decupați SVG-urile din imagini cu clip-path

Dacă doriți să decupați o imagine folosind un fișier SVG, este recomandat să utilizați proprietatea CSS `clip-path` . Următorul script elimină mai multe obstacole: fișierele SVG pot fi salvate folosind Illustrator, puteți specifica adresa URL (relativă sau absolută) a unui fișier SVG (Chrome acceptă în prezent nativ doar fișiere SVG inline), iar decuparea este, de asemenea, complet responsivă.

.­.­.

Sfat rapid: WP_Query & Câmpuri multi-linie

Folosind atributul `meta_query` din puternica clasă WordPress `WP_Query`, puteți filtra postările care au valori specifice în metacâmpurile lor. Dacă ați creat un metacâmp cu mai multe linii (de exemplu, utilizând Câmpuri personalizate avansate ) și doriți să găsiți doar postări care conțin o valoare specifică în acest câmp separat prin linii, se recomandă utilizarea lumii REGEX din MySQL.

.­.­.

Integrați animațiile Adobe Animate în mod nativ

Într-un articol anterior , am descris cum să încorporezi cu ușurință animații din Adobe Animate într-un site web folosind un export APNG. Există și metoda nativă prin exportul HTML5 Canvas , dar oricine a lucrat cu ea va ști că este plină de probleme (suport responsiv insuficient, integrare greoaie în site-urile web existente, lipsa unor rate de cadre diferite pentru fiecare animație etc.). Biblioteca adobe-animate-embed oferă o soluție.

.­.­.

Google Maps fără o cheie API

În mod normal, atunci când integrați Google Maps, lucrați cu API-ul JavaScript Maps , care necesită o cheie API și poate cauza costuri care nu ar trebui subestimate cu numere de acces mai mari. Există alternative excelente, cum ar fi mapbox sau OpenStreetMap , dar acestea nu realizează încă varietatea de caracteristici oferite de Google. Google în sine oferă, de asemenea, o cale fără o cheie API prin intermediul funcției de partajare, pe care o putem folosi în scopurile noastre.

.­.­.

Adobe Animate APNG Export

Suportul browserului pentru fișierele PNG animate este acum atât de avansat încât animațiile create cu Animate CC pot fi exportate cu ușurință ca APNG și apoi încorporate într-o pagină web folosind o simplă etichetă `<img>`. Aceasta oferă o alternativă simplă și de înaltă calitate la metoda de publicare din Animate CC, care generează JavaScript. Pașii necesari sunt descriși mai jos.

.­.­.

Extindeți căutarea WordPress

Dacă doriți să extindeți căutarea nativă WordPress pentru a include metacâmpuri, de exemplu, este recomandabil să verificați filtrele declanșate. Pentru a vă asigura că paginarea continuă să funcționeze și că îmbunătățirile viitoare ale căutării nu sunt compromise, se recomandă hook-ul `posts_search` . Următorul cod, utilizând funcțiile REGEXP și ExtractValue , extinde această căutare pentru a include postări care conțin unul dintre termenii de căutare introduși în toate metacâmpurile.

.­.­.

Calculul indicelui de vizibilitate SISTRIX

Alături de Xovi, instrumentul SISTRIX este cel mai utilizat program de analiză din Germania în domeniul SEO. Indicele de vizibilitate s-a impus ca un cvasi-standard pentru vizibilitatea unei pagini în căutarea Google. Parametrii care sunt incluși în calculul său sunt, de exemplu , explicați aici și aici și aici și aici și aici , dar o formulă de calcul exactă nu este publicată oficial. Următoarele sunt rezultatele cercetării mele personale de șase luni, care nu pretind a fi complete sau corecte.

.­.­.

Capodopera lui Godel

Când Kurt Gödel și-a publicat faimoasele Teoreme ale incompletitudinii în 1931, a zguduit bazele logicii matematice: El a respins că toate axiomele care pot fi stabilite ca o bază posibilă sunt inevitabil incomplete pentru a demonstra toate afirmațiile despre numere - și a distrus Visul lui Hilbert de a demonstra consistența teoriei matematice.

.­.­.

Utilizați WhatsApp prin API

În ciuda tuturor preocupărilor legate de confidențialitatea datelor, WhatsApp rămâne aplicația de mesagerie preferată a Germaniei. Pe lângă aplicația dedicată WhatsApp Business, Facebook a creat și o interfață oficială, WhatsApp Business API, pentru a o face mai atractivă pentru companii. Cu toate acestea, dacă doriți să trimiteți mesaje WhatsApp programatic din aplicația web, există și alte opțiuni disponibile.

.­.­.

Încețoșați pagina din spatele suprapunerii folosind CSS

Dacă utilizați elemente precum suprapuneri (care este regula în acționismul GDPR) și doriți să înmuiați zona din spatele suprapunerii, de exemplu, întâlniți adesea problema contextului de stivuire . De exemplu, dacă aveți elemente poziționate absolut sau într-o poziție fixă, acestea sunt afișate brusc diferit decât fără un filtru aplicat. Dar există un remediu.

.­.­.

Sfat rapid: Split Testing cu Apache

Nu aveți nevoie de un instrument puternic precum Google Optimize pentru teste simple de divizare a URL-urilor; puteți implementa, de asemenea, un test divizat cu Apache folosind .htaccess. Următorul fragment de cod distribuie vizitatorii de pe cele două pagini https://vielhuber.de/test1.php (Varianta 1) și https://vielhuber.de/test2.php (Varianta 2) în mod egal între ambele versiuni. Randomizarea se bazează pe ora curentă a serverului.

.­.­.

Despre notarea funcțiilor ramificate

Parantezele cretate sunt utilizate în notația definițiilor funcției cu distincție de majuscule. Urmărim întrebarea simplă dacă această reprezentare poate fi, de asemenea, eliminată și funcția poate fi redusă la o notație fără ea. De exemplu, funcția

$$f: \mathbb{R} \to \mathbb{R}, f(x) = \left\{\begin{matrix} 42, & \text{falls } x = 0 \\ x, & \text{sonst} \end{matrix}\right.$$

cu ajutorul celor patru operații aritmetice de bază folosind un termen cu o singură linie?

.­.­.

Seria de date în Foi de calcul Google

Când vizualizați date în Foi de calcul Google, întâmpinați problema că axa \(x\) pentru valorile textului (cum ar fi săptămânile calendaristice) nu poate completa automat golurile lipsă. Pentru a rezolva problema, se generează o serie continuă de date, se numără celulele care apar și apoi se vizualizează sumele cumulative.

.­.­.

Sfat rapid: PHP clearstatcache

Gaseste greseala:

72aaa2dbd201d49fc2ee429ebf68f15b

.­.­.

Google Translation API Hacking

Ca parte a Google Cloud, Google oferă API-ul Traducere Google cu o structură de costuri bazată pe utilizare. Există, de asemenea, un API nedocumentat care poate fi utilizat fără cheie , dar care refuză să funcționeze după doar câteva cereri. Atunci când utilizați funcția de traducere a site - ului web Google Chrome, se remarcă faptul că paginile pot fi traduse în calitate foarte bună, fără o limitare vizibilă.

.­.­.

Sfat rapid: etichetare automată Git

Când se conectează GitHub cu Composer , atribuirea unui număr de versiune prin intermediul `git tag` este obligatorie. Următoarea comandă din linia de comandă determină eticheta curentă și o incrementează (conform SemVer ) cu un număr de versiune. De exemplu, versiunea 1.1.0 urmează după 1.0.9. Dacă nu este atribuită nicio etichetă, versiunea este etichetată automat cu 1.0.0. Instrumente precum flimsy sau ` git hooks` scurtează acest proces îndelungat de etichetare.

8cd852c96ec1e60e8a5ac1f3614b2397

.­.­.

Editați declanșatorul MySQL

Din păcate, MySQL nu oferă o funcție ALTER TRIGGER. Pentru a edita un declanșator existent, trebuie mai întâi să îl ștergeți și apoi să îl regenerați. Instrucțiunea CREATE TRIGGER poate fi accesată indirect prin intermediul information_schema . Aceasta ne permite să modificăm declanșatoarele indirect. Pentru a face acest lucru, efectuați modificările în rezultatul următoarei comenzi SELECT (după modificarea numelor bazei de date și ale declanșatoarelor) și executați interogarea.

.­.­.

Declanșați evenimentele de schimbare în VanillaJS

VanillaJS a fost la egalitate cu veteranul jQuery în aproape toate domeniile de la ES6 și este acum mult superior. Deci merită să migrezi treptat codul vechi departe de jQuery. Cu toate acestea, trebuie să aveți grijă atunci când declanșați evenimente de schimbare manuală. De exemplu, document.addEventListener nu se declanșează pe jQuery.change () . Următoarea prezentare generală rezumă caracteristicile speciale.

.­.­.

Controlați cookie-urile cu PHP și JS

Setarea cookie-urilor prin scripturi personalizate sau terțe poate fi controlată fin folosind atât PHP, cât și JavaScript. Deși aceasta nu este o soluție suficientă pentru implementarea soluțiilor privind cookie-urile după decizia instanței împotriva Planet49 (unde este crucial ca instrumentele de urmărire precum Google Analytics să nu urmărească datele în primul rând și, prin urmare, să nu seteze cookie-uri), poate fi utilă, în general, includerea cookie-urilor pe lista albă/neagră.

.­.­.

Dezactivați dispozitivele prin script în Windows

Pentru a economisi energie electrică sau a reduce paranoia de monitorizare, este recomandabil să deconectați complet dispozitivele care nu sunt utilizate pe propriul computer. Dispozitive precum casete de sunet sau camere web pot fi dezactivate / activate în mod clasic prin intermediul managerului de dispozitive. Întregul lucru funcționează și prin script. Modul standard de a face acest lucru a fost devcon . Windows 10 oferă acum o modalitate mai convenabilă de a face acest lucru prin PowerShell .

.­.­.

Skype Background Blur

Skype are o funcție drăguță, oarecum ascunsă: în cazul transmisiilor video, fundalul poate fi estompat automat făcând clic pe butonul video și pe funcția „ Estompează fundalul meu ”. Cu ajutorul inteligenței artificiale, acest lucru funcționează cu orice cameră chiar și fără informații de profunzime. Totul pare apoi mai profesionist și dispare lucrurile private sau neimportante în fundal.

.­.­.

OPcache Optimizare pornire PHP

De exemplu, pentru site-urile web bazate pe WordPress , Joomla sau Laravel și care nu au conținut specific utilizatorului, este recomandabil să păstrați toate paginile într-o memorie cache HTML statică și să regenerați memoria cache numai manual (sau automat) dacă există o modificare a backend-ului. Cu toate acestea, dacă pagina conține conținut dinamic care depinde de sesiuni și cookie-uri sau, de asemenea, de limbă și locație, OPcache este potrivit .

.­.­.

Export SVG din Illustrator

SVG-urile joacă un rol central în web-ul de astăzi. Nu numai că au înlocuit fonturile de pictograme, dar oferă și posibilitatea manipulării prin CSS sau JavaScript. Dacă doriți să salvați o grafică vectorială pentru web de la Adobe Illustrator ca SVG, trebuie să faceți câteva setări pentru a evita capcanele și a reduce timpul de încărcare, pe care le voi prezenta în articolul următor.

.­.­.

Project Euler: Căi de rețea

Proiectul Euler este o serie de probleme de programare interesante, adesea cu un fundal matematic. Problemele sunt adesea concepute pentru a necesita dezvoltarea unor algoritmi sofisticați pentru a atinge obiectivul într-un interval de timp rezonabil. Astăzi vom rezolva Problema 15: Căi de rețea , care poate fi rezolvată folosind metode combinatorii simple.

.­.­.

Actualizări automate WordPress

Încă de la versiunea 3.7, WordPress a implementat nativ actualizări în fundal și le-a activat automat pentru versiunile minore. Filtrele vă permit să controlați mai precis ce se actualizează automat. O instalare permanentă, complet automată, a tuturor actualizărilor minore, majore, ale pluginurilor, temelor și traducerilor nu este acceptată, dar poate fi realizată cu ușurință prin alte mijloace.

.­.­.

Foi de calcul Google: formule extinse

Pentru a extinde formulele la coloane întregi din Foi de calcul Google, recomandăm să folosiți funcția utilă ARRAYFORMULA . Din păcate, acest lucru nu funcționează în combinație cu alte funcții importante, cum ar fi QUERY sau INDIRECT , motiv pentru care există o programare individuală completă a logicii utilizând Google Apps Script sau, alternativ, copierea manuală a formulei până la ultima linie.

.­.­.

Paradoxul Simpson

Paradoxul Simpson este unul dintre fenomenele ușor de înțeles și în același timp uimitoare din statistici. Apare ori de câte ori grupurile de date arată o anumită tendință, dar această tendință este inversată atunci când grupurile sunt combinate. Cu ajutorul unui exemplu simplu, paradoxul poate fi înțeles imediat.

.­.­.

Sfat rapid: Google Tag Manager

Managerul de etichete Google s- a impus ca standard de facto pentru integrarea scripturilor de urmărire. Pe de o parte, acest lucru separă în mod clar responsabilitățile (marketing online vs. programare) și, pe de altă parte, puteți configura și modifica rapid urmărirea printr-un canal de implementare suplimentar. Iată două mici sfaturi pentru configurarea declanșatoarelor.

.­.­.

Sfat rapid: hotspot WLAN FRITZ! Box

De la FRITZ! OS 07.10 în continuare, dacă internetul eșuează, FRITZ! Box poate utiliza temporar hotspot-ul wireless al unui telefon mobil ca rezervă. Funcția este ascunsă sub Internet> Date de acces> Furnizor de Internet> Acces existent prin WLAN . FRITZ! Box funcționează apoi ca un router în sine și oferă o rețea cu propria gamă de adrese. Când Internetul este disponibil din nou, pur și simplu resetați setarea. De asemenea, a trebuit să verific opțiunile WLAN> Rețea radio> 2,4 GHz bandă de frecvență activă și Internet> Acces date> IPv6> Suport IPv6 activ .

.­.­.

Floarea Vieții

Floarea Vieții este un model geometric binecunoscut, asemănător unei flori, care a apărut în temple, manuscrise și, mai recent, în cultura populară timp de mii de ani. Modelul joacă, de asemenea, un rol în ezoterism. Vom ignora toate acestea aici și ne vom concentra pe construcția simplă a formei geometrice, care constă din mai multe cercuri suprapuse, distanțate uniform.

.­.­.

E-mail de întârziere în Outlook

În ciuda tuturor profețiilor despre condamnare în jurul Slack și Discord, mediul de comunicare asincron e-mail este mediul de comunicare dominant în sectorul de afaceri la nivel mondial. Pe lângă Inbox Zero de la Merlin Mann, există numeroase alte strategii pentru a face față fluxului zilnic de e-mailuri, inclusiv așa-numita întârziere a e-mailurilor, adică livrarea întârziată a e-mailurilor.

.­.­.

O spirală de numere

În ultimele zile, am studiat următoarea întrebare pe StackExchange despre o spirală de numere întregi. Căutăm o formulă închisă pentru coordonatele elementului \(n\) -th din următoarea spirală întreagă, care se extinde de la origine la exterior și tot mai departe în infinit:

..  9 10 11 12
23  8  1  2 13
22  7  0  3 14
21  6  5  4 15
20 19 18 17 16
.­.­.

Drepturi de citire în Foi de calcul Google

Când lucrați cu Foi de calcul Google, puteți defini reguli granulare, bazate pe utilizator, pentru editarea foilor de calcul, a coloanelor și a rândurilor dintr-o foaie de calcul. Din păcate, nu există nicio modalitate de a restricționa accesul la citire. Acest lucru ar fi foarte util în multe scenarii, de exemplu, pentru a le afișa clienților dvs. doar tichetele relevante pentru ei sau angajaților dvs. doar proiectele la care lucrează.

.­.­.

Fire plug'n'play

npm este managerul standard de pachete pentru Node.js. Cu toate acestea, Facebook dezvoltă de ceva vreme o soluție alternativă de gestionare a pachetelor numită Yarn . Se pare că Yarn dispare încet din fișierul README al GitHub ca soluție implicită, iar statisticile de pe site-ul oficial arată că doar o mică parte din instalările de pachete sunt efectuate cu Yarn. Cu toate acestea, merită să aruncăm o privire dincolo de evident.

.­.­.

Convertiți PDF în LaTeX


Sistemul de tipografiere \(\TeX\) fost dezvoltat în 1977 de legendarul Donald E. Knuth . Pachetul software \(\LaTeX\) face încă parte din repertoriul standard atunci când se creează lucrări științifice. Cu următoarele două instrumente, PDF-urile deja generate și notele scrise de mână pot fi convertite complet automat în TeX. Rezultatele sunt foarte promițătoare.

.­.­.

Argumentul de simulare

Argumentul de simulare al lui Nick Bostrom este impresionant de simplu și clar. Nu încearcă să demonstreze că trăim într-o simulare, ci formulează elegant trei posibilități, dintre care una trebuie să fie adevărată. Elon Musk susține, de asemenea , o teză similară, care a făcut cunoscută ideea unui public larg. Oficial Lucrarea are o vechime de peste 14 ani și la fel de multe pagini sunt scurte. Afirmația centrală este ușor de înțeles și compactă.

.­.­.

Eroare critică la utilizarea WPML + ACF

Pluginurile puternice WPML pentru multilingvism și Câmpurile personalizate avansate pentru câmpurile proprii sunt echipamente standard în multe instalații. Este enervant atunci când apar defecțiuni și pierderi de date în combinație. Rapoartele de erori despre acest subiect sunt vechi de câțiva ani și fără răspuns ( aici și aici și aici și aici și aici ). Tocmai am aruncat o privire mai atentă asupra problemei.

.­.­.

Încărcare fișier în browserul Facebook In App

Pe unele telefoane Android, atât browserele din aplicațiile Facebook, cât și Instagram (începând de astăzi) funcționează defectuos atunci când un câmp de încărcare dintr-o pagină de destinație promovată sau linkată are atributul „accept”. Acest lucru face ca butonul să fie nefuncțional. Deschiderea paginii într-un browser extern obișnuit, în afara aplicației Facebook, rezolvă problema. Acest lucru este frustrant (mai ales că a fost raportat de ceva vreme), dar există o soluție alternativă.

.­.­.

Chrome Devtools: Mutați elementele DOM

Instrumentele pentru dezvoltatori din Google Chrome sunt printre cele mai puternice de pe piața browserelor. Lunar sunt adăugate funcții noi, pe care Google le prezintă într-un format condensat pe YouTube . Dar adesea, lucrurile mărunte din viață sunt cele care aduc bucurie. Dacă doriți să ștergeți elemente DOM în Google Chrome, puteți face acest lucru cu tasta Delete. Dar abia astăzi mi-am dat seama că puteți muta elemente DOM și folosind funcția drag and drop.:

.­.­.

Sfat rapid: starea git --r

O regulă de aur în universul git este: „Comiteti-vă devreme și des”. Dacă noaptea a fost puțin mai lungă sau dacă doriți doar o imagine de ansamblu a situației actuale pe propriul computer, comanda vă ia

d8a38f92d0baa14f9d4568826c13ad46

o "stare git" pentru toate depozitele care se află în folderul curent sau în orice subfolder și care agregează valorile într-o prezentare generală frumoasă:

.­.­.

Stiva LAMP în subsistemul Windows pentru Linux

Atunci când caut mediul de dezvoltare optim, Windows 10 oferă o gamă largă de opțiuni, pe lângă soluții complete precum XAMPP , WAMP și MAMP , și instalări native manuale , precum și soluții de virtualizare precum Vagrant ( ScotchBox ) și Docker ( DevilBox , Laradock ). Cu toate acestea, toate soluțiile nu au reușit să îndeplinească cerințele mele - cum ar fi configurabilitatea liberă, certificatele SSL cu adevărat wildcard, accesul de pe toate dispozitivele din rețeaua locală și stabilitatea și performanța ridicate - cu excepția uneia.

.­.­.

Trucuri pentru relațiile elocvente Laravel

Unul dintre punctele forte ale lui Laravel este sintaxa sa elegantă. Dacă aveți o mulțime de modele și relații în Laravel (datorită multor tabele din baza de date), traversarea se poate termina adesea cu un cod mai puțin elegant. De-a lungul timpului, trei mici extensii s-au dovedit pentru mine, pe care aș dori să le prezint pe scurt mai jos. Folosim doar câteva moșteniri, metode magice și colecții personalizate.

.­.­.

Împiedicați accesul publicului la .git

Controlul versiunilor pe Git este acum o practică standard în aproape fiecare proiect și mediu web (inclusiv în producție). Git creează întotdeauna un subdirector numit `.git` , iar dacă acesta este situat la același nivel cu directorul public al site-ului web, fișierele sensibile pot fi accesate public (de exemplu, accesarea `/.git/logs /HEAD` afișează cele mai recente commit-uri). Acest ghid explică în detaliu cum să clonezi un alt depozit Git chiar și fără o listă de directoare.

.­.­.

Node.js / npm / Compozitor fără rădăcină

Într-o postare de blog mai veche am descris cum să găzduiești Node.js gratuit folosind Heroku . Acum vă voi arăta o modalitate de a instala Node.js , npm și Composer pe orice altă gazdă partajată fără drepturi de root cu câteva linii de cod. Cu acesta puteți instala pachete, implementa aplicații Vue.js sau pur și simplu porni un server Express.js. Lucrăm întotdeauna în directorul utilizatorului și folosim nvm - Node Package Manager.

.­.­.

Bug în matrici asociative în PHP <7.2

În PHP <7.2 puteți crea matrice care nu mai pot fi accesate corect:

91367d1c4636fd753b381406024e303c

Puteți face unele lucruri cu el.

.­.­.

Executați comenzile direct după conexiunea SSH

Următoarea comandă stabilește o conexiune SSH la un server, execută mai multe comenzi (de exemplu, schimbarea într-un subdirector și rularea comenzii `git status` ) și lasă shell-ul deschis. Aceasta încarcă fișierul `.bashrc`, care activează subshell-uri colorate. Trucul este de a salva un fișier temporar `/tmp/initfile` care conține comenzile dorite și de a porni un subshell (în cazul nostru, `bash`) cu comanda `--init-file`. În cadrul acestui `initfile`, același fișier este șters imediat pentru a nu lăsa nicio urmă.

.­.­.

Unitatea de rețea ca administrator

Când mapați o unitate de rețea în Windows Explorer, acest lucru nu este valabil la nivel de sistem, ci se aplică doar contului de utilizator curent. Aceasta înseamnă că o aplicație care rulează cu privilegii de administrator nu poate accesa această unitate de rețea. Puteți modifica cu ușurință acest lucru: Creați o nouă valoare DWORD (32 de biți) numită EnableLinkedConnections cu valoarea 1 în registry, sub HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System și reporniți computerul. Apoi, unitățile de rețea mapate vor fi vizibile peste tot.

.­.­.

Sfat rapid: Includeți folderul ca unitate

Dacă doriți să ajungeți rapid la un folder local din Windows pe care îl utilizați din nou și din nou, îi puteți atribui pur și simplu propria literă de unitate. Există doar un ocol prin „Conectare unitate de rețea”, deoarece nu puteți specifica calea C: \ Users \ David \ Downloads, de exemplu. Ca soluție, introduceți așa-numita partajare administrativă a unității, care există în mod implicit pentru fiecare folder: În exemplul de mai sus, acesta ar fi \\ localhost \ c $ \ Users \ David \ Downloads .

.­.­.

Prinde broaște

O broască sare pe o axă numerică, iar scopul este să o prindă. Săritul și prinderea se alternează. Broasca începe din poziția \(s \in \mathbb{Z}\) și cu fiecare mișcare, sare o distanță de \(z \in \mathbb{Z}\) (dacă \(z>0\) , sare la dreapta; altfel, la stânga). \(z\) este aceeași pentru fiecare săritură. Prinderea broaștei implică specificarea unei poziții întregi. Nici \(z\) , nici \(s\) nu sunt cunoscute. Vom demonstra că există o procedură care ne permite întotdeauna să prindem broasca.

.­.­.

Numele de fișiere lungi pe Windows 10

Nu doar atunci când se utilizează npm în Windows se întâlnește o limitare veche de aproape 30 de ani care restricționează căile către foldere și fișiere la un maxim de 255 de caractere. Acest lucru nu se datorează NTFS, ci mai degrabă LFN . Acest lucru duce la erori enervante și incompatibilitate între sistemele de operare. În era WSL, aceasta este o situație regretabilă, care din fericire poate fi acum remediată în registry.

.­.­.

Cozi Laravel pe localhost

În framework-ul PHP Laravel, în mediile de producție, lucrătorii precum supervizorul se asigură că joburile stocate în Redis , de exemplu, sunt executate. Dacă doriți să fiți complet independent de acest lucru pe localhost, puteți utiliza driverul de sincronizare pentru a executa joburi imediat. Cu toate acestea, acest lucru are dezavantajul că procesul PHP curent este blocat, iar cererea se blochează până la finalizarea jobului.

.­.­.

Sfat rapid: grupați obiective în Google Analytics

Folosind biblioteca JavaScript analytics.js din Google Analytics, orice evenimente de pe site-uri web pot fi urmărite. Aceste evenimente includ, de exemplu, măsurarea precisă a timpului de staționare, adâncimea maximă de derulare a vizitatorilor sau alte acțiuni individuale, cum ar fi trimiterea de formulare. Dacă ulterior doriți să evaluați campanii publicitare sau să efectuați teste A/B, creați așa-numitele obiective.

.­.­.

Invalidarea cache-ului pragmatic

Randarea pe server este acum o practică standard pentru site-uri web și aplicații. Browserele precum Google Chrome tind, de asemenea, să stocheze în cache cât mai mult posibil pentru a minimiza timpii de încărcare pentru solicitările ulterioare. Invalidarea memoriei cache a fișierelor CSS, JS și imagine poate fi realizată folosind `mod_pagespeed` , antetul de control `Expires` / `Cache` , un manifest al memoriei cache sau, mai pragmatic și direct, prin adăugarea de parametri personalizați la numele fișierului.

.­.­.

Taste Bitbucket și SSH

Furnizorul Bitbucket nu oferă (chiar și în tarifele standard și premium) posibilitatea stocării cheilor SSH cu acces la scriere la nivelul depozitului. Stocarea cheii personale SSH pe serverul de producție nu este o opțiune, altfel puteți accesa toate celelalte proiecte la care lucrați în prezent de acolo. Există așa-numitele chei de acces , dar acestea permit doar drepturi de citire.

.­.­.

Windows Sysinternals prin unitate de rețea

Instrumentele Sysinternals ale lui Mark Russinovich sunt esențiale pentru orice computer cu Windows. Pentru a avea întotdeauna cea mai recentă versiune disponibilă, mapați-o ca unitate de rețea. Pur și simplu executați comanda `net use s: \\live.sysinternals.com\DavWWWRoot` din linia de comandă (ca utilizator obișnuit). Aceasta va oferi apoi acces portabil la instrumente utile precum PsList, PsKill și Process Explorer pe unitatea S.

.­.­.

Sfat rapid: Foi de calcul Google și Săptămâni calendaristice

Când trimiteți săptămâni calendaristice pentru o anumită dată, trebuie să aveți grijă în Foi de calcul Google (la fel ca în Microsoft Excel). Funcția = CALENDAR WEEK (TODAY ()) se calculează utilizând standardul american, pentru care prima zi a anului este întotdeauna atribuită săptămânii calendaristice 1. Acest lucru este definit în mod diferit în Germania: aici prima săptămână calendaristică este săptămâna din care cel puțin 4 zile cad în noul an. În Foi de calcul Google puteți rezolva problema (pe lângă alte alternative interesante, cum ar fi = SHORTEN ((TODAY () - DATE (YEAR (TODAY () - REST (TODAY () - 2; 7) +3); 1; REST (TODAY ( ) -2; 7) -9)) / 7) și modificat = CALENDAR WEEK (TODAY (); 21) ) cu ușurință cu funcția special concepută = ISOWEEKNUM (TODAY ()) .

.­.­.

Certificate SSL auto-semnate în Chrome 58

De la Let's Encrypt , site-urile web criptate au devenit o practică standard. Certificatele SSL sunt, de asemenea, practic indispensabile în dezvoltarea locală (de exemplu, navigator.geolocation necesită criptare SSL locală). De la versiunea 58 a Chrome, suportul pentru CN (Common Name - Nume comun) a fost eliminat, iar SAN (Subject Alternative Name - Nume alternativ al subiectului) este acum obligatoriu. Prin urmare, Chrome nu mai acceptă certificate SSL create folosind metode tradiționale .

.­.­.

De două ori vârsta a doi oameni

Luați în considerare două persoane \(A\) și \(B\) care nu sunt născute în aceeași zi și \(A\) mai tânără decât \(B\) . Arătați că există exact două constelații de vârstă \(a,b \in \mathbb{N}\) , pentru care se aplică: \(2\cdot a = b\) . Mai întâi setăm \(d \in \mathbb{R}^+\) ca diferență de vârstă între \(A\) și \(B\) la nașterea lui \(A\) cu \( d = d_0 + d_1 \) , \( d_0 \in \mathbb{N}_0, d_1 \in \mathbb{R}, d_1 \in [0;1[\) . Acum considerăm un moment arbitrar în timp \(x \in \mathbb{R}^+\) după nașterea lui \(A\) cu \(x = x_0 + x_1\) , \(x_0 \in \mathbb{N}_0, x_1 \in \mathbb{R}, x_1 \in [0;1[\) .

.­.­.

Git și foldere goale

Deoarece Git nu cunoaște foldere, ci doar fișiere, structuri de folder goale nu ajung în depozit. Cu toate acestea, deoarece multe cadre și proiecte au absolut nevoie de acest lucru, ele ar trebui să ajungă acolo. O practică obișnuită este crearea așa-numitelor fișiere de substituent (adesea numite .gitkeep), care specifică implicit structura folderelor. Aceste fișiere pot fi create cu ușurință și, dacă se dorește, se asigură că alte fișiere din foldere sunt ignorate.

.­.­.

Găzduire gratuită Node.js cu Heroku

Gazduirea pentru Node.js nu este încă foarte răspândită, în special în țările vorbitoare de limbă germană. Compania americană de cloud Heroku oferă aici un remediu - și chiar gratuit . Observați întotdeauna paradigma „Construiți aplicații ... nu infrastructură” și încă nu aveți restricții. De exemplu, implementăm un mic job cron bazat pe PhantomJS , care elimină zilnic un site web și trimite titlul paginii prin e-mail.

.­.­.

Funcția de împerechere Cantor

În plus față de argumentele diagonale , Georg Cantor a dezvoltat și funcția de împerechere Cantor \(\mathbb{N}^2 \to \mathbb{W}, \quad c(x,y) = \binom{x+y+1}{2}+x = z\) , care codifică orice două numere \(x,y \in \mathbb{N}\) într-un număr nou \(z \in \mathbb{N}\) . De exemplu, \(c(3,4)=\binom{3+4+1}{2}+3 = \binom{8}{2}+3=\frac{8!}{6!\cdot 2!} +3 = 31 = z\) o codificare unică a numerelor \(3\) și \(4\) din numărul \(31\) . Arată: Setul de valori \(\mathbb{W} = \mathbb{N}\) , adică \(z\) presupune toate numerele naturale.

.­.­.

Pământul și mazărea

\(r_1 = 6370km\) la pământ (ca o sferă cu \(r_1 = 6370km\) ) și un bob de mazăre (ca o sferă cu \(r_2 = 2mm\) ) și \(r_2 = 2mm\) o frânghie peste ecuator, astfel încât să se \(r_2 = 2mm\) strâns pe suprafață. Acum alungiți ambele corzi cu câte un metru fiecare. Ambele frânghii ar trebui să se întindă complet din nou peste ecuator - nu mai stau complet la suprafață, ci plutesc deasupra ecuatorului. Cât de sus deasupra suprafeței pluteste coarda deasupra pământului, cât de sus deasupra mazărei?

.­.­.

Probabilități pe ceasul analogic

În ce% din timpul unei zile se află toate cele trei mâini ale unui ceas analogic în jumătatea dreaptă a cadranului? Mai întâi, uitați-vă la mâna orelor, care se află pe partea dreaptă la fiecare 12 din 24 de ore (50%). Din acest moment, avertismentul minutelor va fi pe partea dreaptă (25%) în 6 din 12 ore. Din aceste 6 ore, mâna a doua petrece 3 ore pe partea dreaptă (12,5%).

.­.­.

Laravel: Lucrul cu relații elocvente

Laravel face comunicarea cu baza de date mult mai ușoară cu Eloquent. Când lucrați cu relații elocvente , când apelați variabile dinamice (cu ajutorul metodelor magice ale PHP), ar trebui să fiți conștienți de faptul că instanțele modelelor nu reflectă modificări noi, dar sunt stocate permanent când sunt apelate pentru prima dată.

.­.­.

Bitbucket: Ștergeți folderul din istoricul Git

Când găzduiți Git pe Bitbucket, există o limită de 2 GB - dacă acest lucru este depășit, aveți acces doar în citire la depozit. Pentru a preveni acest lucru, puteți, de exemplu, să eliminați retroactiv dosare mari sau fișiere din comitetele dvs. Dar, de asemenea, în alte cazuri (dacă datele de acces au intrat în istoric sau node_modules a revenit la master) trebuie să manipulați retrospectiv istoria Git, contrar naturii sale.

.­.­.

Integrarea certificatului SSL de la DomainFactory pe IIS

În era Let's Encrypt, site-urile web criptate sunt acum standard. Cu toate acestea, sunt frecvent necesare și certificate wildcard sau extinse cu validare a proprietarului deosebit de fiabilă. DomainFactory oferă certificate SSL rentabile, care pot fi utilizate și extern. Configurarea pe un server IIS curent este posibilă fără o cerere CSR folosind OpenSSL . Mai jos, voi schița pe scurt pașii necesari.

.­.­.

Strategie câștigătoare paradoxală atunci când ghiciți cifre

Thomas M. Cover a pus următoarea întrebare uimitoare în 1987 în „Probleme deschise în comunicare și calcul”: Player \(X\) scrie două numere naturale diferite și alese aleatoriu \(A\) și \(B\) în două diferite Bucată de hârtie și pune-o cu fața în jos pe o masă. Jucătorul \(Y\) selectează acum aleatoriu una dintre aceste bucăți de hârtie, vede numărul și acum trebuie să decidă dacă acest număr este mai mic sau mai mare decât celălalt număr care este încă cu fața în jos pe masă.

.­.­.

Fotbal și algebră liniară

Când începe un joc de fotbal, mingea se află în centrul terenului și este apoi mutată în jurul terenului timp de 45 de minute prin deplasare și rotire. La începutul celei de-a doua reprize, mingea este din nou în centrul terenului. Arătăm cu mijloace simple de algebră liniară că fie un număr infinit de puncte de pe suprafață sunt întotdeauna exact în aceeași poziție ca în starea inițială sau exact 2.

.­.­.

Laravel: Depanare șablon lamă

Când depanați șabloanele Blade în Laravel 5.*, primiți adesea mesaje de eroare nefolositoare care se referă la vizualizările memorate în cache. Lucrurile stăteau mai bine în trecut: vizualizarea de depanare din versiunea 4 oferea funcții mai utile și era, de asemenea, atractivă din punct de vedere vizual. Cu doar câteva linii de cod, puteți restaura această funcționalitate folosind „oops” („erori PHP pentru copii cool”).

.­.­.

Afișare armonioasă a siglelor cu JavaScript

Fie referințe, parteneri sau clienți - există multe cazuri în care doriți să afișați armonios mai multe sigle una lângă alta. Proporțiile logo-urilor sunt în mare parte inconsecvente. De multe ori îți urmezi instinctul intestinal pentru reprezentarea dimensiunilor în proiectare, dar există, de asemenea, o metodă exactă de calcul pentru o reprezentare atrăgătoare din punct de vedere vizual, prin echivalarea zonelor logo-urilor. În exemplul următor puteți face acest lucru doar cu câteva linii de JavaScript.

.­.­.

Verificați existența variabilelor din PHP / JS

Când lucrați cu variabile în PHP și JavaScript, se întâlnește adesea întrebarea dacă o variabilă este goală. Merită să cunoașteți funcțiile native și diferențele lor în scopul verificării. Enervant, nu există o modalitate ușoară de a verifica intuitiv dacă o variabilă este prezentă sau nu. Matricea de mai jos ilustrează ce se înțelege prin aceasta. Cu toate acestea, ceea ce doriți poate fi modernizat cu funcții de ajutor mici.

.­.­.

Apeluri telefonice masive cu sipgate.io

Cu sipgate.io, Sipgate a creat un API cloud interesant cu care aveți o multitudine de opțiuni pentru telefonie prin Internet. Un cont este gratuit și există, de asemenea, opțiunea de a seta orice număr de expeditor gratuit în magazinul de funcții. Documentația sipgate.io este încă extensibilă, dar, cu o mică citire în API-ul oficial Sipgate, puteți realiza rapid lucruri interesante.

.­.­.

Recursivitate în SQL

Sistemele de gestionare a bazelor de date relaționale bazate pe SQL sunt doar parțial potrivite pentru interogări ierarhice sau recursive. Alte sisteme, precum ArangoDB , sunt mai potrivite pentru acest lucru (s-a discutat mult despre acest subiect la GOTO 2016 ). Cu toate acestea, este posibilă și crearea de interogări recursive în SQL folosind Common Table Expressions , permițându-vă, de exemplu, să interogați tabelele clasice părinte/copil pentru toți strămoșii și descendenții.

.­.­.

WordPress: Dezactivați paginile de arhivă

Potrivit w3techs.com , aproximativ 27,4% din toate site-urile din întreaga lume sunt operate în prezent cu ajutorul WordPress. În foarte multe cazuri, acestea nu sunt bloguri. WordPress generează automat numeroase adrese URL, adesea neutilizate și produce atât de multe linkuri indexate de Google, încât operatorul site-ului web nici măcar nu le avea pe ecran. Toate acestea pot fi dezactivate cu o comandă simplă.

.­.­.

Redenumiți câmpurile formularului PDF în bloc

Dacă, ca și mine, ai probleme cu redenumirea a mii de nume de câmpuri de formular, consola JavaScript inclusă în Acrobat este ideală. În acest sens, nu numai că puteți executa orice cod JavaScript, dar puteți accesa tot conținutul din PDF (inclusiv câmpurile formular). Deoarece nu există o funcție nativă pentru redenumire în API-ul JS, câmpurile formularului sunt copiate cu toate proprietățile lor și li se dă un nume nou.

.­.­.

Articole din magazin: reparați modificările variantelor

În Shopware 5, o problemă cunoscută încă nu a fost rezolvată: dacă creați un articol cu ​​variante dependente reciproc, cu opțiuni de configurare care se exclud reciproc, se poate întâmpla ca unele combinații să nu fie selectate în partea frontală și, prin urmare, să nu poată fi comandate. Cu ajutorul unui plugin, problema poate fi rezolvată cu ușurință în acest moment.

.­.­.

O linie pentru infinitul numerelor prime

Există numeroase dovezi ale infinității numerelor prime - binecunoscuta teoremă a lui Euclid din Cartea elementelor nu lipsește în niciun curs de bază al teoriei numerelor. În American Mathematical Monthly (numărul 122) din 2015, Sam Northshield a publicat o dovadă de contradicție nu mai puțin elegantă, sub forma unui singur liner, pe care nu vreau să ți-o rețin (cu comentarii scurte).

.­.­.

Luminează linia de comandă Windows

Promptul de comandă Windows plictisitor poate fi actualizat vizual în câțiva pași simpli. Deci, nu numai că puteți adapta culoarea și dimensiunea liniei de comandă, ci și extinde funcțional (creșterea bufferului, instalarea unui set mare de instrumente UNIX). Deși promptul de comandă nu se apropie de PowerShell 6.0 sau de noul Windows 10 Bash Shell , nu trebuie să se ascundă pentru sarcinile de zi cu zi.

.­.­.

Adrese URL dinamice în Joomla

În sistemele de gestionare a conținutului, adresele URL adesea nu sunt predeterminate și, prin urmare, nu sunt create static (ca articole sau elemente de meniu) în avans, ci mai degrabă accesează obiecte din baza de date. Similar cu WordPress ( așa cum este descris aici ), este posibil să se creeze și structuri URL dinamice în Joomla (independente de sistemul de alias intern). Acest lucru se poate realiza fie cu JRouter , fie cu o singură linie de cod în fișierul .htaccess.

.­.­.

JavaScript PasteJacking

Browserele moderne pot folosi JavaScript pentru a accesa și manipula clipboard-ul utilizatorului, atât citind, cât și scriind. Tehnologia de bază nu este nimic nou, dar abia recent au apărut tot mai multe atacuri (cunoscute sub numele de „pastejacking”) online, exploatând această capacitate în detrimentul utilizatorilor neatenți. Implementarea acestui lucru în JavaScript este destul de simplă.

.­.­.

Schimbați coloanele în PostgreSQL

Schimbarea coloanelor tabelului SQL face parte din repertoriul standard cu MySQL - acest lucru nu este (încă) acceptat cu PostgreSQL. Deși wiki-ul oficial își consacră propriul articol problemei, acesta nu arată o soluție practicabilă care să accepte, de asemenea, vizualizări, indexuri și declanșatoare. Următoarea clasă face această treabă (atât pentru MySQL, cât și pentru PostgreSQL) fie pe linia de comandă - fie alternativ direct în Laravel 5.

.­.­.

Sfat rapid pentru Windows Explorer

Dacă doriți să deschideți rapid promptul de comandă într-un folder din Windows Explorer, faceți clic (cu un nivel mai mare) cu butonul din dreapta al mouse-ului și țineți apăsată tasta Shift din folder și apoi selectați „Deschideți promptul de comandă aici” din meniul contextual. Tocmai am aflat o altă metodă mai rapidă când vă aflați în folder: Aici faceți clic pe calea folderului curent, tastați „cmd” și confirmați cu Enter.

.­.­.

Categorii WordPress: Arborescență / Moștenire

Când lucrați cu categorii ierarhice (taxonomii) în WordPress, veți observa că afișarea categoriilor selectate în backend poate fi confuză, iar postările nu ajung automat în categoria părinte atunci când sunt mutate într-o categorie fiică. Ambele probleme pot fi rezolvate cu ușurință cu doar câteva linii de cod folosind puternicul sistem hook (sub forma unei acțiuni și a unui filtru).

.­.­.

PHP 7 și Operatorul navei spațiale

În plus față de funcții noi, cum ar fi sugestii de tip pentru tipuri de date scalare sau performanțe optimizate , PHP 7 aduce, de asemenea, multe extensii de limbaj noi și utile. „Operatorul navei spațiale” a ajuns în sfârșit în lumea PHP (programatorii Ruby și Perl o știu de multă vreme). \($a <=> $b\) returnează \(0\) dacă și numai dacă ambii operanzi sunt egali, \(1\) dacă stânga este mai mare și \(-1\) caz contrar.

.­.­.

IIS 7.5 PHP FastCGI timeout

Dacă integrați PHP prin FastCGI pe IIS 7.5, fiecare script este întrerupt în mod implicit după 600 de secunde (adică 10 minute). Schimbarea cunoscutei variabile „max_execution_time” din php.ini nu are niciun efect asupra acestui lucru, trebuie (de asemenea) să ajustați setările FastCGI. IIS oferă o interfață convenabilă pentru gestionarea variabilelor relevante.

.­.­.

Paradoxul stochasticilor

Teoria probabilității condiționate implică sarcini frumoase cu soluții contraintuitive. În plus față de binecunoscuta problemă a fraților , voi aborda pe scurt un alt exemplu: "Acum am doi copii. Unul dintre ei este băiat și s-a născut într-o joi. Care este probabilitatea ca și celălalt copil să fie băiat?"

.­.­.

Git, Shopware și foldere goale

Sistemul de versiune a fișierelor Git este ușor, rapid și portabil. Git gestionează întotdeauna obiecte, și anume fișiere. Dosarele sunt create numai dacă există fișiere în ele, altfel Git nici măcar nu le va înregistra. Acest lucru are efecte secundare neplăcute în unele proiecte. De exemplu, sistemul Shop Shop se bazează pe respectarea strictă a structurii folderelor pentru a funcționa.

.­.­.

Articole pentru magazin: costuri individuale de expediere

Shopware are un modul puternic de costuri de transport pe care îl puteți interveni în mod specific în calcul. În cazul nostru, dorim să implementăm următorul scenariu: Costurile de transport pe articol sunt inițial determinate în funcție de greutatea articolului (sunt specificate limitele de greutate). Doar pentru excepții speciale ar trebui să fie posibilă stabilirea costurilor fixe de expediere pentru fiecare articol.

.­.­.

Permalink-uri dinamice în WordPress

Sistemul de permalink WordPress poate fi adaptat foarte bine la propriile nevoi cu ajutorul etichetelor de structură . Setarea% postname% este probabil cea mai comună și practicabilă soluție. Cu toate acestea, dacă doriți să implementați legături dinamice reale, trebuie mai întâi să extindeți sistemul cu propriul cod.

.­.­.

Hiperlinkuri corupte în Word și Excel

S-ar aștepta ca deschiderea hyperlinkurilor dintr-un document Word/Excel să lanseze browserul implicit cu adresa URL dorită. În mod ciudat, nu este cazul – ceea ce duce la efecte secundare nedorite și face imposibilă crearea de linkuri către pagini protejate prin sesiune sau cookie-uri în aceste programe Office.

.­.­.

Un paradox pentru Ziua Tatălui

De Ziua Tatălui de astăzi, o fiică îi dă tatălui ei o imagine pe care și-a pictat-o ​​ea, pe care tatăl ei o tânjise. Fiica spune: „Îți voi oferi imaginea pe care ți-ai dorit-o și cadoul meu va fi o surpriză”. Tatăl face o pauză și se gândește la adevărul acestei afirmații.

.­.­.

Integrați scripturi dinamice cu și fără HTTPS

Dacă includeți scripturi necriptate în zona <head> și apelați o pagină cu un certificat SSL existent criptat, aceste scripturi sunt blocate și, prin urmare, nu sunt executate. Dacă pur și simplu omiteți protocolul, toate scripturile sunt apelate automat în formă criptată dacă site-ul web este accesat prin https: // - altfel necriptat.

.­.­.

Utilizare în meniurile derulante

Când lucrați cu meniuri derulante multidimensionale, întâmpinați adesea problema deschiderii accidentale a submeniului greșit sau a închiderii accidentale a submeniului dorit. Acest lucru se întâmplă atunci când cursorul mouse-ului părăsește meniul corespunzător de la nivelul superior în timp ce navigați către un submeniu deja extins.

.­.­.

Articole pentru magazin: dezactivați automat variantele

În Shopware , întregul articol este dezactivat în cazul unei comenzi reale dacă toate variantele au un nivel de stoc mai mic sau egal cu 0. Pentru a implementa acest lucru pe o bază variantă, am programat un mic plugin, al cărui Bootstrap.php îl voi furniza mai jos.

.­.­.

Interogare cu parolă dublă cu SSL

Următorul scenariu are întotdeauna un efect secundar nedorit: Dacă vă protejați site-ul cu htaccess/htpasswd și aplicați simultan o conexiune SSL, trebuie să introduceți întotdeauna aceeași parolă de două ori (o dată pentru http și încă o dată pentru https după introducerea cu succes). Această problemă poate fi rezolvată cu ușurință folosind secțiunile de configurare introduse în Apache 2.4.

.­.­.

Șiruri de linii multiple în JavaScript

Când se programează cu JavaScript, de multe ori se împiedică de incapacitatea de a implementa șiruri multi-linie, introducându-le în mai multe linii din cod. În timp ce sarcina în alte limbi, cum ar fi PHP sau Ruby nu este o problemă, cu JavaScript puteți inițial să vă deplasați numai cu soluții alternative, a căror utilizare este decisă de gustul personal sau de suportul browserului.

.­.­.

mail () în PHP cu UTF-8 și umlauts

Trimiterea e-mailurilor cu PHP este cel mai bine implementată cu clase puternice precum PHPMailer . Funcțiile convenabile de împachetare fac posibilă utilizarea conținutului UTF-8, încorporarea imaginilor și trimiterea atașamentelor criptate cu doar câteva linii de cod. Dacă doriți să vă salvați cheltuielile generale și, spre deosebire de recomandare, utilizați funcția PHP mail () , veți întâmpina probleme la cel mai târziu când utilizați umlauturi și UTF-8.

.­.­.

Google PageSpeed ​​Insights vs. Google Analytics

Instrumentele de validare precum Serviciul de validare a markup-ului W3C sau Google PageSpeed Insights sunt utile pentru evaluarea obiectivă a codului și performanței unui site web. Google, în special, influențează o întreagă industrie cu concepte precum „above the fold” (supra pliere) și stabilește, de asemenea, reguli stricte, dar utile, privind compresia imaginilor și memorarea în cache. Cu toate acestea, procedând astfel, Google se poate împiedica uneori.

.­.­.

Bun venit JavaScript 2.0

JavaScript domină web-ul – iar ECMAScript, nucleul limbajului, se maturizează. Noua specificație (ES6 sau JS2), așteptată la jumătatea anului, aduce numeroase inovații care pot fi deja testate. Firefox oferă în prezent cel mai bun suport , dar sunt posibile și polyfill-uri prin intermediul transpiler-elor precum Google Traceur . Urmează o scurtă prezentare generală a noilor caracteristici ale ES6.

.­.­.

0,99999... = 1?

Fie la școală, fie la universitate: o întrebare interesantă care \( 0,99999... = 1 \) când include întrebarea dacă următoarea ecuație este adevărată: \( 0,99999... = 1 \) . Deși infinitul \(0,99999... = A\) în partea stângă a ecuației, îi dăm un nume: \(0,99999... = A\) . După multiplicarea cu factorul \(10\) și transformări algebrice simple, obținem o primă perspectivă uimitoare.

.­.­.

SQL: performanță slabă în ciuda indexului

Tocmai m-am confruntat cu următoarea problemă de performanță a unei baze de date SQL: Într-un tabel SQL numit „utilizatori” cu aproximativ 1.000.000 de intrări, determinarea numărului de înregistrări de azi a durat inacceptabil 28 de secunde. Orele înregistrărilor au fost salvate în formatul „Ymd H: i: s” în coloana „creat”.

.­.­.

Mică problemă de șah

Pe lângă binecunoscuta problemă a cavalerului și a problemei reginei, există multe alte întrebări interesante în lumea șahului. Am atins două mici curiozități într-o intrare anterioară pe blog . Dacă vă ocupați matematic de probleme de șah, veți descoperi rapid că matematica oferă răspunsuri foarte simple și iluminante pentru multe întrebări.

.­.­.

Fișiere disponibile online cu OneDrive

Dacă OneDrive, Dropbox, Google Drive, OwnCloud, Box.net: Indiferent în care casetă vă stocați fișierele - serviciile sunt aproape la fel. Clienții disponibili pentru toate sistemele desktop și mobile, fișierele standard necriptate și opțiunile de partajare diferă doar marginal. Dar OneDrive, care a fost integrat permanent în sistem de la Windows 8.1, are o caracteristică specială: doar fișierele disponibile online.

.­.­.

PHP: acces la fișiere cu umlauts sub Windows

Fișierele de pe serverele web ar trebui stocate întotdeauna fără spații (nu „aceasta este o imagine.jpg”), fără umlaute sau caractere speciale (nu „football.jpg”), fără bare oblice inversate (nu „work\car.jpg”) și cu litere mici (nu „test.JPG”). Recent, însă, pentru un proiect client, a trebuit să accesez și să procesez un număr mare de fișiere predefinite cu nume arbitrare.

.­.­.

Interogare SQL pentru a determina o listă de clasare

Astăzi am întâlnit următoarea sarcină în timp ce lucram la un proiect pentru clienți: Luați un tabel SQL „utilizator” cu coloanele „id” și „scor” și determinați o listă de clasificare a tuturor utilizatorilor sortată după „scor” în care utilizatorii cu obțineți același clasament cu același scor. Această sarcină poate fi rezolvată intuitiv și ușor utilizând variabile definite de utilizator .

.­.­.

SDK Facebook: Verificați jetoanele de pe server

Când lucrați cu SDK-ul Facebook (mai exact atunci când implementați o funcție de conectare Facebook într-o interfață REST), jetonul transmis pe care clientul l-a primit de pe Facebook trebuie mai întâi verificat de server pentru validitate înainte de efectuarea operațiunilor ulterioare. .

.­.­.

Chrome DevTools: Adresați elementele DOM

Indiferent dacă este vorba de Chrome, Firefox, Opera, Safari sau chiar Internet Explorer: În timp ce instrumentele de dezvoltare bine concepute erau un punct de vânzare unic al Firefox și popularul plugin Firebug până acum câțiva ani, instrumentele puternice pentru dezvoltatori fac acum parte din domeniul de aplicare standard al fiecărui browser în care există multe de descoperit. dă.

.­.­.

Acces la sistemul de fișiere folosind SQL

Recent am descoperit o modalitate ingenioasă de a accesa sistemul de fișiere și de a recupera informații valoroase, cum ar fi existența fișierelor și folderelor sau conținutul acestora. Aceasta poate fi foarte utilă ca alternativă la funcția PHP ` file_exists` , deoarece informațiile despre existența fișierului(elor) pot fi utilizate în interogare pentru funcții ulterioare de sortare și agregare.

.­.­.

Fundaluri animate cu pânză

Fundalurile vectoriale animate pot adăuga varietate peisajului web caracterizat prin fotografii și videoclipuri pe ecran complet. Ar fi frumos dacă acest lucru ar merge mână în mână cu timpii de încărcare și asistență hardware și software largă. O soluție este: pânza. Elementul HTML controlat de JavaScript este acceptat de toate browserele actuale și reprodus cu performanțe ridicate pe dispozitivele mobile.

.­.­.

S-a rezolvat raportul de aspect pentru elementele HTML

Ca dezvoltator web, te trezești adesea lucrând cu elemente HTML care, spre deosebire de elementul `img`, nu au în mod inerent o dimensiune sau un raport de aspect fix. Adesea, vrei ca aceste obiecte să se comporte prompt, menținând în același timp proporția dintre lățime și înălțime. CSS nu oferă o soluție intuitivă în mod implicit. Cu toate acestea, proprietatea de padding vertical poate realiza acest lucru.

.­.­.

Hotărâre judecătorească privind utilizarea fotografiilor de stoc

După ce Tribunalul Regional din Köln a renunțat săptămâna trecută în scandalul RedTube și nu ar fi trebuit să autorizeze niciodată publicarea adreselor IP controversate, a pronunțat acum o altă hotărâre extrem de controversată și discutabilă prin decizia 14 O 427/13: Autorul fotografiilor de stoc de la o anumită agenție de imagine trebuie, de asemenea, menționat atunci când imaginile sale sunt accesate direct prin intermediul adresei URL a acestora.

.­.­.

Goodbye Block & Inline - Bun venit HTML5

Inovațiile specificației HTML5 sunt numeroase și multe dintre ele sunt deja acceptate de majoritatea peisajului browserului - mai jos vreau să evidențiez o schimbare interesantă a regulilor pentru elementele de cuibărire. HTML a făcut întotdeauna distincția între elementele de bloc și cele în linie. Definiția tipului de document HTML4, de exemplu, numește h1, p și div ca elemente de bloc și a, span, img ca elemente inline.

.­.­.

Conectare HTTP pe IIS și Apache

Atât Apache pe sistemele Unix, cât și IIS pe sistemele Windows înregistrează cereri HTTP către fișiere direct din cutie. Cererile către propriul site web ar trebui evaluate și analizate în mod regulat, atât manual, cât și automat (de exemplu, utilizând analizoare de fișiere jurnal precum AWStats ), nu doar pentru a proteja împotriva atacurilor de hacking. Căile către fișierele jurnal relevante în configurațiile comune sunt, de exemplu, următoarele.:

  • /var/log/apache2/access.log (Exemplu: Ubuntu 12.04, Apache 2.2)
  • C:\inetpub\logs\LogFiles\W3SVC1\u_ex<YYMMDD>.log (Exemplu: Windows Server 2012 R2, IIS 8.5)
.­.­.

Joomla, IIS și drepturile de director

Când se integrează Joomla 3.2 pe un Windows Server 2008 R2 cu IIS 7.5, apar deseori probleme cu drepturile de director, care sunt deseori rezolvate inadecvat cu setări care sunt prea generoase alese. Următoarea soluție este sigură și complet funcțională:

  • Grupul IIS_IUSRS are nevoie de drepturile pentru C: \ inetpub \ wwwroot \: Read & Execute, Show content folder, Read, Write
  • Grupul IIS_IUSRS are nevoie de drepturile pentru C: \ Windows \ Temp \: Citire & Executare, Afișare conținut folder, Citire, Scriere
  • Utilizatorul IUSR trebuie să se afle în grupul IIS_IUSRS (Management computer> Utilizatori și grupuri locale> Grupuri)

Dacă aveți nevoie de permisiuni suplimentare pentru directorul tuturor fișierelor încărcate prin PHP (de exemplu, pentru SSH sau FTP), le setați și pentru folderul C:\Windows\Temp\. Când încărcați un fișier prin PHP, PHP îl copiază mai întâi în directorul temporar și apoi în calea finală. Odată ce fișierul se află în directorul temporar, acesta moștenește permisiunile sale și le păstrează după ce este mutat în directorul final.

.­.­.

Anonim online: imposibil?

În vremea scandalului NSA, nu numai utilizatorii pricepuți în rețea se întreabă dacă și cum se poate naviga în rețea în mod anonim pentru a scăpa de mania colectării datelor a autorităților și a serviciilor secrete. Cu toate acestea, acest lucru duce adesea la erori și presupuneri incorecte. O concepție greșită centrală este reducerea anonimatului la ofuscarea adresei IP.

.­.­.

McFIT - logo nou, imagine nouă

Lanțul de magazine de fitness cu discount McFIT își dă o nouă imagine. Dacă odinioară o mascotă în formă de banană galben strălucitor împodobea literele albastre, acum o panglică galbenă se împletește cu măiestrie pe un fundal antracit, formând o formă abstractă. Culorile albastru și galben ale FDP dispar nu doar de pe logo, ci și de pe toate celelalte materiale tipărite ale mărcii McFIT.

.­.­.

Photoshop: călătoriți înapoi în timp

Când frații Thomas și John Knoll au început să dezvolte Adobe Photoshop în 1987, nu m-am născut încă. Astăzi, în 2013, software-ul este unul dintre cele mai populare programe în general și liderul incontestabil al pieței în procesarea imaginilor. Datorită Adobe și Muzeului de istorie a computerului, software-ul va fi acum păstrat pentru posteritate într-o formă foarte specială.

.­.­.

Curiozități în jocul regilor

Șahul a fascinat oamenii de secole - regulile sale sunt ușor de învățat și profunzimea sa incredibilă este accesibilă doar jucătorilor cu experiență (din păcate, eu nu sunt unul dintre ei). În cele ce urmează, voi trata două scurte întrebări: Este posibil, printr-o succesiune corectă de mișcări, să ajung într-o poziție în care regele negru este atacat de două regine albe în același timp? Este posibil acest lucru și cu două turnuri albe?

.­.­.

Docu-săpun în loc de blockbuster: 48fps

Filmele sunt de obicei înregistrate și redate la 24 de cadre pe secundă - dar formatul standard „24p” vechi de aproape 100 de ani pare să se clatine. Pentru a preveni efectele secundare inestetice (de exemplu, scuturarea puternică la panoramarea camerei la viteză medie) a proiecției de 24 fps, oamenii lucrează de mult timp la dublarea ratei de cadre la 48 de cadre pe secundă și mai mult.

.­.­.

Verificați ortografia pe site-uri web

Verificările automate de ortografie și gramatică sunt acum echipamente standard în programele de procesare a textelor - dar verificarea ortografiei unui site web a fost relativ greoaie până acum. Google Chrome face un prim pas în această direcție cu o verificare integrată în câmpurile de intrare pe mai multe linii (textarea). Acum există un serviciu care face acest lucru posibil pentru site-uri web întregi.

.­.­.

Numerele de telefon din legături - un risc de securitate?

Acum câteva săptămâni am raportat despre cum puteți permite vizitatorilor să deschidă aplicația telefonică pe dispozitivele mobile atingând un număr de telefon. Acum a apărut posibilitatea de a bloca irevocabil cartela SIM sau de a reseta dispozitivul la setările din fabrică fără nicio acțiune din partea utilizatorului.

.­.­.

Curiozități interesante prin e-mail

Numele de domeniu și adresele de e-mail ar trebui să fie întotdeauna minuscule pentru a vă asigura că ajungeți unde doriți să mergeți? Sau este complet irelevant? Serverele de poștă Google, de exemplu, au setări ciudate, cu efecte interesante, pe care le voi introduce pe scurt în articolul următor.

.­.­.

Proiectarea prețurilor bursiere în subiectele zilnice

Urmăresc îndeaproape proiectarea diferitelor programe la televiziunea germană. Aproape orice transmisie își păstrează permanent designul corporativ. Ritualul de seară al întâlnirii din fața ecranului televizorului de la 22:15 la subiectele zilei îmi provoacă dureri de stomac în ultima vreme: de câteva luni încoace, a fost aleasă o schemă de culori complet confuză pentru prezentarea prețurilor actuale la bursă.

.­.­.

Conectați corect numerele de telefon

Atunci când optimizați site-ul web pentru dispozitive mobile, nu ar trebui să vă concentrați doar pe diferite dimensiuni ale ecranului, timpi de încărcare optimizați și funcții speciale (cum ar fi efectele de hover), ci să luați în considerare și capacitățile specifice ale dispozitivelor. Aceasta include (unii poate au uitat) efectuarea de apeluri telefonice.

.­.­.

Duplicați conținutul de pe bloguri

Google penalizează adesea conținutul identic pe mai multe site-uri web — cu toate acestea, algoritmul Google este inteligent și recunoaște dacă elementele din antet și subsol sunt consistente sau dacă pasaje întregi de text sunt accesibile de două ori sub adrese URL diferite. Întrebarea despre modul în care Google gestionează paginile de prezentare generală a articolelor de blog este deosebit de interesantă.

.­.­.

Sporiți securitatea WordPress

Securitatea WordPress, cel mai popular sistem de gestionare a conținutului în prezent, poate fi îmbunătățită semnificativ prin ajustarea a două mici setări. Acest lucru durează doar 5 minute și două linii de cod. Deși problema poate fi rezolvată și cu o varietate de plugin-uri, mă voi limita în mod deliberat aici la soluții fără plugin-uri.

.­.­.