Awk cum să faci bani

awk cum să faci bani

Introducere Pentru al doilea an consecutiv am avut şansa de a obţine o slujbă de vară la laboratoare Bell Bell Labs ale companiei Lucent. Aceste laboratoare de cercetare sunt printre cele mai prestigioase din lume, numărînd nu mai puţin de 11 premii Nobel. Schawlow, şi Charles H.

Anul acesta mi-am luat inima în dinţi şi am solicitat un interviu domnului Brian Kernighan. Iată aici textul interviului transcris după înregistrarea făcută cu ajutorul unui calculator echipat cu un microfon. Versiunea în limba engleză a interviului va fi disponibilă din pagina mea de web, pentru a demonstra că de fapt nu am inventat mare lucru.

M:Care e modul corect în care se pronunţă numele dumneavoastră? Am auzit că nu este chiar cum ne-am astepta. K:Se pronunţă Kărnihăn. Figura 1: Brian Kernighan M:Aţi ales să lucraţi în informatică într-o perioadă în care aceasta nu era cea mai evidentă alegere pentru o carieră. Awk cum să faci bani ne puteţi spune despre cum aţi făcut această alegere şi ce gîndiţi retroactiv despre această decizie?

K:E adevărat că am început să lucrez cu calculatoarele, probabil pe la mijlocul anilor şaizeci, cînd lucrurile erau destul de la început, şi am făcut-o din accident. Cred că am văzut primul meu calculator înera un IBM destul de vechi; nu am început programarea serioasă decît prin cînd eram în student în ultimul an. Cînd am mers la studii postuniversitare exista un program de informatică în departamentul de inginerie electrică de la universitatea Princeton; asta era destul de tipic pentru multe alte locuri: nu exista un domeniu academic separat al informaticii, ci doar o parte a unui departament care avea un calculator sau ceva oameni interesaţi de calcule, aşa că am intrat şi eu în domeniu, în întregime accidental.

Dar a fost un accident norocos, pentru că în mod evident au fost o mulţime de întîmplări interesante în domeniu. M:Aţi lucrat în acest domeniu multă vreme, şi aţi fost un jucător important în evoluţia informaticii.

Unele din lucrările dumneavoastră au influenţat profund domeniul. Puteţi arăta unele dintre lucrurile pe care le consideraţi avansuri fundamentale în informatică în ultimii 30 de ani; ce schimbări de paradigmă crede,ti că s-au petrecut? K:Cred că a fost un număr mare de schimbări, nu neapărat în informatică [ca ştiinţă], ci în calculatoare în general.

Evident, faptul că hardware-ul a devenit enorm de rapid: legea lui Moore, deşi e o schimbare cantitativă, cînd este aplicată ca o creştere exponenţială timp de 30 de ani are un impact enorm; unele părţi ale acestei schimbări depind de informatică, dar nu toate.

opțiuni versiune demo

Pe de altă parte, lucrurile cu care sunt mai familiar, şi în care sunt mai interesat tehnologic, este folosirea feluritelor limbaje de programare în aşa fel încît să fim mai capabili să transmitem maşinilor ceea ce vrem să facem. Creşterea în domeniul limbajelor de programare, a tehnologiilor care ne permit să înţelegem cum să exprimăm comenzile pentru maşini, a avut de asemenea un impact enorm. Desigur, pe măsură ce maşinile deveneau mai puternice îţi puteai permite să aloci mai multe resurse pentru a folosi limbaje care nu ar fi fost eficiente cu 25 sau 30 de ani în urmă, dar care acum sunt perfect utilizabile.

  • Mai sunt altele cu filozofii diferite si o cota mai mica Arch,Gentoo,etc….
  • Cum se scrie scripturi în Linux.

