Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Petr M

Stran: 1 2 3 [4] 5 6 7
46
Vývoj / Re:Bitové operace ve vyšších jazycích
« kdy: 08. 09. 2016, 21:22:50 »
Noef píše o dělání webů.

Jenomže ještě nepochopil, že opravdový profesionál bez ohledu na obor má nějakou profesní čest. A ta mu nedovolí odflinknout dílo. Profík si netroufne prodávat stůl s kratší nohou, přesolený žrádlo, jiskřící rozvaděč, lak na autě samou bublinu nebo program, u kterýho neví, jak vlastně funguje.

Vymlouvat se, že to sám umí líp, ale ostatní jsou matláci a jenom se jim přizpůsobuje, a ještě se tím chlubit, zvládne jenom ten "nejlepší z nejlepších".

47
Vývoj / Re:Bitové operace ve vyšších jazycích
« kdy: 08. 09. 2016, 19:14:29 »
Ale i kdyby, tak bych ani na to nevzal někoho, kdo neumí základní programátorskou latinu, protože bych neměl tušení, co všechno ještě neumí. Ostatně podívá-li se člověk namátkou na JS kódy spousty webů, jen to dokazuje, že je to zmatlané bez elementárního přemýšlení, neefektivně, nepřehledně, nešikovně. Prostě amatérsky.

No, ale to jsem v podstate napsal - na urcitych pozicich a zamerenich se naopak preferuje kdyz pouzivate takove ficury jazyka, se kterymi umi delat zbytek tymu. Takove obraty v kodu, ktere jsou na prvni pohled pro vetsinu lidi na dane pozici/zamereni jasne, a pripadne budou jasne i potencionalnimu budoucimu "udrzovateli" kodu. Tomu se rika udrzovatelny kod.

Ale houby. Dobrá aplikace je psaná tak, aby byla funkční a efektivní. A když něco píšu, tak to napíšu tak, jak nejlíp umím. Nebudu prasit ani architekturu, ani kód jenom proto, že může přijít nějaký Pat nebo  Mat. A když tomu nerozumí, tak ať se to naučí, nebo jde dělat weby.

48
Hardware / Re:Kompatibilita Linuxu s notebooky Acer
« kdy: 01. 09. 2016, 22:00:32 »
Zajímavá nabídka zde https://www.czc.cz/lenovo-thinkpad-e450-cerna_4/180887/produkt
ale hovno. pokud nekomu nekdo nabidne TP Edge jako "zajimavou nabidku" tak by si mel poradne naliskat a vypichnout obe oci, aby priste takhle neradil.

Náhodou, s LeHovnem je sranda. Mají ve zvyku prohazovat klávesy <Ctrl> a <Fn>. Víš, jaká je prča pozorovat někoho, jak  chce v IDE spustit program, vypne si Wifinu (a tím se ušmikne od testovacího serveru) a pak přeříkává vybraný slova po K?

49
Odkladiště / Re:Jak si neodrovnat zdraví u počítače
« kdy: 19. 08. 2016, 21:20:41 »
Nejlepsi je snad masturbovat, no ne? Pravidelna masturbace je cesta k lepsimu zdravi.

Ne, u toho si protáhneš jenom dvě končetiny. Na tohle je lepší válená, teda smíšená dvojhra. U té se protáhneš celý a pozitivní vliv na prostatu je stejný...

Ale jinak je potřeba se na problém ochrany dívat komplexně.

50
Studium a uplatnění / Re:Nemám Facebook - pohovor
« kdy: 17. 08. 2016, 22:25:09 »
Tak v korporaci je stejně XK na úrovni "Zadaná adresa je blokována firewallem. Důvod: Social networking." (zkušenost z Honeywellu), tam  je to putna.

Jinak, FB má v pravidlech používání skutečnýho jména a slyšel jsem něco i o ověřování dokladů, takže tahle anonymizace je mimo. Nehledě a to, že si stejně pravý jméno a fotku seženou, stačí, když dá nějaký idiot na XK fotku z akce a další trotl napsat, kdo jsi. Udělají to tak kreténi ve třech partách, kde jsi jediný společný článek a je to... Anonymita tam neexistuje.

A další průšvih je, že při registraci chce heslo k mailu!!!, aby ho mohl pročuchat. Už jenom tohle je pro soudnýho člověka červená stopka přes 90% monitoru.

