Das Doomsday-Argument

Unter der Annahme, dass die Anzahl \(Y\) aller Menschen, die jemals geboren wurden und irgendwann geboren werden, begrenzt ist, sei \(x\) Deine absolute Position vom Beginn der Liste. Dann ist \(0 < \frac{x}{Y} \leq 1\). Wir können nun mit einer Wahrscheinlichkeit von \(95\%\) sagen, dass Du unter den letzten \(95\%\) aller jemals geborenen Menschen bist, also \(0,05 < \frac{x}{Y} \leq 1\) und damit \(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ă expeditor. Curios, deschizi pachetul și găsești un inel pe care îl oferi fiicei tale. Decenii mai târziu, ea este cea care poate folosi o gaură de vierme pentru a trimite obiecte înapoi în timp. Face asta cu inelul pe care i l-ai dat cândva, învelit într-un pachet pe care ți-l adresează. Întrebarea este: de unde vine inelul?

.­.­.

CI cu acțiuni GitHub

Ca o alternativă la foarte apreciat Travis CI , este disponibil și GitHub Actions de ceva timp.Ca instrument de integrare continuă, este foarte bine integrat pe platforma de cod GitHub și este acum foarte stabil. Acțiunile GitHub se bazează pe fișierele de configurare YAML plasate în depozitul unde ar trebui să ruleze 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\) ).

.­.­.

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.

.­.­.

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: Valoarea setată manual 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 (î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

După cum se știe, IBAN-ul german constă din codul de țară (DE), o cifră de verificare din două cifre (conform ISO 7064 ), codul bancar (cu 8 cifre) și numărul de cont (inclusiv numărul de subcont, 10 cifre, cifrele lipsă sunt completate cu zerouri inițiale) și, prin urmare, este de 22 de cifre. Pentru a calcula cifra de control, se formează așa-numitul BBAN (codul bancar și numărul de cont), precum și codul numeric de țară \(1314\) pentru Germania și cifra de control \(00\) ).

.­.­.

Matematică în jocul Dobble

La ultima seară de familie, jocul Dobble (în Ediția Harry Potter) a fost adus cu entuziasm la masă de către copii. După a 5-a rundă pierdută (fără lovitura vizibilă a cărții mele cu cartea de joc) mi s-a spus, spre uimirea mea, că fiecare jucător poate găsi întotdeauna o lovitură în fiecare rundă. Dar neîncrederea mea a fost recunoscută doar cu alte ture 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).

.­.­.

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.

.­.­.

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 când a existat un design web receptiv, dezvoltatorii au întrebat despre posibilitatea de a proiecta elemente DOM în funcție de dimensiunea lor reală și nu de dimensiunea ferestrei de vizualizare din browser (cu ajutorul interogărilor media ). De fapt, interogările de containere (inițial interogări de element) sunt probabil cea mai solicitată funcție CSS pe care browserele încă nu o au .

.­.­.

Curățați istoricul Git

Datele sensibile precum parolele ar trebui să fie în fișiere .env și, dacă este posibil, să nu ajungă în depozitele Git. Dar probabil că ni s-a întâmplat fiecăruia dintre noi cel puțin o dată din greșeală: a publicat rapid un script API Google Maps JS frumos pe GitHub Gists (ca „public”) fără a masca accidental propria noastră cheie privată API Maps.

.­.­.

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

Dacă doriți să decupați o imagine cu ajutorul unui SVG, este recomandată utilizarea proprietății CSS clip-path . Următorul script declanșează bariere accidentate: SVG-ul poate fi salvat cu ajutorul Illustrator, puteți specifica URL-ul (relativ sau absolut) al unui SVG (Chrome acceptă până acum în mod nativ numai SVG în linie) și decolteul este, de asemenea, complet receptiv.

.­.­.

Sfat rapid: WP_Query & Câmpuri multi-linie

Cu ajutorul atributului meta_query din puternica clasă WordPress WP_Query , pot fi filtrate postările care au anumite valori în câmpurile lor meta. Dacă ați creat un meta câmp multi-linie (de exemplu, cu ajutorul câmpurilor personalizate avansate ) și doriți doar să găsiți postări care conțin o anumită valoare în acest câmp, separate prin întreruperi de linie, se recomandă lumea REGEX a MySQL.

