Tehno-istericale

Manțocării cu Mono Cecil

Să presupunem că, total benign și mânat de duhul blândeții, ai nevoie să ajustezi capabilitățile oferite de o aplicație la al cărei cod sursă nu ai acces neam. Să mai presupunem că aplicația este scrisă-n .NET (ce convenabil!) și că ajustarea capabilităților e controlată direct dintr-o clasă anume dintr-un assembly oarecare, prin niște proprietăți ce returnează un simplu true/false (cel puțin legat de aspectele care importă).

Motanul Patraulea, făcându-mi code review

Motanul Patraulea, făcându-mi code review

Poți să livrezi la rândul tău scuze sau poți… să-ți creezi o variantă modificată a assembly-urilor în cauză astfel încât să-ți poți vedea mai departe de lucru, de viață și de facturile care te vor îmbogăți dincolo de cele mai umede visuri ale avarului.

Și, de 10 Euro, poți să iei un ecler și un cico nevesti-tii că te suportă așa programator cum ești (ah, drama fiecărui om ce face umbră pământului, unii cu folos, alții fără: vrea să fie primit de semenii lui așa cum e, dar nimeni nu-i obligat să o facă!). Iar dacă nu ai sau e prea cățea independentă ca să merite, poți lua de 10 Euro bobițe pentru motanul Patraulea.

Citește mai departe →

Kobyashi Maru

Am încheiat recent un proiect având interacțiunea cu o bază de date SQL Server prin Entity Framework (EF) 6.3, elemente care nu puteau fi supuse modificării. Nu că ar fi ceva rău, nu că as avea ceva de obiectat, dar este important de menționat pentru restul povestirii.

Ilustrație - DALL-E2

Ilustrație – DALL-E2

Pe lângă legătura standard dintre entități și tabele (sau view-uri) din baza de date, am fost nevoit să folosesc și interogări construite, folosind, Database.SqlQuery<TSmuff>(), pe baza unor funcții SQL ce returnează date tabelare, dar cu parametri ceva mai… deosebiți – TVP, adică Table Valued Parameters.

Acest fapt necesită crearea explicită a unor instanțe de DbParameter; nu pot fi transmise pur și simplu valorile, fapt ce-ar lăsa-n sarcina EF crearea instanțelor de DbParameter atunci când este momentul. Și, ca o restricție suplimentară: Database.SqlQuery<>() acceptă drept argumente ori doar valori, ori doar instanțe de DbParameter; nu poți să le combini.

Citește mai departe →

Stakhanovise.NET – Sau cum să-ndeplinești cincinalul în patru ani

Motto
Stahanovismul n-a murit, doar un pic s-o răspândit.

Stahanovismul a fost o mare găselniță. A rămas în lume precum râia – nici în ziua de azi nu și-a luat liber, nici măcar o zi. Atât de mare a fost impactul său civilizațional încât prin anii ’60 sau ’70 CIA a desfășurat o operațiune specială pentru extragerea sa pe șestache din Uniunea Sovietică, deîmpreună cu coaiele lui Lenin păstrate-n formol (mai mult despre Dânsele într-un studiu istoric de primă clasă pe care-l voi publica în timp util).

Cele două artefacte au clădit practic întreaga lume nouă de o parte și de alta a oceanului. Marile corporații de azi ar fi fost practic de neimaginat fără sarabanda derivatelor motivaționale sintetice din această mare filozofie de viață.

Politicile publice de sănătate, de gen, transgen și contragen, administrative, întreg Sovietul European, toate se bazează pe stahanovism și aerul doct degajat de acele două Biluțe care-au schimbat lumea așa cum o știm.

Dacă ar trăi astăzi, Vasile Roaită ar mai sta o dată cu mâna pe sonerie, dar acum de fericire. Din păcate, Dânsul nu mai este cu noi și, într-un act de insuficientă compensare, dar cu sincere Sentimente Proletare, anunț cu tremur în voce un nou proiect marca Atelierele Boia: Stakhanovise.NET.

Citește mai departe →

Cum filtrezi produse-n WooCommerce după clasa de transport

Filtrarea produselor după clasa de transport este de fapt relativ simplu, având în vedere că WooCommerce este proiectat să adauge automat clasa de livrare în lista de conditii de interogare atunci când este prezentă ca parametru în URL, cu denumirea product_shipping_class.

Sursa: Envato Elements

Sursa: Envato Elements

Așadar, tot ce ne mai rămâne de făcut este să adăugăm, în zona de filtrare a paginii de produse din panoul de administrare, un element de tip drop-down, cu numele (atributul HTML name) amintit mai sus, care să afișeze clasele de livrare. În plus, trebuie să și marcăm corespunzător clasa de livrare aleasă.

Citește mai departe →

Cum activezi livrarea automată în WooCommerce pe baza unui produs anume

Dacă te-ai întrebat cum poți implementa acordarea de transport gratuit cu titlu promoțional, atunci când un client adaugă în coș un produs marcat anume în acest scop, are să te cuprindă mirarea aflând (dar află oricum) că ai două modalități. Una mai grea, alta mai ușoară.

Mai greu

Calea mai dificilă și (probabil) mai interesantă pentru utilizatorii care știu un pic de programare și, eventual, pentru programatorii care știu un pic de programare este să-și scrie singur propriul modul, idee pe care o vom urmări mai jos.

Ilustrație de BZ

Ilustrație de BZ

O soluție, probabil nu singura, dar, în orice caz, cea care a funcționat pentru mine și pe care am folosit-o este folosirea noțiunii de clasă de transport disponibilă în WooCommerce pentru a marca produsul sau produsele care acordă favorul de transport gratuit.

Citește mai departe →