51
Studium a uplatnění / Re:Jak řešíte odhady v práci?
« kdy: 13. 08. 2016, 21:02:59 »
Ale pánové, ono přece záleží na tom, jak se to má dělat!

U agilního řízení projektu se dá nějaký (měl by být smysluplný) rámec pro release. Čas a náklady jsou konstantní, ale jsou prioritizovány featury, co se mají zvládnout. Release je na den přesně, musí se stihnout klíčový věci, ale je otázka, kolik nedůležitých věcí se zvládne implementovat a otestovat...

U klasickýho waterfallu je zase fixní set požadavků, co mají být splněny a podle toho je nafukovací rozvrh a rozpočet.

A obecně platí, že je projekt v trojúhelníku rychlost - kvalita - featury a nikdy není současně ve všech třech rozích.

Jinak zajímavý čtení k tématu je http://knihy.cpress.cz/odhadovani-softwarovych-projektu.html

52
Vývoj / Re:Copy & Paste vs. Špagety
« kdy: 18. 07. 2016, 21:37:09 »
Jenom dodám, že v klasickým kódu (C apod.) se to řeší pomocí dependency injection. Ta je základem efektivního řešení třeba pro takový věci, jako jednoduchý operační systém (předání vykonávané funkce do context switche), hierarchický stavový automat (řeší to dynamicky hierarchie), u univerzálníchtřídících algoritmů se tak dá měnit za běhu porovnávací funkce, v objektovce je na tom principu postavená VMT a dá se s tím užít ještě další obrovský kopec srandy. A pěkně učesat kód, samožřejmě.

Řekněme, že máme dvě čísla, který mají být ořezány na rozsah -9999 až +9999, má s nimi být udělána nějaká neznámá operace a výsledek ořezán na na stejný rozsah. Takže to ořezání si vytkneme do funkce
Kód: [Vybrat]
int orez(int a) {
if(a < -9999) return -9999;
if(a > 9999) return 9999
else return a
}
V příkladu je to jenom jako společná část kódu, která se nemění, s DI zatím nemá co do činění, ale opakující se část ve funkci by měla být samozřejmost.

Vlastní operace bude asi nejaká funkce, která si vezme dva inty a vrátí int. Takže ukazatel na ni bude jednoduše
Kód: [Vybrat]
int(*funkce)(int a, int b);

a vlastní implementace funkcí pro jednotlivý operace budou třeba
Kód: [Vybrat]
int soucet(int a, int b) {return a+b;}
int rozdil(int a, int b) {return a-b;}
Těch může být, kolik je potřeba. Rozhoduje jenom počet a typ parametrů a typ návratové hodnoty.

Pak se to všechno bude volat z programu nějak slepený a zapouzdřený, dáme to tedy do funkce. Ta si vezme tři parametry, operaci a dva operandy. Vrací zase int.
Kód: [Vybrat]
int mojeOperace(funkce typ, int a, int b) {
  int a1 = orez(a);
  int b1 = orez(b);
  int x = funkce(a1, b1);
  return orez(x);
}

