@azmimengu Bir süredir test ediyoruz.
- Superonline ile routing sorunu devam ediyor, trafik yurt dışından dönüyor. TurkTelekom, Turknet, Vodafone düzeltildi
- Cloudflare ile peering de optimum değil, 36 ms'lerde ping süreleri
...
@azmimengu - Egress trafik için Nat Gateway kullanamıyorsunuz, benzeri single-zone durumu nedeniyle. Nat Instance oluşturup trafiği oradan NAT'layarak çıkartabilirsiniz.
@azmimengu - Network LoadBalancer ile servis açmak isterseniz trafik gene yurt dışından dolaşmak zorunda kalıyor zira Network LoadBalancer da single-zone çalışamıyor ve IST local-zone için Availabilit Zone yok. Application Load Balancer ile ilerleyebilirsiniz.
@azmimengu - EKS cluster doğrudan kuramıyorsunuz çünkü kubernetes control plane single-zone kurulamıyor. Control plane'i Frankfurt yapıp node'ları İstanbul NodePool'undan kullanacak şekilde işaretlemek gerekiyor
...
SQLite has about 155,800 lines of code, and its test suite has roughly 92 million lines. That is ~590x more test code than actual code 🤯
This is the level of testing you need for a real production database. Here are some types of tests they run.
Out-of-memory tests - SQLite cannot just crash when memory runs out. On embedded devices, OOM errors are common. They simulate malloc failures at every possible point and verify that the database handles them gracefully.
I/O error tests - Disks fail. Networks drop. Permissions change mid-operation. SQLite inserts a custom file system layer that can simulate failures after N operations, then verifies that no corruption occurs.
Crash tests - What happens if power cuts out mid-write? They simulate crashes at random points during writes, corrupt the unsynchronized data to mimic real filesystem behavior, then verify the database either completed the transaction or rolled it back cleanly. No corruption allowed.
Fuzz testing - They throw malformed SQL, corrupted database files, and random garbage at SQLite. The dbsqlfuzz tool runs about 500 million test mutations every day across 16 cores.
100% branch coverage - Every single branch instruction in SQLite's core is tested in both directions. Not just 'did this line run', but 'did this condition evaluate to both true AND false'.
Databases are really unforgiving :)
By the way, if you want to go deeper, I recommend reading the official SQLite documentation on their testing strategy. The doc is pretty practical and deep.
Have linked it below.
September, 26: Cloudflare rewritten in “memory safe” Rust.
The change is touted as “faster and more secure” because of Rust.
https://t.co/JqtUziMGpU
November, 18 (53 days later): Cloudflare has a massive outage, which took down large portions of the Internet, because of a memory error… in that Rust code.
https://t.co/jqNoYseJHS
This paper is highly recommended for programmers. Even the god of programming can make mistakes. It also helps deepen your understanding of Linux scheduling and how to solve complex performance issues. Thanks to @Not_Yours_Mom for the recommendation. https://t.co/Bu0NMDHB8E
⚠️ Uyarı: Hiç hoşunuza gitmeyecek kırmızı hap tweetidir!
Startupların çoğu başarısız olur (%90). İlk girişiminde başarılı olma ihtimalin ise yalnızca %18.
Yani basit bir matematikle bugün ilk kez girişimciliğe adım atan birisi önce %10’un içerisine daha sonra da bu %10’un %18’inde olacak. Bu da %1,8 yapar.
Bu %1,8’in büyük çoğunluğunu da ABD, Çin, İngiltere, Hindistan, İsrail gibi ülkeler kapatacak. Orada da kaba bir hesap yapalım:
Her yıl 305M startup hayata geçiyor. Bunların 3,5 milyonu ABD’de. Yaklaşık 11 milyonu Çin ve Hindistan’da. İlk 40 ülke içerisinde Türkiye yok. Hadi (yoktur ya) 300 bin diyelim Türkiye’deki startup üretimine. Yani yaklaşık %0,1…
Özetle %1,8’e gireceksin ama çok daha başarılı ekosistemlerin senden 1000 kat daha fazla ürettiği startuplarla rekabet ederek.
Kaybedilen bir katma değer maçının ortasındayız. Maç uzadıkça gol yiyoruz… Ama hepimizde bir “Oyna devam!” tavrı var…
What the hell is an ampersand and why does it look like that?!
The first thing you need to know is that "&" used to be the 27th letter of the alphabet...
But there are three parts to this story. And the first begins over two thousand years ago in Ancient Rome with a single word: et. It's the Latin for "and". At some point Roman scribes started combining the two letters of et into a single symbol, which was the ancestor of our modern &.
The earliest example of the "et" symbol is actually from graffiti in Pompeii. In any case, it did not disappear with the fall of the Roman Empire.
Latin survived as the language of the Catholic Church and of scholarship in Medieval Europe. Scribes during the Dark Ages continued to use the & symbol. It evolved down the centuries, in places losing any semblance of the letters e and t whatsoever.
The second part of the story is that during the 18th and 19th centuries, as education and the teaching of literacy spread, & was added to the end of the alphabet as a sort of 27th letter.
On a related note, although "et cetera" is now usually just abbreviated as etc., for a long time it was instead abbreviated as "&c". The & was for et and the c for cetera.
The third and final part of the story is about how the alphabet was taught to children — and how it was read out loud.
As this 1822 Glossary of Words and Phrases explains, it had been normal during the Renaissance, when speaking the alphabet, to add "per se" before any letter which could also be a word on its own — "per se" means "by itself" in Latin.
Take the letter A, which can also be a word of its own. When reading out the alphabet people would say "A, per se A, B, C, D, E, F, G, H, I, per se I..." and so on. O was also considered a word of its own.
Which means, when people got to the end of the alphabet, with & being the 27th letter, they would say: "S, T, U, V, W, X, Y, Z, and per se &."
When this old way of reading the alphabet was taught to children in the 18th century and they were reciting it aloud, they would garble "and per se " into what eventually became... ampersand.
A Dictionary of Slang and Colloquial English from 1905 relates some of the many other pronunciations school children apparently came up with:
"Ampersand. The sign &; ampersand. Variants: Ann Passy Ann; anpasty; andpassy; anparse; apersie; per-se; ampassy; am-passy-ana; ampene-and; ampus-and; ampsyand; ampazad; amsiam; ampus-end; apperse-and; empersiand; amperzed; and zumzy-zan."
Well, of all the many pronunciations that might have stuck, it was "ampersand" which came to be accepted and is now the official name for &... rather than zumzy-zan. So, from hurried Roman scribes to unruly school children, that's where "&" came from.
"Move fast and break things" is outdated advice for startups.
Software ate the world—and there's more competition than ever.
Our startup learned the hard way to ignore this advice, and this is what happened:
@gokhansengun veri zaten neredeyse sabit, yapacağın tek şey key'i belirleyip içeriği yazmak. öyle çok fazla istek nedeniyle webserver'a dahi ulaşamama durumu yok burada, bildiğin gelen her isteği doğrudan veritabanına soruyorlar... 2023 yılında bu kadar acemice bir çözüm gerçekten inanılmaz!!!
@gokhansengun İnanılır gibi değil! Çalıştığı zaman bile il seçiyorsun, gidip ilçe listesini sunucudan çekiyor, 14 saniye. İl-İlçe listesini birlikte koysana!!! Sonra sandık seçiyorsun, beklemeye devam. Halbuki özel bir çözüme bile gerek yok, basit bir redis instance ile bile çözülür...