Alte schimbări importante sunt îmbunătăţirile algoritmice, teoria NP-completitudinii, care ne permite să gîndim despre ceea ce este greu şi ceea ce este uşor de calculat. Dar în ceea ce mă priveşte lucrurile pe care le găsesc cele mai interesante sunt dezvoltările în domeniul limbajelor de programare. M:De-a lungul timpului aţi lucrat în foarte multe domenii: algoritmi pentru grafuri, software engineering, scule software, tipografie digitală, dar cea mai mare parte din cercetarea dumneavoastră este în limbaje de programare.

Care sunt interesele dumneavoastră curente în cercetare? K:[rîzînd] E interesant, ceea ce am făcut în ultimele zile este să meşteresc awk cum să faci bani la probabil cele mai vechi rădăcini ale mele în domeniul prezentării computerizate de documente, sau tipografie digitală, dacă preferi.

Am luat eqn, care e un program pe care Lorinda Cherry şi cu mine l-am scris înşi îl convertesc pentru a produce rezultate în XML sau HTML, în aşa fel încît să putem pune mai uşor formule matematice în pagini de web. Mai multe persoane awk cum să faci bani încercat să facă acest lucru în felurite moduri, dar nici unul dintre ele nu pare să meargă prea bine, sau să fie terminat.

Noi avem nevoie de aşa ceva, aşa că eu lucrez la un program C pe care l-am scris literal cu mai mult de 25 de ani în urmă. E un program C foarte mic, şi mă distrează foarte tare să încerc să-l transform. Ăsta e unul din lucrurile pe care le fac, un lucru mărunt, dar e amuzant să te întorci şi să faci ceva la care te-ai ostenit cu atîta vreme în urmă. AMPL este un limbaj folosit pentru awk cum să faci bani specifica probleme de optimizare, ca de exemplu pentru a descrie probleme de programare lineară, dar nu numai.

Încercăm să finisăm produsul pentru a putea fi folosit în procese mai complicate: de exemplu am învelit sistemul cu o interfaţă orientată pe obiecte ca să awk cum să faci bani fi îngropat în alte programe sau folosit ca un obiect CORBA sau COM. Astea sunt cele două lucruri de care mă ocup acum. M:Dacă tot am vorbit despre limbaje de programare, se mai compilează vechiul program eqn?

K:Da, se mai compilează. Probabil că nu l-am mai compilat de cinci sau zece ani, şi s-a compilat fără nici o problemă. Ceea ce fac acum sfaturi pentru tranzacționarea opțiunilor binare mai ales să tai din el, pentru că limbajul de ieşire este mult mai awk cum să faci bani decît înainte.

M:Cei mai mulţi oameni vă cunosc probabil din cauza cărţii de C, aşa că o să vă pun două întrebări legate de C. Limbajul C a avut o influenţă enormă; care credeţi că sunt trăsăturile sale cele mai valoroase? Figura 2: Cartea de C K:C are cel mai bun echilibru pe care l-am văzut vreodată între putere şi expresivitate.

Efectuarea de perechi de cuvinte bazate pe o coloană

Poţi face aproape orice vrei programînd într-un fel destul de evident şi ai întotdeauna un model mental bun a ceea ce se va întîmpla pe calculator; poţi prezice destul bine cît de repede o să meargă, înţelegi ce se petrece şi îţi dă libertate totală să faci ce vrei. C nu te constrînge în vreun fel, nu te obligă să foloseşti un anumit stil de programare; pe de altă parte nu îţi oferă o grămadă de facilităţi, nu are o bibliotecă gigantică, dar în ceea ce priveşte realizarea a ceva fără prea mult efort, nu am văzut nimic mai bun pînă în ziua de azi.

Există alte limbaje reuşite pentru aplicaţii specifice, dar dacă ar fi să eşuez pe o insulă pustie cu un singur compilator, aş vrea un compilator de C. M:De fapt C este şi limbajul meu de programare favorit, şi pe care l-am folosit pentru majoritatea programelor mele. Dar de cînd am început să scriu compilatoare pentru C, trebuie să mărturisesc că limbajul mi se pare mai puţin plăcut: unele optimizări sunt foarte greu de făcut. Care sunt din punctul dumneavoastră de vedere trăsăturile negative ale limbajului?