No a nakonec jak to celý použít. Prostě, jako volání funkce.
Kód: [Vybrat]
int main() {
  int a = 100; int b = 200;
  printf("Soucet je %d", mojeOperace(&soucet, a, b);
  printf("Rozdil je %d", mojeOperace(&rozdil, a, b); 
  return 0;
}

Zkus vymyslet, jak s pomocí mojeOperace() uděláš x=a^2/b bez toho, že bys v ní samotné změnil jediný řádek kódu  ;)

53
Studium a uplatnění / Re:Jsem-nejsem dobrej programátor?
« kdy: 09. 07. 2016, 11:21:51 »
A ještě jsem pochopil jednu věc, která se vám asi nebude líbit... Není důležité, aby byl kód dokonalý, ale je důležité, aby aplikace svoji práci dělala dokonale, komunikovala s uživatelem (třeba logem) a uměla reagovat na maximální množství chybových a nestandardních situací.

Dokonalé je nepřítelem dobrého. Ale je třeba to nepřepálit na opačnou stranu.

Šéf v Honeywellu (naše oddělení bylo řízeno z Minneapolisu) vždycky říkal, že nepotřebuje perfektní produkt, ale potřebuje s co nejmíň nákladama dodat zákazníkovi něco, co uspokojí zákazníkovy potřeby do té míry, že za to zaplatí. A že s Brňákama byl vždycky ten problém, že všechno chtěli dělat dokonalý a na to on neměl čas ani peníze. Naučit se tuhle filozofii byla výzva. A ono to platí nejenom o produktech... Spcialista za 250 kKč/měs. na combo box v C# se firmě nevyplatí, pokud bude v aplikaci i něco víc, než GUI a GUI nebude jeden velký combo box,nebo to má být multiplatformní.

Ono netvrdim, ze nevyskusat si nieco ine, nove, je zle. Ja len hovorim, ze to jednoducho nejde vediet X veci poriadne. Jednak clovek ma obmedzenu kapacitu, jednak treba nato mat aj cas, a ked si clovek casom zalozi rodinu, tak vasa zena by asi nebola rada, keby pridete z prace a hned si sadnete za pc aby ste si nieco bastlili. Osobne sa priklanam k rieseniu, vyskusat, potom sa profilovat na nieco, ale mat rozsirene obzory.

Jde. Viz zmíněný Paretovo pravidlo 80/20. Platí i na kapacitu mozku, i na čas na učení. A i když část toho člověk zapomene, principy zná. Má předstau, co to asi bude na projektu znamenat ohledně nákladů a času a když je potřeba, po týdnu nebo dvou se do toho zase dostane.

Víš, že jsem VŠ studoval při zaměstnání a když jsem začínal, dceři byly dva roky? V týdnu v práci, v sobotu ve škole, večer většinou nad skriptama...

Žena vždycky říká, že kdo chce, hledá způsoby, kdo ne, hledá důvody.

54
Studium a uplatnění / Re:Jsem-nejsem dobrej programátor?
« kdy: 09. 07. 2016, 09:19:15 »
Preco skusat nieco ine, ked ma toto bavi?

Proč ochutnat kachnu na restovaným ananasu, když ti chutná králík na paprice?

Paretovo pravidlo doufám znáš... 20% úsilí věnuješ na 80% výsledku. Pak už se nimráš v detailech, který nikdo neocení. A platí to i pro lidi. Proč se perfektně naučit jednu technologii, když jich za stejnou dobu se stejným úsilím zvládnu uspokojivě pět a když není práce na jedné z nic, můžu vzít kšeft, kde se používá něco jinýho? Je to taková forma pojištění. A víc doménových znalostí zvyšuje tvou cenu.

Preco prechadzat na nieco, kde mi nebude ponuknute kvalitne prostredie na vyvoj? Ruku na srdce, najlepsie su VS a mozno Intellij idea.

Máš nějaký důkaz? Nebo ses jenom chytl první ho prospektu od M$? Zkoumal jsi něco jinýho? Jaký máš názor třeba na https://www.embarcadero.com/products/rad-studio a proč?

Ja osobne skriptovacim jazykom neprikladam velku vahu a nepotrebujem ich. Nie teraz a ani nikdy taku pracu vyhladavat nebudem. Drviva vacsina embedded vyvojarov vobec ale vobec nerobi so skriptovacimi jazykmi. Mam kolegu C++ vyvojara, ktory robil kedysi pre realtime systemy, teraz robi v C++ a nikdy ani neprejde na skriptovacie jazyky.

Víš co? Mám ze ZŠ znalost Basicu (samouk), ze SŠ Turbo Pascal a ASM 8051, z VŠ Delphi. Delphi bylo fajn, zábavný, ale dneska bych si neškrtl. No a hlavně, mám vystudovaný HW, taže jsem dělal hlavně věci kolem toho. Servisáka mobilů, servisáka serverů,... Jenomže to byla pekelná nuda a tak jsem se bavil aspoň po večerech bastlením. Náhodou jsem narazil na jeden kit s procesorem, kterej se mě líbil, obětoval jsem 1/3 výplaty a začal se na něm učit C pro strýčka příhodu.

Pak mě jednoho dne vytočil šéf do běla, začalo hledání a narazil jsem na jednoho podnikatele, co potřeboval člověka na návrh a oživení desek s jednočipama. Nakreslení desky, osazení, cvrnkání pinama na ověření funkce. Nástupák o polovičku víc, než jsem měl jako servisák... No a ještě odpadly výdaje na domácí bastlení, protože šéf dával zadání a materiál, zajímavý projekty, v podstatě v té době práce snů. Bez hraní si s jednočipem bych tu práci neměl.

Když nás pak po letech nefér obchodní partner utopil přes DPH, nebyl problém s tím, co jsem v té době už uměl, zapadnout jako embedded programátor v C do Honeywellu, ... Kde jsem to po letech zabalil, protože tam byl těžký overprocessing a každý blb kecal do všeho, takže se všechno 5x předělávalo.

No a teď dělám na projektech, kde je dohromady HW a SW. S tvým přístupem bych takovou práci za sedminásobek platu toho servisáka dělat nemohl.
- Do C mě nikdo nenutil. Naučil jsem se ho dobrovolně, je to 90% projektu
- FreeRTOS jsem se taky naučil dobrovolně. Na vývojovým kitu STM32. Teď se hodí, bez něj by ty produkty byly na úplně jiné úrovni.
- Message broker, v podstatě z dob Delphi vytažený zpracování Widlích zpráv, naportovaný na FreeRTOS.
- Grafika na současným produktu, to je kapitola sama o sobě. Kdybych tenkrát nebyl zvědavý na FPGAčka a kdybych si nějaký čas nehrál se třídou TCanvas v Delphi, byl bych dost mimo
- Komunikace po Ethernetu, implementace FAT, USB,... Jsou na to knihovny, ale při jejich portaci na HW a začlenění do systému o tom taky musíš něco vědět.
- Když šéf rozhodl integrovat do toho managovaný Ethernet switch, jak se hodila znalost síťařiny z Linuxu...

Takže jo, nemusel jsem si s tím hrát po večerech a mohl jsem ty prachy a čas prochlastat. Nebo být spokojený a hrát si v Delphi, protože to bylo super, a ignorovat zbytek světa. Ale to bych neměl na výplatní pásce sedminásobek toho, co jsem tam měl jako servisák. Tož asi tak.

Takisto poznam cloveka, ktory robil dlho v C++ a potom presiel na C#. Ale nikdy sa nesral s nejakymi webovymi blbostami a to bol a je sakra kapacita.

Já zase znám z doby, kdy jsem dělal tech support jednoho pána, který uměl perfektně ASM na 8051. Byl to specialista. Dělal to už 20 let, nikdy nic jinýho nepotřeboval. Měl ve firmě skvělý produkt, perfektně zoptimalizovaný, 64kB FLASH na T89C51ED2 sotva stačilo, všechno perfektně běhalo, no radost se podívat.

Jednoho dne u nich německá firma poptala nový produkt, tak trochu specifický. Chtěli do toho přilinkovat vlastní komunikační SW, odladěný na platformě H8 od Renesasu, pochopitelně v C. Když to za půl roku dodají, mají kšeft, který jim zvedne obrat firmy o 40%. Pochopitelně, že ředitel nevěděl nic o rozdílu mezi ASM51 a C a o probémech kolem, takže podepsal. A pan vývojář byl v místech, o kterých se tak krásně vyjadřuje "j".

Když jsme s kolegama přijeli nabízet kity na H8, připojili emulátor a začali krokovat v kódu, čuměl na to jak tele na vypínač... Prý netušil, že taková možnost existuje...

Prostě jak píše klasik - "kdo chvíli stál, už stojí opodál"

55
Sorry, ale AI na úrovni Ivana Novýho už máme. To ti napíšu v C++ za minutu. Potřebuju jenom předpřipravený pole stringů napěchovaný jeho moudrostí a zbytek udělá

Kód: [Vybrat]
void main() {
  while(true) {
    cout << *Mourda[random(arraysize(Moudra))];
  }
}

56
Studium a uplatnění / Re:Jsem-nejsem dobrej programátor?
« kdy: 08. 07. 2016, 20:05:39 »
Tvrdenie B:
no vsak clovek nemusi poznat vsetko perfektne, staci jedno alebo jednu oblast perfektne. Ak som 10 rokov robil embedded vyvojara v C/ASM a som v tom trieda, tak urcite budem robit IS v PHP :D. Budem sa uberat stale tym embedded smerom, samozrejme pokial nenastane situacia, ze nikde na okoli nenajdem pracu, tak sa budem musiet prisposobit trhu, co ale v pripade, ze som trieda, nehrozi :). Za mna mozem povedat, ze som MS vyvojar v .NETe/C# a nepojdem v najblizsej dobe do nejakeho linuxu. Budem si radsej prehlbovat znalosti v MS technologiach, lebo vzdy je sa co ucit. Ked budem jeden den skusat linux, druhy den windows, treti den OSx, tak co budem mat z toho?

