The impact of DoS (Denial of Service) cyberattacks on a Local Area Network (LAN)

postat în: Știri 0

In this paper I will highlight a modus operandi of hackers launching Denial of Service (DoS) cyberattacks. I will theoretically show how CAM Overflow and TCP SYN Flood attacks can be performed, using Kali Linux, a Linux distribution used by cyber criminals to launch MitM (Man-in-the-Middle) attacks, DoS attacks, observing traffic in a computer network, etc. Hackers can affect the functioning of devices on an organization’s local network (server, router, switch, etc.) by sending thousands of packets per second to the target device. CAM Overflow is an attack where a hacker aims to overcrowd the CAM table of a switch with MAC addresses, and TCP SYN Flood is an attack that can be launched against a server in the computer network.

INTELLIGENCE INFO, Vol. 1, Nr. 1, Septembrie 2022, pp. 125-130
ISSN 2821 – 8159, ISSN – L 2821 – 8159, DOI: 10.58679/II52272

The impact of DoS (Denial of Service) cyberattacks on a Local Area Network (LAN)

A apărut revista IT & C, Volumul 2, Numărul 2, Iunie 2023

postat în: Media 0

 

Revista IT & C, Volumul 2, Numărul 2, Iunie 2023Revista IT & C este o publicație trimestrială din domeniile tehnologiei informației și comunicații, și domenii conexe de studiu și practică.

Cuprins:

EDITORIAL
Filosofia tehnologiei blockchain

TEHNOLOGIA INFORMAȚIEI
Descoperirea proceselor de afaceri

TELECOMUNICAȚII
Implementarea rețelelor de telecomunicații 5G

INTERNET
Aspecte legale în lucrul cu Big Data

SOFTWARE
Mecanismele de consens blockchain

PROGRAMARE
Imaginea memoriei în programarea cu Python

DEZVOLTARE WEB
Taxonomii folosite în dezvoltarea WordPress

SECURITATE CIBERNETICĂ
Inteligența artificială și securitatea cibernetică – Active IA care se pot constitui în amenințări

ISSN 2821– 8469 ISSN – L 2821 – 8469, DOI: 10.58679/IT65591

https://www.internetmobile.ro/revista/revista-it-c-volumul-2-numarul-2-iunie-2023/

Descoperirea proceselor de afaceri

IT & C - Descarcă PDFSfetcu, Nicolae (2023), Descoperirea proceselor de afaceri, IT & C, 2:2, 7-13, DOI: 10.58679/IT73315, https://www.internetmobile.ro/descoperirea-proceselor-de-afaceri/

 

Business process discovery

Abstract

Business process discovery related to process mining is a set of techniques that automatically build a representation of an organization’s current business processes and major process variations. These techniques use evidence found in existing technology systems that run business processes within an organization.

Keywords: business process discovery, business processes, business, data mining, techniques

Rezumat

Descoperirea proceselor de afaceri legată de procesele de minerit este un set de tehnici care construiesc automat o reprezentare a proceselor de afaceri curente ale unei organizații și a variațiilor majore ale procesului. Aceste tehnici folosesc dovezi găsite în sistemele tehnologice existente care rulează procesele de afaceri în cadrul unei organizații.

Cuvinte cheie: descoperirea proceselor de afaceri, procese de afaceri, afaceri, mineritul datelor, tehnici

 

IT & C, Volumul 2, Numărul 1, Martie 2023, pp. 7-13
ISSN 2821 – 8469, ISSN – L 2821 – 8469, DOI: 10.58679/IT73315
URL: https://www.internetmobile.ro/descoperirea-proceselor-de-afaceri/
© 2023 Nicolae Sfetcu. Responsabilitatea conținutului, interpretărilor și opiniilor exprimate revine exclusiv autorilor.

 

Descoperirea proceselor de afaceri

Nicolae Sfetcu

nicolae@sfetcu.com

 

Descoperirea proceselor de afaceri (Business process discovery, BPD) legată de procesele de minerit este un set de tehnici care construiesc automat o reprezentare a proceselor de afaceri curente ale unei organizații și a variațiilor majore ale procesului. Aceste tehnici folosesc dovezi găsite în sistemele tehnologice existente care rulează procesele de afaceri în cadrul unei organizații.

Tehnici de descoperire a proceselor de afaceri