K:Nu pot comenta despre trăsăturile negative; îţi reamintesc că C este în întregime creaţia lui Dennis Ritchie. Eu am contribuit doar la popularizarea sa, şi în particular nu pot spune ce e greu şi ce e uşor de compilat în C. Sunt cîteva lucruri trivial greşite în C: instrucţiunea switch putea fi mai bine proiectată, precedenţa unora dintre operatori este greşită, dar astea sunt lucruri mărunte şi lumea a învăţat să le evite.

Cred că adevărata problemă a limbajului C este că nu-ţi pune la dispoziţie destule mecanisme pentru a scrie programe cu adevărat mari, pentru a crea ziduri de protecţie în interiorul programelor, care izolează feluritele bucăţi. Nu se pune problema că nu poţi face astfel de lucruri, ca nu poţi simula programare orientată pe obiecte sau alte metodologii de programare în C, poţi să faci toate astea, dar compilatorul şi limbajul nu te vor ajuta. Dar dacă luăm în considerare că C are aproape 30 de ani şi că a fost creat cînd calculatoarele erau minuscule în comparaţie cu ceea ce avem acum, cred că awk cum să faci bani o creaţie admirabilă, care a trecut de testul scurgerii timpului extrem de bine.

Nu sunt multe lucruri pe care le-aş schimba în C. Cu alte cuvinte, cea mai mare parte a C-ului este folositoare indiferent de programul pe care îl scrii.

M:Am o întrebare despre cercetarea în awk cum să faci bani de programare. E interesant de exemplu că Java este foarte mult ridicat în slăvi; comunitatea programatorilor se împarte între cei care laudă meritele şi cei care critică lipsurile limbajului. Java într-adevăr a fost înzestrat cu nişte trăsături care derivă din cercetare cum ar fi colectorul de deşeuri -- garbage collectiondar tot cercetătorii arată oricui vrea să-i asculte erori de proiectare cum ar fi vectorii, care sunt covarianţi.

În locul acestor limbaje academice apar din senin limbaje ad-hoc, cum ar fi Perl şi Python. Unde vedeţi buba, ce nu funcţionează cum trebuie? K:Asta este din păcate o întrebare foarte bună, şi există o oarecare rivalitate aici la Bell Labs între un grup extrem de puternic de limbaje funcţionale şi un grup care foloseşte limbaje ad-hoc, mai pragmatice.

Sincer să cea mai profitabilă rată bitcoin, nu ştiu de ce limbajele funcţionale nu au succes. De exemplu ML, care este probabil cea mai bună combinaţie, cea care ar trebui să domine: chiar dacă e un limbaj extrem de atent proiectat, la care au contribuit mult timp o mulţime de cercetători, care a dat naştere la o cantitate enormă de tehnologii de compilare, nu awk cum să faci bani să fie adoptat pe scară largă.

Simplificînd extrem, şi probabil supărînd pe unii dintre prietenii mei, aparent singurul lucru care se face în ML sunt compilatoare de ML [rîde]. În mod intenţionat exagerez, dar de fapt lucrurile cam aşa stau, şi nu ştiu exact de ce. Din punctul meu de vedere unul dintre motivele pentru care ML şi alte limbaje funcţionale nu au mai mult succes este pentru că necesită o oarecare abilitate matematică şi o gîndire mai abstractă, pe care o grămadă de lume, în care mă includ şi eu, nu o posedă.

În schimb limbajele ca C sunt extrem de operaţionale şi poţi vedea foarte clar cum fiecare bucăţică dintr-un program se translatează direct într-o acţiune a calculatorului. Poate dacă aş fi fost crescut şi educat în alt fel aş fi mulţumit cu ML şi aş găsi C cam nesigur unsafepericulos şi nu prea expresiv. Dar impresia mea este că limbajele funcţionale au fost create de o comunitate de oameni cu puternice înclinaţii matematice şi că au nevoie de un raţionament matematic awk cum să faci bani, şi ca atare nu vor fi pe placul omului de rînd.