V pěti letech jsi asi nevěděl nic o sexu. Jak bych ti měl v tom věku vysvětlit, že o něco přicházíš a jak je to super? I když, s tvým malým měkkým to stejně nebude žádná sláva  :D

A teď vážně. Řešil jsi někdy v aplikaci požadavek na rozšíření pomocí uživatelskýho skriptu? Znáš nějaký skriptovací jazyk, nebo bys začal od píky? Od čeho se odpíchneš? Aha... 8)

Nikdo netvrdí, že jak widlák musíš znát jinou platformu (ostatně pro takový, jako jsi ty, je fungujícího operačního systému škoda), ale měl bys čuchnout k jinýmu typu práce nebo jazyků, než k regulérní aplikaci. Jinak se střelíš do nohy už při odhadu náročnosti projektu, protože nebudeš vědět, co tě čeká. Widle neWidle.

57
Studium a uplatnění / Re:Jsem-nejsem dobrej programátor?
« kdy: 07. 07. 2016, 21:43:58 »
je to troll a mozno ani nevie programovat. alebo je frustrovany z maleho vtaka. 150k za 3h denne nezarobi nikto. Urcite nie java troll  :D

Pozor, neuvedl jednotku měny a jestli jsou ty tři hodiny normální pracovní směna. Tipl bych, že chtěl napsat: "Dělával jsem za 150k lir, než taliáni přešli na éčka. A bylo tam jenom se 3h přesčasů denně."  ;)