Tehnicile de descoperire a proceselor de afaceri includ următoarele proprietăți:

Paradigma emergentă – Metodele actuale se bazează pe interviuri manuale structurate de sus în jos, bazate pe reprezentări la mâna a doua a procesului de afaceri/comportamentelor sistemului. Un proces automatizat de descoperire se bazează pe colectarea de date din sistemul de informații pe o perioadă de timp. Aceste date pot fi apoi analizate pentru a forma un model de proces.

Descoperirea automată a proceselor – Prin automatizarea analizei datelor, subiectivitatea tehnicilor curente de analiză manuală a proceselor este eliminată. Sistemul automatizat are o metodologie înrădăcinată care, prin încercări repetate, s-a dovedit că descoperă cu acuratețe procese și variații de proces fără părtinire.

Informații exacte – Deoarece informațiile sunt colectate de la sursa reală, nu pot fi inexacte, spre deosebire de a le colecta de la reprezentarea unei părți secundare.

Informații complete – Un proces automatizat captează toate informațiile care au loc în sistem și le reprezintă în funcție de oră, dată, utilizator etc… Deoarece informațiile sunt culese din interacțiuni în timp real, nu pot fi pierdute sau pierdute să existe probleme de memorie selectivă. Aceasta include caracterul complet în ceea ce privește excepțiile din procese. Adesea, excepțiile sunt tratate ca „zgomot” statistic, ceea ce poate exclude ineficiențe importante în procesele de afaceri.

Proces standardizat – Colectarea automată de informații oferă date de proces care pot fi grupate, cuantificate și clasificate. Acest lucru oferă o bază pentru dezvoltarea și monitorizarea atât a proceselor actuale, cât și a celor noi, cărora li se pot atribui criterii de referință. Aceste repere sunt rădăcina atât a noului proiect de proces, cât și a stabilirii cauzei principale a problemei. În plus, datele standardizate ale procesului pot pune bazele eforturilor de îmbunătățire continuă a procesului.

Aplicație / Tehnici

Descoperirea proceselor de afaceri completează și se bazează pe munca în multe alte domenii.

Descoperirea proceselor este unul dintre cele trei tipuri principale de minerit al proceselor. Celelalte două tipuri de minerit procese sunt verificarea conformității și extinderea/îmbunătățirea modelului. Toate aceste tehnici au ca scop extragerea cunoștințelor legate de proces din jurnalele de evenimente. În cazul descoperirii procesului, nu există un model de proces anterior; modelul este descoperit pe baza jurnalelor de evenimente. Verificarea conformității are ca scop găsirea diferențelor între un anumit model de proces și jurnalul de evenimente. În acest fel este posibilă cuantificarea conformității și analiza discrepanțelor. Îmbunătățirea adoptă un model a priori și îl îmbunătățește sau îl extinde folosind informații din registrul de evenimente, de exemplu, afișează blocajele.

Descoperirea proceselor de afaceri este următorul nivel de înțelegere în domeniul emergent al analiticii de afaceri, care permite organizațiilor să vadă, să analizeze și să ajusteze structura și procesele care stau la baza operațiunilor de zi cu zi. Această descoperire include colectarea de informații despre toate componentele unui proces de afaceri, inclusiv tehnologia, oamenii, procedurile și protocoalele departamentului.

Descoperirea proceselor de afaceri creează un proces principal care completează analitica procesului de afaceri (business process analysis, BPA). Instrumentele și metodologiile BPA sunt potrivite pentru descompunerea proceselor ierarhice de sus în jos și analitica proceselor viitoare. BPD oferă o analiză de jos în sus care se îmbină cu cea de sus în jos pentru a oferi un proces de afaceri complet, organizat ierarhic de BPA.

Business intelligence oferă organizațiilor rapoarte și analize privind datele din organizațiile lor. Cu toate acestea, BI nu are model de proces, conștientizare sau analiză. BPD completează BI oferind o vizualizare explicită a procesului pentru operațiunile curente și oferind analize pe acel model de proces pentru a ajuta organizațiile să identifice și să acționeze asupra ineficiențelor sau anomaliilor procesului de afaceri.

Analitica web este un exemplu limitat de BPD prin faptul că analiza web reconstruiește procesul utilizatorului web în timp ce interacționează cu un sit web. Cu toate acestea, aceste analize sunt limitate la procesul conținut în sesiune, din perspectiva utilizatorilor și în ceea ce privește doar sistemul și procesul bazat pe web.