M:Deci sugestia dumneavoastră ar fi ca cercetătorii să coboare nivelul limbajului, pentru a-i promova calităţile pozitive? K:Nu am răspuns de fapt la partea a doua a întrebării tale, de ce cercetarea în limbaje nu a avut mai mult efect.

Cred că de fapt cercetarea a avut un efect, în domenii ca tehnologia parserelor, generarea de cod, indiferent de limbajul în chestiune.

De ce este bine sa stim mai multe limbaje de programare - De Citit / De Vizionat - traficgratuit.ro

Cercetarea a produs scule de mare succes pentru a manipula limbaje, dar a avut mai puţin efect în proiectarea limbajelor însele. Una dintre ele este că încearcă foarte tare să rămînă compatibil cu C: e compatibil la nivelul fişierelor obiect, şi e aproape compatibil la nivelul surselor. Din cauza asta sunt o grămadă de lucruri urîte în limbaj, probleme sintactice ciudate, comportări semantice bizare. Ori asta nu e de loc adevărat în cazul ML, care a fost proiectat în acelaşi timp şi în mare parte în acelaşi loc [tot la Bell Labs], dar care a atacat problema într-un mod foarte radical.

M:Deci sunteţi avocatul evoluţiei incrementale. Văd ca sunteţi autorul a cel awk cum să faci bani opt cărţi, toate din ele scrise în colaborare. Deduc de aici că stilul dumneavoastră de cercetare este colaborativ?

cel mai bun indicator pentru opțiuni binare

K:Dacă ai de gînd să scrii o carte, e al naibii de uşor să mai găseşti pe altul să facă o parte din treabă [rîde]. Am fost foarte norocos să am colaboratori excelenţi la toate cărţile mele, şi în sensul ăsta a fost foarte uşor. E mult mai simplu de lucrat la o chestie mare, cum e o carte, şi care îţi ia şase luni sau un an, dacă ai pe cineva care lucrează cu tine. Asta te ţine şi cu picioarele pe pămînt: dacă o iei razna prea tare ai pe cineva care poate să te cîrmească la loc pe direcţia cea bună.

Un interviu cu Brian Kernighan

Cred că tot ce am făcut am făcut cu altcineva: e mai amuzant să lucrezi cu alţi oameni decît să te încui în birou şi să te chinui de unul singur.

Şi probabil că sunt mai bun la a găsi şi a asculta pe cineva care are o idee bună, pentru ca apoi să lucrez cu acea persoană la dezvoltarea ideii decît la a găsi ideile eu însumi. M:Dacă tot am vorbit de statul cu picioarele pe pămînt, lucrez la un proiect care dezvoltă nişte programe mari, unele din funcţii fiind modificate de mai mulţi autori, care schimbă fiecare stilul de aşezare în pagină după preferinţele proprii.

Aţi publicat cîteva cărţi despre tehnici şi stil de programare; s-a potrivit întotdeauna stilul dumneavoastră cu al co-autorilor, sau aţi avut probleme în a reconcilia gusturile? K:[rîzînd] Asta e de asemenea o întrebare drăguţă.

Cele mai multe din lucrurile astea au fost mărunte, în parte pentru că coautorii mei sunt prin preajmă şi am crescut în acelaşi mediu cultural.

Tu cîte spaţii pui? Eu pun spaţii după cuvinte ca if, while şi for, dar Rob awk cum să faci bani pune. Am cîştigat bătălia aia, dar sunt alte bătălii pe care le-am pierdut, nu mai ţin minte exact care.