58
Studium a uplatnění / Re:Jsem-nejsem dobrej programátor?
« kdy: 07. 07. 2016, 21:38:02 »
K těm několika jazykům bych dodal, že:

Několik jazyků není zárukou, že je programátor dobrý. Jeden jazyk je skoro zárukou, že se neorientuje v oboru. Kdo se neorientuje v oboru, nemůže v něm být dobrý. Viz vedlejší diskuse - C# a Java jsou podle kohosi skvělý v tom, že si nakliká přístup do DB. Asi neviděl Delphi nebo C++ Builder s ODBC- bez VM a mezivrstvy a myslí si, že to je výsada těchto dvou technologií. Krásná ukázka.

Nikdo netvrdí, že všechny jazyky je potřeba umět perfektně. Jde o znalost, co který jazyk nebo technologie nabízí, jaká je filozofie, přístup k řešení problému,... Ono se dá objektově programovat i v klasickým C, a jako embeďák to často používám. Ale znamená to, že musím něco vědět o OOP a některým objektovým jazyku. A vědět, kdy se to vyplatí a kdy ne, protože věci jako dědičnost jsou docela šílený na implementaci. To samý s RPM při zpracování dat,... Nebudu vynalýzat kolo, raděj si týden až měsíc budu zkoušet po večerech něco novýho.

Kdo tvrdí, že si vystačí s jedním jazykem, ten buďto vědomě lže, nebo je tak blbý, že nepozná, že mu něco v hlavě chybí. A obě tyhle možnosti se vylučují s dobrým programátorem. Zase, jako embeďák krom C potřebuju i ASM, Verilog nebo VHDL, sem tam něco naskriptovat, něco na generátor kódu, JavaDoc na nakrmení Doxygenu, DOT diagramy v dokmentaci, potom speciality jako Matlab (Octave), PSpice,... Vebař potřebuje JS, PHP, HTML, CSS, ... Kdo dělá a datama, ten se zase neobejde mimo hlavní jazyk i s SQL,...

UML je taky jazyk. A na jeho (ne)používání je hned vidět, jestli  napřed člověk myslí, nebo začne hned mlátit zdrojáky a s každou featurou amatérsky řeší exponenciálně rostoucí hromadu průšvihů.