Triajul afacerilor oferă un cadru pentru clasificarea proceselor identificate prin analiza proceselor de afaceri (BPA) pe baza importanței lor relative pentru atingerea unui obiectiv sau rezultat măsurabil declarat. Folosind aceleași categorii angajate de serviciile medicale militare și de dezastre, procesele de afaceri sunt clasificate astfel:

  • Esenţial/critic (proces roşu) – Proces esenţial pentru atingerea rezultatelor/obiectivelor
  • Important/urgent (proces galben) – Proces care accelerează atingerea rezultatelor/ obiectivelor
  • Opțional/de susținere (proces verde) – Procesul nu este necesar pentru atingerea rezultatelor/obiectivelor

Resursele sunt alocate în funcție de categoria de proces, cu resurse mai întâi dedicate proceselor roșii, apoi proceselor galbene și în final proceselor verzi. În cazul în care resursele devin limitate, resursele sunt mai întâi reținute de la procesele verzi, apoi de la procesele galbene. Resurse sunt reținute de la procesele roșii numai dacă eșecul în atingerea rezultatelor/obiectivelor este acceptabil.

Scopul / Exemplu

Un mic exemplu poate ilustra tehnologia descoperirii proceselor de afaceri care este necesară astăzi. Instrumentele automate de descoperirea proceselor de afaceri captează datele necesare și le transformă într-un set de date structurate pentru diagnosticul propriu-zis; O provocare majoră este gruparea acțiunilor repetitive de la utilizatori în evenimente semnificative. În continuare, aceste instrumente de descoperire a proceselor de afaceri propun modele de proces probabilistice. Comportamentul probabilist este esențial pentru analiza și diagnosticarea proceselor. Următoarele arată un exemplu în care un proces probabil de reparare este recuperat din acțiunile utilizatorului. Modelul de proces „așa cum este” arată exact unde este problema în această afacere. Cinci la sută reparații defecte sunt un semn rău, dar și mai rău, remediile repetitive care sunt necesare pentru a finaliza acele reparații sunt greoaie.

Istorie

Business intelligence (BI) a apărut în urmă cu mai bine de 20 de ani și este esențială pentru raportarea a ceea ce se întâmplă în sistemele unei organizații. Cu toate acestea, aplicațiile actuale BI și tehnologiile de minerit a datelor nu sunt întotdeauna potrivite pentru evaluarea nivelului de detaliu necesar pentru a analiza datele nestructurate și dinamica umană a proceselor de afaceri.

Six-Sigma și alte abordări cantitative pentru îmbunătățirea proceselor de afaceri au fost folosite de peste un deceniu cu grade diferite de succes. O limitare majoră a succesului acestor abordări este disponibilitatea datelor exacte care să formeze baza analizei. Cu BPD, multe organizații six-sigma găsesc capacitatea de a-și extinde analiza în mod eficient în procesele de afaceri majore.

Exploatarea proceselor, potrivit cercetătorilor de la Universitatea de Tehnologie Eindhoven, (PM) a apărut ca disciplină științifică în jurul anului 1990, când tehnici precum algoritmul Alpha au făcut posibilă extragerea modelelor de proces (reprezentate de obicei ca rețele Petri) din jurnalele de evenimente. Cu toate acestea, recunoașterea acestei discipline științifice este extrem de limitată în câteva țări. Pe măsură ce hype-ul mineritul proceselor purtat de Universitatea de Tehnologie din Eindhoven a crescut, au apărut din ce în ce mai multe critici care subliniază că mineritul proceselor nu este altceva decât un set de algoritmi care rezolvă o problemă specifică și simplă de afaceri: descoperirea proceselor de afaceri și metode auxiliare de evaluare. Astăzi, există peste 100 de algoritmi de extragere a proceselor care sunt capabili să descopere modele de proces care includ și concurența, de exemplu, tehnici de descoperire a proceselor genetice, algoritmi de extracție euristică, algoritmi de extracție bazați pe regiune și algoritmi de extragere fuzzy.

Descoperirea proceselor de afaceri

O analiză mai profundă a datelor de proces „așa cum sunt” poate dezvălui care sunt părțile defecte responsabile pentru comportamentul general din acest exemplu. Poate duce la descoperirea unor subgrupuri de reparații care au nevoie de fapt de concentrare a managementului pentru îmbunătățire.