Cu cît mai mulţi oameni lucrează la ceva, şi cu cît e programul mai mare, cu atît mai greu o să fie, şi de la un moment dat trebuie să stabileşti standarde pe care toată lumea le respectă şi metode mecanice ca de exemplu pretty-printer-e care te obligă să joci după reguli, pentru că altfel pierzi prea mult timp şi creşte probabilitatea să faci greşeli.

M:Aţi menţionat pretty-printer-ele; ce alte scule şi medii de programare folosiţi? K:Cînd am de ales programez în Unix. Folosesc editorul de texte sam scris de Rob Pike; nu folosesc Emacs. Cînd nu pot folosi sam folosesc vi din motive istorice, şi sunt chiar foarte mulţumit de ed [rîzînd]; ştiu, ăsta a apărut înainte ca awk cum să faci bani să te naşti. Şi e parţial un motiv istoric: îl ştiam pe Bill Joy cînd lucra la vi. Nu folosesc debugger-e sofisticate, folosesc instrucţiuni de tipărire inserate în cod; singurul lucru pentru care folosesc un debugger este să obţin o listă a procedurilor de pe stivă cînd un program moare în mod neaşteptat.

Cînd scriu cod pe Windows în mod normal folosesc sculele Microsoft de dezvoltare: ele ştiu exact unde sunt fişierele header şi alte awk cum să faci bani importante, deci trebuie să le folosesc chiar dacă nu se potrivesc cu stilul meu preferat de lucru.

De asemenea în Windows îmi instalez pachete de scule cum ar fi mks care oferă utilitarele tipice Unix şi programele standard cu care sunt obişnuit pentru a căuta, compara, şi aşa mai departe.

M:Voi schimba din nou subiectul. Cînd am venit în Statele Unite am fost extrem de surprins să descopăr că se face cercetare de foarte bună calitate, şi cercetare fundamentală -- adică cercetare care nu e în mod necesar direcţionată spre un produs comercial sau pentru a genera profituri -- nu doar în universităţi, ci şi în cîteva companii mari.

Figura 3: Logo-ul Bell Labs şi Lucent K:O să-ţi dau sloganul oficial, deşi cred că mult din el este în continuare adevărat.

Cred că cercetarea a început pentru că oamenii şi-au dat seama că sunt felurite lucruri pe care nu ştiu cum să le facă dar pe care ar trebui să înveţe să le facă dacă vor să îmbunătăţească produsele sau serviciile pe care le vindeau. Desigur, în timpuri ancestrale serviciul de bază era cel telefonic; în urmă cu 30 sau 40 de ani tehnologia telefoniei a început să capete o din ce în ce mai puternică componentă informatică, şi asta a adus cercetarea în calculatoare aici.

Cred că acelaşi lucru este adevărat pentru companii ca IBM care are de asemenea laboratoare de cercetare extrem de eficiente.

Un interviu cu Brian Kernighan

IBM e cu siguranţă o altă companie cu o tradiţie îndelungată de încurajare a cercetării. Veniturile anuale ale companiei sunt de 38 de miliarde de dolari îndeci cheltuim cam de milioane de dolari anual pe cercetare ca să ne ţinem pe tine şi pe mine în birouri comfortabile gîndind gînduri înălţătoare. Ăsta pare un fel destul de rezonabil de a investi, o investiţie cu risc mare, dar cu profituri potenţiale mari.

Din nefericire e greu să-ţi dai seama cum să faci astfel de lucruri, adesea e greu să-ţi dai seama care sunt problemele importante.

opțiune binară 1 minut

M:[întrerupînd] Dar nu numai atît: există cercetare-dezvoltare în multe alte companii; dar la Bell Labs cercetătorii sunt şi încurajaţi să publice! Unul este că scara noastră este mult mai mare; Lucent Bell Labs este probabil în continuare cel mai mare laborator de cercetare industrială din lume, făcînd cercetare de genul celei pe care o găseşti în universităţi în vremurile de demult, esenţialmente cercetare fundamentală, nedirecţionată pe produse.