.­.­.

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

Într-un articol anterior am descris cum se pot integra cu ușurință animațiile de la Adobe Animate într-un site web prin ocolirea unui export APNG. Există, de asemenea, modul nativ prin exportul pânzei HTML5 , dar oricine care a lucrat deja cu el va constata că este blocat în fiecare colț (suport de răspuns insuficient, integrare greoaie într-un site web existent, nu există rate de cadre diferite pentru animație, etc.).). Biblioteca adobe-animate-embed oferă un remediu aici.

.­.­.

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 pentru browser pentru fișiere PNG animate este acum atât de bun încât animațiile create cu Animate CC pot fi exportate cu ușurință în APNG și apoi încorporate într-un site web într-o simplă etichetă <img>. Aceasta este o alternativă simplă și de bună calitate la metoda de publicare din Animate CC, care generează JavaScript. Pașii care trebuie luați sunt descriși mai jos.

.­.­.

Extindeți căutarea WordPress

Dacă doriți să extindeți căutarea nativă WordPress cu, de exemplu, meta câmpuri, este recomandabil să aruncați o privire asupra filtrelor declanșate. Cârligul posts_search este recomandat, astfel încât paginarea să funcționeze în continuare și îmbunătățirile viitoare în căutare să nu fie anulate . Cu ajutorul funcțiilor REGEXP și ExtractValue , următorul cod extinde această căutare pentru a include postări care conțin unul dintre cuvintele de căutare introduse în toate meta câmpurile.

.­.­.

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 privind protecția datelor, WhatsApp este în continuare aplicația de mesagerie preferată din Germania. Pe lângă aplicația specială WhatsApp Business , Facebook a creat și o interfață oficială, WhatsApp Business API, pentru a o face mai interesantă pentru companii. Dacă doriți să trimiteți mesaje WhatsApp programatic din aplicația dvs. web, există și alte modalități.

.­.­.

Î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 trebuie să utilizați un instrument puternic precum Google Optimize pentru teste simple de împărțire a adreselor URL, puteți rezolva Apache și prin .htaccess. Următorul fragment de cod își distribuie vizitatorii în mod egal între ambele versiuni pentru cele două pagini https://vielhuber.de/test1.php (varianta 1) și https://vielhuber.de/test2.php (varianta 2). 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