Descoperirea proceselor de afaceri

În acest caz, ar deveni evident că piesele defecte sunt și ele responsabile pentru reparațiile repetitive. Au fost documentate aplicații similare, cum ar fi cazul unui furnizor de asigurări de sănătate în care în 4 luni a fost obținut rentabilitatea investiției în analiza procesului de afaceri prin înțelegerea precisă a procesului de tratare a daunelor și descoperirea pieselor defecte.

Referințe

  • Ward, J. & Peppard, J. (2002). Situation Analysis. In Strategic Planning for information systems. (pp. 82 – 83). England: John Wiley & Sons. ISBN 978-0-470-84147-1
  • D’Atri A., De Marco M., Casalino N. (2008). “Interdisciplinary Aspects of Information Systems Studies”, Phys-ica-Verlag, Springer, Germany, pp. 1-416, doi:l0.l007/978-3-7908-20l0-2 ISBN 978-3-7908-2009-6
  • Verna Allee, The Knowledge Evolution: Expanding Organizational Intelligence, Butterworth-Heinemann (1997) ISBN 0-7506-9842-X
  • David Perkins, King Arthur’s Round Table: How Collaborative Conversations Create Smart Organizations, Wiley (2002) ISBN 0-4712-3772-8
  • Tufte, Edward (1983). The Visual Display of Quantitative Information. Cheshire, Connecticut: Graphics Press. ISBN 0-9613921-4-2.
  • [David Loshin (2003), “Business Intelligence: The Savvy Manager’s Guide, Getting Onboard with Emerging IT”, Morgan Kaufmann Publishers, ISBN 9781558609167].
  • Kimball, R., Ross, M., Thornthwaite, W., Mundy, J., Becker, B. The Data Warehouse Lifecycle Toolkit, Wiley Publishing, Inc., 2008. ISBN 978-0-470-14977-5
  • McGonagle, John J. and Carolyn M. Vella (2003). The Manager’s Guide to Competitive Intelligence. Westport CT: Greenwood Publishing Group. p. 184. ISBN 1567205712.
  • Vitaly Friedman (2008) „Data Visualization and Infographics” Arhivat 2008-07-22 la Wayback Machine în: Graphics, Monday Inspiration, 14 ianuarie 2008.
  • Viegas, Fernanda; Wattenberg, Martin (April 19, 2011). „How To Make Data Look Sexy”. CNN.com. Arhivat din original pe 6 mai 2011.
  • Frits H. Post, Gregory M. Nielson and Georges-Pierre Bonneau (2002). Data Visualization: The State of the Art. Research paper TU delft, 2002. Arhivat 2009-10-07 la Wayback Machine.
  • Rozinat and W.M.P. van der Aalst. Conformance Testing: Measuring the Fit andAppropriateness of Event Logs and Process Models. In C. Bussler et al., editor, Business Process Management 2005 Workshops, volume 3812 of Lecture Notes in Computer Science, pages 163–176. Springer-Verlag, Berlin, 2006.
  • Tufte, Edward (1983). The Visual Display of Quantitative Information. Cheshire, Connecticut: Graphics Press. ISBN 0-9613921-4-2. Arhivat din original la 2013-01-14.
  • „Telling Visual Stories About Data – Congressional Budget Office”. www.cbo.gov. Arhivat din original la 2014-12-04.
  • van der Aalst, W., Reijers, H. & Song, M. Discovering Social Networks from Event Logs. Comput Supported Coop Work 14, 549–593 (2005). https://doi.org/10.1007/s10606-005-9005-9
  • Vitaly Friedman (2008) „Data Visualization and Infographics” Arhivat 2008-07-22 la Wayback Machine în: Graphics, Monday Inspiration, 14 ianuarie 2008.

 

Sursa: Drew Bentley, Business intelligence și analitica în afaceri. MultiMedia Publishing (2023), Traducere și adaptare de Nicolae Sfetcu, ISBN 978-606-033-776-8, licența CC BY-SA 4.0, https://www.telework.ro/ro/e-books/business-intelligence-si-analitica-in-afaceri/

Imaginea memoriei în programarea cu Python

