Blog · 20 tekstova
Bilješke s projekata, uključujući i naše greške.
Svaki tekst se bavi jednim konkretnim problemom na kojem ste možda zapeli. Uz svaki je link na projekat ili tekst iz kojeg je nastao.
Svi tekstovi
Redom kojim su objavljeni.
- 01Upload direktno na S3 s potpisanim URL-om, umjesto preko backendaPedeset istovremenih uploada od 4 MB preko servera drži 200 MB RAM-a i dvaput prelazi mrežu. Kako potpisati petominutni URL za upload na S3 i provjeriti fajl.3 miniz /bs/projekti/smanjenje-troskova-aws-a-osam-puta
- 02AWS račun s 24.000 $ na 2.000 $ mjesečno: tri uzroka koja sam našaoPredimenzionisane instance, beskonačne petlje i upload preko backenda mjesecima nisu javili grešku. Kako ih otkriti i šta prvo provjeriti na računu za AWS.4 miniz /bs/projekti/smanjenje-troskova-aws-a-osam-puta
- 03S rollbackom od nekoliko sekundi mogli smo s PHP-a na Node preći danjuTriggeri su više od godinu dana sinhronizovali staru i novu bazu u oba smjera. Rollback je bio promjena origina na CDN-u, koja je trajala nekoliko sekundi i nije tražila deploy.4 miniz /bs/projekti/migracija-php-na-node-bez-prekida
- 04Tri vrste grešaka u dizajn sistemu koje TypeScript i ESLint propusteU 75 komponenti našao sam 188 propusta, a svi su se sveli na tri uzroka: labele na čvorovima bez role, propove koje komponenta prihvati pa odbaci i zastarjele komentare.4 miniz /bs/projekti/dizajn-sistem-za-vise-platformi
- 05Testiranje dizajn sistema na pravoj stranici: 7 komponenti i 8 nedostatakaStranici je trebalo sedam od 74 komponente i četiri izuzetka u jednom fajlu. Na telefonu je 91% koda koji se izvršava ostalo neizmijenjeno, a četiri buga prošla su sve provjere.10 miniz /bs/projekti/dizajn-sistem-za-vise-platformi
- 06Stranica s napola izgrađenim dizajn sistemom bila je veća od čistog HTML-aIstu stranicu izmjerio sam u tri verzije: ručno pisani styled-components imali su 32.149 znakova, čisti HTML 23.139, a naš dizajn sistem 18.040.6 miniz /bs/projekti/dizajn-sistem-za-vise-platformi
- 07Cijena serverless WebSocketa: minute konekcije rijetko su najveća stavkaMinute konekcije bile su najveća stavka u samo 3 od 18 modeliranih scenarija. Ispod 1.000 korisnika veći dio računa čini fiksni trošak od 16,64 $ mjesečno za Redis i VPC endpoint.9 miniz /bs/projekti/analitika-dva-miliona-upisa-dnevno
- 08Serverless chat na AWS-u: 19 $ mjesečno za 100 korisnika i njegove graniceU grupama od deset jedan server postaje jeftiniji na oko 1.200 korisnika. Nove konekcije ostaju ograničene na 500 u sekundi po AWS računu dok AWS ne poveća kvotu.8 miniz /bs/projekti/analitika-dva-miliona-upisa-dnevno
- 09Najveća budala: šest samouvjerenih grešaka AI-ja za jedno popodneU istraživanju troškova AI je napravio šest grešaka, nijednu s rezervom, a svaka je priču činila urednijom. Isti obrazac vidi se u 1.598 sudskih slučajeva i u izmišljenim paketima.10 miniz /bs/blog/serverless-websocketi-placate-tisinu
- 10Vlastiti hosting InfluxDB-a ostao je jeftiniji zbog naplate po upituNa 2 TB vlastiti hosting štedio je oko 27.000 $ godišnje. Kad je kraći rok čuvanja podataka spustio trošak skladišta na 1,31 $, ostao je jeftiniji: plaća se svaki upit s dashboarda.8 miniz /bs/projekti/analitika-dva-miliona-upisa-dnevno
- 11Kardinalnost u InfluxDB-u: ID-jevi korisnika i uređaja ne idu u tagoveID-jevi u tagovima povećavaju indeks InfluxDB-a sa svakim novim posjetiocem. Uz ID-jeve u poljima i dnevni sažetak u MySQL-u, godina za preko 900 oglasa vraća se za manje od sekunde.6 miniz /bs/projekti/analitika-dva-miliona-upisa-dnevno
- 12Gdje sam u našem dizajn sistemu razdvojio web i React Native kodOd 74 komponente u našem dizajn sistemu 38 ima React Native blizanca, od toga 27 primitiva i nijedan pattern. Svaki blizanac postoji zbog drugačijeg elementa, događaja ili prozora.7 miniz /bs/projekti/dizajn-sistem-za-vise-platformi
- 13Kako ubrzati izvještaj u Redshiftu kad ne smijete mijenjati ni upit ni šemuDistribucijski i sort ključevi, uz materijalizovane viewove, skratili su otvaranje izvještaja s više od 15 minuta na 0,2 sekunde, bez izmjena u SQL-u BI alata i u tabelama kupaca.6 miniz /bs/projekti/optimizacija-upita-ispod-fiksne-sheme
- 14Nastanak zapisa i početak njegovog važenja treba razdvojitiCarinska faktura zamrznuta je kao HTML u trenutku izdavanja, kupon odštampan bez mreže važi tek kad ga sistem potvrdi, a bijela tabla čuva se kao objekti koji se mogu uređivati.6 miniz /bs/projekti/nepromjenjivi-izdati-dokumenti
- 15Zašto sam dozvole za fajlove modelirao u Neo4j-u umjesto u SQL tabelamaNa platformi za sastanke pristup fajlu išao je preko sastanka, dokumenta, verzije i potpisa. SQL-u za svaki korak treba još jedan join, a Neo4j te veze prati direktno.6 miniz /bs/projekti/dozvole-kao-graf
- 16Štampanje logoa na termalnom štampaču za priznanice iz React NativeaTermalni štampač prima samo tačke, pa logo mora postati jednobitna bitmapa, spakovana po osam tačaka u bajt i ručno pozicionirana u jedinicama papira, bez pregleda prije štampe.5 miniz /bs/projekti/nativni-moduli-hardver-u-react-nativeu
- 17Naš dizajn sistem upakovan kao skill ubrzao je AI agenta barem dvostrukoAI agent je isti dizajn napravio za 31,7 sati s našim dizajn sistemom kao bibliotekom, a zatim za 2,5 sata s istim sistemom kao skillom. Dio razlike objašnjava noviji model.5 miniz /bs/projekti/dizajn-sistem-za-vise-platformi
- 18Čitanje NFC čipa u pasošu iz React NativeaGodine 2020. za to nije postojala upotrebljiva biblioteka. Nativni modul u Javi, ista logika prenesena u Swift i jedan zajednički interfejs kroz Turbo Module.5 miniz /bs/projekti/nativni-moduli-hardver-u-react-nativeu
- 19Tehnički due diligence: prvo pročitajte račun, pa kodPrije nego što kupite ili finansirate proizvod, račun za cloud pokaže šta sistem stvarno radi. Kako čitam nepoznat sistem i šta procjena sadrži.4 miniz /bs/projekti/smanjenje-troskova-aws-a-osam-puta
- 20Rad sa softverskim timom iz Bosne i Hercegovine: šta provjeritiVremenska zona, ugovor, vlasništvo nad kodom, lični podaci, fakture i praznici: šta firma iz SAD-a ili EU treba provjeriti prije rada s timom iz Sarajeva.5 min
// Bilješke s terena
Nove tekstove i izmjerene brojke šaljemo vam na email čim ih objavimo.
Nema piksela za praćenje, a odjaviti se možete jednim klikom.
Blog
Zapeli ste na nekom od ovih problema? Pišite nam.
Prvi poziv traje 30 minuta i ni na šta vas ne obavezuje.