Dobrý programátor komunikuje s lidma a potřebuje je vmanipulovat do toho, co je reálný. Když domlouvá kšeft a řekne, že to bude dělat v XY a ne v ZBŽ, měl by taky umět říct proč je pro tuhle aplikaci XY lepší z pohledu zákazníka. Bez aspoň povrchní znalosti ZBŽ to těžko bude manévrovat na to, co preferuje. "Nic jinýho neumím" je před zákazníkem, který ještě nepodepsal smlouvu, hodně blbej argument!

Prostě, dobrý programátor zná víc jazyků, víc řešení a umí se samostatně rozhodnout.
Nesouhlasim. Tohle rozhodnuti nema delat programator.

Programátor přece dělá rozhodnutí na každým řádku. Použít pole, strom, nebo řetězený seznam? Nebo těch 50 záznamů hodit rovnou do tabulky v SQL? Udělat pro každý záznam dynamicky alokovanou třídu, nebo stačí staticky alokovaná struktura? Počítat to v intu nebo ve floatu? Stačí v tom floatu single, nebo je potřeba double? Atd. Dobrý programátor tyhle rozhodnutí sype z rukávu a ví, proč se jak rozhodl.
 
Pokud tyhle rozhodnutí za tebe dělá někdo jiný, tak sorry, ale jsi jenom bídný překladatel z jednoho programovacího jazyka do jinýho. Na to, abys cokoliv vytvořil, nemáš koule a uplatníš se leda při přepisování appky 1:1 z Delphi do C#.

59
Studium a uplatnění / Re:Jsem-nejsem dobrej programátor?
« kdy: 06. 07. 2016, 22:09:12 »
@ Pako:

Jasný, že nebudu nutit kuchaře do šití saka, tam je ta propast dost velká. Stejně tak mezi různýma druhama programátorů. Ale snad existuje nultý kolo v podobě inzerátu nebo headhuntera a dojde někdo, kdo deklaruje aspoň ten obor v životopise, ne? A že nikdy nedělal nic z oboru se pozná hodně rychle, třeba z těch otázek, co jsem napsal. Když tu technologii nezná, tak neodpoví ani na jednu z těch otázek, maximálně řekne nějaký jazyk a odpapouškuje tři "výhody" z marketingovýho letáku od frameworku. V tom případě nazdar.

A dobrý programátor je flexibilní. Před pár lety bylo v módě Delphi, pak ustoupilo Javě a teď "frčí" C#. Když zamrzne u jedné věci, za pár let se neuživí. Dobrý programátor takovou změnu musí ustát.

Nehledě na to, že existuje několik verzí řešení problému. Jinak se dá řešit objektově, jinak procedurálně,... a jinak v jiným jazyku. Víc jazyků, víc pohledů na věc a dobrý programátor si umí vybrat ten nejlepší postup a podle toho i jazyk, nebo ne?

Další věc, v každým oboru je nejlepší ten, koho práce baví. Když ho to totiž baví, jde nad rámec toho, co musí - třeba se podívá i na jiný věci. Zkoumá, experimentuje, učí se. Dokáže u těch otázek detailně rozebrat pro a proti...

Prostě, dobrý programátor zná víc jazyků, víc řešení a umí se samostatně rozhodnout.

@gl:

To naštěstí není moje starost :)

60
Studium a uplatnění / Re:Jsem-nejsem dobrej programátor?
« kdy: 05. 07. 2016, 11:43:14 »
Jazyk nebo technologie, to je v tomhle případě detail.

Dobrý programátor je otázka definice. A já, kdybych vybíral zaměstnance, tak si prvně položím otázku, co od něj vlastně očekávám. Asi by musel samostatně řešit problémy, k tomu potřebuje nějaký znalosti. Není až tak podstatná syntaxe jazyka, tu dá za dva týdny. Není podstatná znalost knihoven, 100k funkcí nebo 10k tříd si nikdo nepamatuje a kterou podmnožinu používá, to je z pohledu schopností řešit problémy a učit se irelevantní. Stejně by musel věnovat čas získání doménových znalostí...

Takže dobrý programátor není o tom, že získal nějaký certifikát, ale o tom, jak přistupuje k práci a jak je samostatný. To se testem ABCD nezjistí.

Stran: 1 2 3 [4] 5 6 7