IT & C - Descarcă PDFSfetcu, Nicolae (2023), Imaginea memoriei în programarea cu Python, IT & C, 2:2, 33-38, DOI: 10.58679/IT13240, https://www.internetmobile.ro/imaginea-memoriei-in-programarea-cu-python/

 

Memory Image in Python Programming

Abstract

Python is a multi-paradigm programming language that pursues a simpler, less cluttered syntax and grammar while giving developers a choice in their coding methodology. In most situations, it is recommended to allocate memory from the Python heap, since the latter is under the control of the Python memory manager. Even when the requested memory is used solely for internal, very specific purposes, delegating all memory requests to the Python memory manager gives the interpreter a more accurate picture of its overall memory footprint. For learning the Python programming language, it is easy to work with memory images in a very specific format.

Keywords: programming, programming language, Python, memory, memory image

Rezumat

Python este un limbaj de programare multi-paradigmă care urmărește o sintaxă și o gramatică mai simple, mai puțin aglomerate, oferind în același timp dezvoltatorilor o alegere în metodologia lor de codare. În cele mai multe situații, se recomandă alocarea memoriei din heap-ul Python, deoarece acesta din urmă este sub controlul managerului de memorie Python. Chiar și atunci când memoria solicitată este utilizată exclusiv în scopuri interne, foarte specifice, delegarea tuturor solicitărilor de memorie către managerul de memorie Python face ca interpretul să aibă o imagine mai precisă a amprentei sale de memorie în ansamblu. Pentru învățarea limbajului de programare Python, este ușor de lucrat cu imaginile memoriei, într-un format foarte specific.

Cuvinte cheie: programare, limbaj de programare, Python, memorie, imaginea memoriei

 

IT & C, Volumul 2, Numărul 1, Martie 2023, pp. 33-38
ISSN 2821 – 8469, ISSN – L 2821 – 8469, DOI: 10.58679/IT13240
URL: https://www.internetmobile.ro/imaginea-memoriei-in-programarea-cu-python/
© 2023 Nicolae Sfetcu. Responsabilitatea conținutului, interpretărilor și opiniilor exprimate revine exclusiv autorilor.

 

Imaginea memoriei în programarea cu Python

Nicolae Sfetcu

nicolae@sfetcu.com

 

Introducere

Python urmărește o sintaxă și o gramatică mai simple, mai puțin aglomerate, oferind în același timp dezvoltatorilor o alegere în metodologia lor de codare. Este un limbaj de programare multi-paradigmă. Programarea orientată pe obiecte și programarea structurată sunt pe deplin acceptate, iar multe dintre caracteristicile sale acceptă programarea funcțională și programarea orientată pe aspect (inclusiv prin metaprogramare și metaobiecte (metode magice)). Multe alte paradigme sunt acceptate prin intermediul extensiilor, inclusiv proiectarea prin contract și programarea logică.

În cele mai multe situații, se recomandă alocarea memoriei din heap-ul Python, deoarece acesta din urmă este sub controlul managerului de memorie Python. De exemplu, acest lucru este necesar atunci când interpretul este extins cu noi tipuri de obiecte scrise în C. Un alt motiv pentru utilizarea heap-ului Python este dorința de a informa managerul de memorie Python despre nevoile de memorie ale modulului de extensie. Chiar și atunci când memoria solicitată este utilizată exclusiv în scopuri interne, foarte specifice, delegarea tuturor solicitărilor de memorie către managerul de memorie Python face ca interpretul să aibă o imagine mai precisă a amprentei sale de memorie în ansamblu.

Pentru învățarea limbajului de programare Python, este ușor de lucrat cu imaginile memoriei. Imaginile memoriei vor avea un format foarte specific, iar acest lucru este crucial: nu fiți creativi cu modul în care sunt etichetate lucrurile sau unde sunt desenate lucrurile. Pentru ca să funcționeze codul dvs., trebuie să aveți această imagine exact corectă. Nu este artă; este știință.

Imaginile noastre ale memoriei vor fi întotdeauna împărțite în exact două „zone”, una în stânga și una în dreapta, etichetate după cum urmează:

Scrierea în memorie

Când creăm variabile atomice într-o celulă Code, precum:

pin_count = 844
username = ‘Bekka Palmer’

fiecare este pusă pe partea stângă a diagramei ca o casetă cu nume. Numele casetei este numele variabilei, iar elementul din casetă este valoarea acesteia.