Dacă conectați Github la Composer , un număr de versiune trebuie să fie atribuit prin eticheta git . Următoarea comandă din linia de comandă determină ziua curentă și o mărește (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 cârlige slabe sau git scurtează acest deșert de simboluri.

8cd852c96ec1e60e8a5ac1f3614b2397

.­.­.

Editați declanșatorul MySQL

Din păcate, MySQL nu oferă funcția 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 citită indirect prin intermediul schemei information_schema . Acest lucru ne permite să schimbăm declanșatoarele printr-un ocol. Pentru a face acest lucru, efectuați modificările rezultatului următoarei comenzi SELECT (modificați baza de date și numele declanșatorului în prealabil) ș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 proprii sau terțe poate fi controlată fin cu ajutorul PHP și JavaScript. Deși aceasta nu este o soluție suficientă pentru punerea în aplicare a soluțiilor cookie după hotărârea judecătorească împotriva Planet49 (aici este crucial ca instrumentele de urmărire, cum ar fi Google Analytics, nici măcar să nu urmărească și, prin urmare, să nu stabilească cookie-urile), poate avea sens să fie în general cookie-uri din lista albă / listă 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.

.­.­.

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

Project Euler este o serie de probleme de programare interesante, adesea cu un fundal matematic. Problemele sunt adesea puse în așa fel încât algoritmi sofisticati trebuie să fie dezvoltați pentru a atinge obiectivul într-un timp rezonabil. Astăzi rezolvăm problema 15: Căi de rețea , pentru care puteți găsi soluția cu mijloace combinatorii simple.

.­.­.

Actualizări automate WordPress

WordPress a implementat în mod nativ actualizări de fundal de la versiunea 3.7 și le-a activat automat pentru versiuni minore. Cu ajutorul filtrelor, puteți controla comportamentul mai precis, ce anume se actualizează automat. O instalare permanentă, complet automată, a tuturor actualizărilor minore, majore, plug-in, temă și traducere nu este intenționată, dar se poate face cu ușurință altfel.

.­.­.

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 .

.­.­.

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 familiar, asemănător unei flori, care a fost găsit în temple, manuscrise și de ceva timp în cultura pop de mii de ani. Modelul joacă, de asemenea, un rol în esoterism. Ignorăm toate acestea în acest moment și ne concentrăm asupra construcției simple a formei geometrice, care este compusă din mai multe cercuri suprapuse uniform distanțate.

.­.­.

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 , regulile fine, bazate pe utilizatori, pentru editarea foilor de lucru, a coloanelor și a rândurilor pot fi definite într-o foaie de calcul. Din păcate, nu există nicio modalitate de a restricționa drepturile de citire. Cu toate acestea, acest lucru ar fi foarte util în multe scenarii. Așa că le arăți clienților tăi acele bilete care îi preocupă sau angajaților doar proiectele la care lucrează.

.­.­.

Fire plug'n'play

npm este managerul de pachete implicit pentru Node.js. Facebook dezvoltă de mult timp o soluție alternativă de gestionare a pachetelor numită Yarn . Fire pare să dispară încet din readmiturile Github, deoarece soluția standard și statisticile de pe site-ul oficial arată că doar o parte din pachete sunt efectuate de Yarn. Cu toate acestea, merită să ne gândim în afara cutiei.

.­.­.

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 de aplicații Facebook, cât și Instagram (începând de astăzi) se comportă incorect dacă un câmp de încărcare dintr-o pagină de destinație publicitară sau legată a specificat atributul accept. Prin urmare, butonul nu avea funcție. Dacă deschideți pagina în browserul extern, normal, în afara aplicației Facebook, totul este în regulă. Acest lucru este enervant (mai ales că a fost raportat de mult timp ), dar poate fi rezolvat cu o soluție.

.­.­.

Chrome Devtools: Mutați elementele DOM

Instrumentele pentru dezvoltatori Google Chrome sunt printre cele mai puternice de pe piața browserelor. În fiecare lună apar noi funcții, pe care Google le prezintă în format comprimat pe YouTube . Dar de multe ori lucrurile mici din viață sunt cele care încântă. Dacă doriți să ștergeți elemente DOM în Google Chrome, puteți face acest lucru cu tasta de ștergere. Dar abia astăzi am observat că elementele DOM pot fi, de asemenea, mutate cu ușurință folosind drag & 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ă un mediu de dezvoltare optim, Windows 10 oferă soluții complete, cum ar fi XAMPP , WAMP și MAMP , instalare manuală manuală și soluții de virtualizare precum Vagrant ( Scotch Box ) și Docker ( Devilbox , Laradock ). Dar, din cauza cerințelor mele, cum ar fi configurabilitatea gratuită, certificatele SSL cu wildcard reale, accesul de pe toate dispozitivele finale din rețeaua locală, precum și stabilitatea și performanța ridicate, toate soluțiile nu au reușit - 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

Managementul versiunilor Git este acum standard în aproape fiecare proiect web și în fiecare mediu (inclusiv producția). Git creează întotdeauna subfolderul .git și dacă acesta se află la nivelul folderului public al site-ului web, puteți accesa public fișiere sensibile (de exemplu, apelarea /.git/logs/HEAD afișează ultimele confirmări ) . Acesta explică în detaliu cum puteți clona un depozit Git terță parte (!) 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 la un server prin SSH, execută unele comenzi (de exemplu, se schimbă într-un subdirector și trimite o stare git ) și lasă shell-ul deschis. Se încarcă fișierul .bashrc, care permite sub-shell-urile colorate. Trucul este salvarea unui fișier temporar / tmp / initfile cu comenzile dorite, pentru a porni un subshell (în cazul nostru bash) cu comanda --init-file. În cadrul acestui fișier inițial, același fișier este șters din nou imediat pentru a nu lăsa urme.

.­.­.

Unitatea de rețea ca administrator

Dacă integrați o unitate de rețea în Windows Explorer, aceasta nu se aplică la nivel de sistem, ci doar pentru contul de utilizator curent. Aceasta înseamnă că nu puteți accesa această unitate de rețea într-o aplicație care rulează cu drepturi de administrator. Acest lucru poate fi schimbat cu ușurință: creați un nou DWORD (32 biți) numit EnableLinkedConnections cu valoarea 1 din registru sub HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System și reporniți. Unitățile de rețea integrate sunt apoi 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 linia numerică și încerci să o prinzi. Saltul și prinderea alternează întotdeauna. Broasca începe în poziția \(s \in \mathbb{Z}\) și la fiecare mișcare sare la o distanță de \(z \in \mathbb{Z}\) (dacă \(z>0\) , sare la dreapta, altfel dacă la stânga). \(z\) este același pentru fiecare salt. Snapping constă în specificarea unei poziții întregi. Nu se știe nici \(z\) nici \(s\) . Arătăm că există o modalitate de a prinde mereu broasca.

.­.­.

Numele de fișiere lungi pe Windows 10

Nu numai când folosești npm sub Windows, întâlnești o limită care are acum aproape 30 de ani, care restricționează căile către foldere și fișiere la maximum 255 de caractere. Aceasta nu este vina NTFS, ci LFN . Acest lucru duce la erori enervante și incompatibilitate între sistemele de operare. În vremurile WSL, aceasta este o condiție regretabilă, pe care din fericire o puteți repara în registru pentru o perioadă de timp.

.­.­.

Cozi Laravel pe localhost

În cadrul PHP Laravel în medii productive, lucrătorii și supraveghetorii se asigură că locurile de muncă stocate în Redis, de exemplu, sunt procesate. Dacă doriți să fiți complet independent de acest lucru pe localhost, fie folosiți driverul de sincronizare pentru a executa întotdeauna lucrările imediat. Aceasta are dezavantajul că procesul curent PHP este blocat și solicitarea se blochează până când lucrarea a fost procesată.

.­.­.

Sfat rapid: grupați obiective în Google Analytics

Cu ajutorul bibliotecii JavaScript analytics.js de la Google Analytics, orice evenimente de pe site-uri web pot fi urmărite. Aceste evenimente sunt, de exemplu, o măsurare exactă a duratei de ședere, adâncimea maximă de derulare a vizitatorilor sau alte acțiuni individuale, cum ar fi trimiterea formularelor. Dacă mai târziu doriți să evaluați campaniile publicitare sau să efectuați teste A / B, de exemplu, creați așa-numitele proiecte țintă.

.­.­.

Invalidarea cache-ului pragmatic

Redarea pe partea de server face acum parte din repertoriul standard de site-uri web și aplicații. Browsere, cum ar fi Google Chrome, de asemenea, tind să cache cât mai mult posibil, pentru a minimiza timpii de încărcare pentru alte apeluri. Invalidarea în cache a fișierelor CSS / JS / imagine poate fi rezolvată cu ajutorul mod_pagespeed , antet de control Expires / Cache , un manifest cache sau foarte pragmatic și direct prin parametri individuali după 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 de la Sysinternals de Mark Russinovich nu ar trebui să lipsească pe niciun computer Windows. Dacă doriți întotdeauna să aveți la îndemână cea mai recentă versiune, o puteți integra ca unitate de rețea. Comanda net use s: \\ live.sysinternals.com \ DavWWWRoot pe linia de comandă este suficientă (ca utilizator normal). Apoi, instrumente frumoase precum PsList, PsKill sau Process Explorer sunt portabile 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 sunt acum standard. Chiar și cu dezvoltarea locală, certificatele SSL au devenit indispensabile (de exemplu, navigator.geolocation necesită criptare SSL local). De la versiunea 58 a Chrome, suportul pentru CN (Common Name) a fost întrerupt, iar SAN (Subject Alternative Name) a devenit obligatoriu. Prin urmare, Chrome nu mai acceptă brusc toate certificatele SSL create în mod convențional .

.­.­.

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 epoca lui Let's Encrypt , site-urile web criptate sunt acum standard. Cu toate acestea, sunt deseori necesare și metacaractele sau certificatele extinse cu validare deosebit de fiabilă a proprietarului. Furnizorul DomainFactory oferă certificate SSL ieftine care pot fi utilizate și extern. Configurarea pe un IIS curent reușește fără CSR cu ajutorul OpenSSL . În cele ce urmează voi arăta pe scurt ce pași sunt necesari pentru aceasta.

.­.­.

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 fără sens referitoare la vizualizări în cache. În trecut, toată lumea era mai bună: vizualizarea de depanare din versiunea 4 conținea funcții mai utile și era, de asemenea, mai frumoasă din punct de vedere vizual. Cu câteva linii de cod, puteți obține această funcționalitate înapoi cu ajutorul whoops („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 potrivite doar parțial pentru interogări ierarhice sau recursive. Alte sisteme, cum ar fi ArangoDB, sunt mai bune aici (s-a vorbit despre asta la GOTO 2016 ). Dar puteți genera, de asemenea, interogări recursive în SQL cu ajutorul expresiilor de tabel comune și, astfel, interogați tabele 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 nu sunt întotdeauna fixate în prealabil și, prin urmare, nu sunt create static în prealabil (ca contribuție sau element de meniu), ci adresează obiecte din baza de date. Similar cu WordPress ( așa cum este descris aici ), este posibil și în Joomla să construiești structuri URL dinamice (independent de sistemul intern alias). Ori JRouter poate fi utilizat aici - sau puteți utiliza un singur liner în .htaccess.

.­.­.

JavaScript PasteJacking

Browserele moderne pot folosi JavaScript pentru a citi și a scrie în clipboard-ul utilizatorului, ceea ce înseamnă că îl pot manipula. Tehnologia de bază este deja o pălărie veche, dar abia recent au circulat pe Internet tot mai multe atacuri (sub numele de „PasteJacking”), care profită de această posibilitate pentru utilizatorul neexperimentat. O implementare în JavaScript este banală.

.­.­.

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

Dacă lucrați cu categorii ierarhice (taxonomii) în WordPress, veți observa că, pe de o parte, afișarea categoriilor verificate în backend este confuză și, pe de altă parte, postările nu ajung automat în categoria părinte dacă sunt plasate în categoria copil. Ambele pot fi îndreptate cu doar câteva linii de cod folosind sistemul puternic de cârlig (sub formă de acțiune și 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 putea crede că atunci când deschideți hyperlink-uri dintr-un document Word / Excel, browserul standard este pornit cu adresa URL dorită. În mod ciudat, acest lucru nu este cazul - ceea ce duce la efecte secundare neplăcute și face imposibile legăturile pentru paginile protejate de sesiune / cookie bazate pe autentificare în programele de birou menționate.

.­.­.

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 drop-down multidimensionale, se întâlnește adesea problema că submeniurile greșite sunt deschise accidental sau submeniul dorit este închis accidental. Acest efect apare atunci când indicatorul mouse-ului părăsește meniul corespunzător la nivelul superior în timp ce navigați la 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ătoarea constelație are întotdeauna un efect secundar neplăcut: Dacă vă protejați site-ul cu htaccess / htpasswd și, în același timp, forțați o conexiune SSL, aveți întotdeauna nevoie de aceeași parolă pentru a fi introdusă de două ori (o dată pentru http și din nou după intrarea cu succes pentru https). Cu ajutorul secțiunilor de configurare introduse în Apache 2.4, problema poate fi rezolvată cu ușurință.

.­.­.

Ș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 marcajului W3C sau Google PageSpeed ​​Insights sunt utile pentru evaluarea obiectivă a codului și performanței unui site web. Google influențează în special o întreagă industrie, cu concepte precum partea de sus - și oferă, de asemenea, îndrumări stricte, dar utile pentru comprimarea imaginilor și stocarea în cache. Dar se poate întâmpla ca Google să calce pe propriile picioare.

.­.­.

Bun venit JavaScript 2.0

JavaScript domină webul și ECMAScript, nucleul limbii crește. Noua specificație (ES6 sau JS2), care este așteptată la mijlocul acestui an, aduce numeroase inovații care pot fi încercate astăzi. Firefox are în prezent cel mai bun suport , dar sunt posibile și completări prin așa-numitele transpilatoare, cum ar fi Google Traceur . Următorul este 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 trebuie să fie întotdeauna fără spații (nu „aceasta este o imagine.jpg”), fără umlauturi sau caractere speciale (nu „football.jpg”), fără bare oblice (nu „Arbeit \ Auto.jpg”) și cu litere mici (nu „ test.JPG "). Recent, însă, a trebuit să accesez și să procesez un număr mare de fișiere cu orice nume de fișier pentru un proiect de client.

.­.­.

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

Tocmai am întâlnit o opțiune frumoasă în MySQL de a intra în sistemul de fișiere și de a obține informații valoroase, de exemplu despre existența fișierelor și folderelor sau a conținutului acestora. Acest lucru poate fi foarte util ca o alternativă la funcția php fișier_există , deoarece informațiile despre existența fișierului (fișierelor) pot fi utilizate în continuare în interogare pentru funcții de sortare și agregare ulterioare.

.­.­.

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

În calitate de dezvoltator web, sunteți adesea jenat să lucrați cu elemente HTML care prin ele însele - spre deosebire de elementul img, de exemplu - nu au nici o dimensiune fixă, nici un raport de aspect fix. Deseori doriți să realizați că aceste obiecte se comportă în mod receptiv, dar proporția dintre lățime și înălțime este menținută. CSS nu oferă o soluție intuitivă aici în mod implicit. Dar cu ajutorul proprietății de căptușire verticală vă puteți atinge obiectivul.

.­.­.

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

După ce săptămâna trecută Curtea Regională din Köln s-a retras în scandalul RedTube și nu i s-a permis niciodată să aprobe predarea adreselor IP controversate, pronunță o altă hotărâre extrem de controversată și discutabilă prin decizia 14 O 427/13: Fotografiile de la o anumită agenție de imagine trebuie, de asemenea, denumite prin accesul direct al imaginilor sale prin adresa 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 Unix, cât și IIS pe sistemele Windows înregistrează solicitări HTTP în format de fișier. Solicitările către propriul dvs. site web nu ar trebui să fie evaluate și analizate periodic manual și automat (de exemplu, de către analizori de fișiere jurnal, cum ar fi AWStats ) pentru a proteja împotriva atacurilor de hacking. Căile fișierelor jurnal relevante din configurațiile utilizate pe scară largă sunt, de exemplu, după cum urmează:

  • /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 alte drepturi speciale de director pentru toate fișierele încărcate prin PHP (de exemplu, pentru SSH sau FTP), le puteți seta și pentru folderul C: \ Windows \ Temp \. Dacă încărcați un fișier prin PHP, PHP copiază mai întâi acest fișier în temporar și apoi în calea finală. Dacă fișierul a aterizat în directorul temporar, își moștenește drepturile și le păstrează după mutarea î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 reducere a fitnessului McFIT și-a dat un nou schimb. În timp ce o mascotă de culoare galben strălucitor, sub formă de banană, împodobea cu litere albastre, un arc galben pe un fundal de culoare antracit este acum îndemânatic înfipt unul în celălalt și astfel formează o structură abstractă. Culorile FDP albastru și galben fac loc nu numai logo-ului, ci și tuturor celorlalte articole 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

Dacă vă optimizați propriul site web pentru dispozitive mobile, nu trebuie doar să acordați atenție diferitelor dimensiuni ale ecranului, timpilor de încărcare optimizați și caracteristicilor speciale în funcțiune (cum ar fi efectele hover), ci să luați în considerare și capacitățile speciale ale dispozitivelor. Aceasta include, de asemenea, (unele persoane au uitat) efectuarea de apeluri telefonice.

.­.­.

Duplicați conținutul de pe bloguri

Același conținut pe diferite site-uri web este pedepsit de Google în multe cazuri - totuși algoritmul Google este inteligent și recunoaște dacă elementele din antet și subsol rămân aceleași sau dacă pasaje de testare întregi pot fi atinse de două ori sub diferite adrese URL. Întrebarea interesantă este cum se ocupă Google de paginile de prezentare generală a articolelor de pe blog.

.­.­.

Sporiți securitatea WordPress

Securitatea celui mai popular sistem de gestionare a conținutului în prezent WordPress poate fi crescută semnificativ prin rotirea a două șuruburi mici. Durează doar 5 minute și două linii de cod. Deși problema poate fi rezolvată cu o varietate de pluginuri, mă limitez în mod deliberat la soluții fără pluginuri.

.­.­.