IBM este cel puţin comparabilă, şi Xerox într-o oarecare măsură, şi sunt şi alte companii de genul ăsta.

Chapter 1 : Awk

Una dintre diferenţe este că aici, cel puţin în grupul de calculatoare, dar şi în toate ştiinţele fizice, cercetarea este undeva între cercetare industrială, puternic orientată pe produs, şi cercetare academică, în care fac treabă mai ales din curiozitate sau pentru că vor să analizeze problemele în mai mare adîncime. Un laborator industrial mare este întins între extremele astea: e mai focalizat pe lucrurile care sunt practice, dar în acelaşi timp are un deget în lumea universitară.

Şi trebuie să facă asta, pe lîngă alte motive, din cauza mecanismului de angajări. Motivul pentru care tu eşti aici şi nu la Cisco, să zicem, este că Cisco nu face cercetare, Cisco cumpără companii.

Invata PHP

Cisco nu e un loc rău, în multe privinţe Cisco e un loc minunat, dar îşi face treaba altfel decît Lucent. Un alt lucru este că, fiind un jucător în lumea academică pe lîngă cea industrială, noi interacţionăm cu lumea din universităţi pe post awk cum să faci bani colegi egali în rang, deci putem atrage oameni ca tine, care vin aici pentru o vară şi după aia poate vin înapoi permanent.

În felul ăsta avem un influx permanent de oameni buni. Dar trebuie să-i dăm înapoi ceva sistemului. Trebuie să te primim în companie, să-ţi arătăm lucruri interesante, să te lăsăm să publici articole, şi trebuie să scriem articole noi înşine, pentru că altfel nimeni nu o să ne creadă că facem lucruri interesante. Deci trebuie să fim în mare parte membri care participă la comunitatea academică, pe lîngă participarea la bunăstarea companiei.

cum să faci bani pe Internet citind știri

Asta e o problemă interesantă şi încă nerezolvată, cum să faci ambele afaceri binare fără să cazi prea tare într-o extremă sau cealaltă.

M:L-aţi menţionat pe Rob Pike; vă este coautor la două cărţi. Ce gîndiţi despre acest enunţ?

K:Ca să fiu sincer, Rob are aproape întotdeauna dreptate, deşi nu aş recunoaşte asta în faţa lui [rîde]. Doar am văzut textul prezentării lui, fără să fi fost prezent la faţa locului, dar cred că în multe privinţe are dreptate.

Observaţia lui este că este foarte greu de lucrat în sisteme: lucrurile se fac la scară prea mare pentru mediile academice, iar mecanismul recompenselor în mediile academice este defectuos.

semnale în opțiuni binare

Ca rezultat o mare cantitate a muncii din sisteme tinde să fie incrementală, si să constea mai curînd în evaluarea performanţei decît în sinteza unor combinaţii noi şi interesante.

Nu ştiu de ce lucrurile stau aşa: poate că e greu pentru universităţi să obţină suportul necesar, poate durează prea mult -- observaţia lui Rob este că sistemele awk cum să faci bani sunt construite în cinci ani sau mai mult, şi cam asta e durata unui doctorat -- deci e greu să obţii ceva pe măsura carierei unui student. M:Dacă tot am menţionat viaţa universitară, am văzut că aţi predat cel puţin două cursuri la Princeton.

Aş vrea să vă cer opinia despre educaţia în informatică. Am awk cum să faci bani plîngeri din partea companiilor că studenţii din calculatoare învaţă prea multă teorie inutilă şi nu ştiu destul despre dezvoltarea de programe reale.

K:Am predat patru cursuri la Princeton şi Harvard în ultimii patru sau cinci ani, la nivele felurite, dar asta nu e suficient pentru a face din mine un expert în educaţia în informatică. Astea sunt nişte şcoli anume şi eu am predat mai mult ciudăţenii.

Asevedeași