Nu contează ce casete sunt mai mari sau mai mici pe pagină, doar că fiecare nume se asociază cu caseta corespunzătoare și nu se încurcă. Ca bonus, am colorat diferit casetele, indicând faptul că pin_count (int) este un alt tip decât numele de utilizator (str)[1].

Crearea mai multor variabile adaugă doar mai multe casete cu nume:

...
avg_num_impressions = 1739.3
board_name = “Things to Make”

Am amestecat în mod deliberat ordinea casetelor. Python nu oferă nicio garanție cu privire la „ordinea” în care va stoca variabilele. Garanțiile Python sunt doar că va stoca în mod constant un nume, o valoare și un tip pentru fiecare variabilă.

Când schimbăm valoarea unei variabile (mai degrabă decât să creăm una nouă), valoarea din caseta corespunzătoare se actualizează:


avg_num_impressions = 2000.97
pin_count = 845
another_board = ‘Pink!’

Rețineți că valoarea anterioară din casetă este complet ștearsă și nu există absolut nicio modalitate de a o recupera vreodată. De fapt, nu există nicio modalitate de a ști că a existat chiar o valoare anterioară diferită de cea actuală. Cu excepția cazului în care sunt organizate în mod specific, programele de computer țin doar evidența prezentului, nu a trecutului.

Un alt aspect: spre deosebire de unele limbaje de programare (așa-numitele limbaje „puternic tipizate”, precum Java sau C++), chiar și tipul valorii pe care o deține o variabilă se poate schimba dacă doriți. Chiar dacă următorul exemplu nu are prea mult sens, să presupunem că am scris acest cod în continuare:


pin_count = 999.635
username =11

Acest lucru face ca nu numai conținutul casetelor să se schimbe, ci chiar și culorile acestora. Variabila username a fost acum un moment, dar acum este int.

Citirea din memorie

„Citirea din memorie” înseamnă doar referirea la o variabilă pentru a-i recupera valoarea. Până în prezent, nu știm cum să facem cu excepția tipăririi:

print(“The {} board has {} pins.”.format(another_board,
pin_count))

▌The Pink! board has 999.635 pins.

Important este că imaginea memoriei este (doar) înregistrarea curentă și fiabilă a aspectului memoriei în orice punct al unui program. Gândiți-vă la asta ca reflectând un instantaneu în timp: imediat după executarea unei linii de cod – și chiar înainte de următoarea – putem consulta imaginea pentru a obține valoarea fiecărei variabile. Exact asta face, practic, Python.

Subliniez acest punct, deoarece există mulți începători care privesc codul complicat și încearcă să „gândească” ce valoare va avea fiecare variabilă pe măsură ce rulează. Este greu de făcut cdoar cu câteva linii. Pentru a ține evidența a ceea ce s-a schimbat în ceea ce s-a schimbat și când, trebuie să păstrați cu adevărat o listă actualizată a valorii fiecărei variabile pe măsură ce programul se execută … ceea ce este de fapt exact ceea ce este imaginea memoriei.

Deci, dacă încercați să vă dați seama „ce va ieși din acest program dacă imprim variabila odometer imediat după linia 12?” nu încercați să priviți codul și să-i reconstruiți comportamentul de la zero. În schimb, desenați o imagine a memoriei, actualizați-o în mod corespunzător în timp ce parcurgeți fiecare linie de cod, apoi uitați-vă la ea pentru răspuns.

Bibliografie

Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2021 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1

Note

[1] Un alt detaliu minuscul pe care l-ați putea observa: chiar dacă codul nostru avea ghilimele simple pentru a delimita numele Bekka Palmer, am pus ghilimele duble în caseta din imaginea memoriei. Acest lucru subliniază faptul că, indiferent de modul în care creați un șir în cod – indiferent dacă este vorba de ghilimele simple sau duble – „lucrul” care se scrie în memorie este același. De fapt, cele stocate sunt de fapt caracterele Bekka Palmer fără ghilimele. Totuși, îmi place să introduc ghilimele în imaginile memoriei, doar pentru a sublinia natura șirului valorii.

 

CC BY SA 4.0Acesta este un articol cu Acces Deschis (Open Access) sub licența Creative Commons CC BY-SA 4.0 (http://creativecommons.org/licenses/by/4.0/).

1 27 28 29 30 31 32 33 44