
English: 
So the other week there was an interesting announcement from Google
they had to update YouTube because Psy's
popular music video, Gangnam Style had managed to amass so many views
that it overflowed the 32-bit integer that they were using to store
view counts and so I thought it would be interesting to just take a look and remind ourselves of how
computers store numbers
and to see exactly why it actually broke 
YouTube
so Psy managed to amass 2,147,483,647
views on YouTube for his video. So the computer stores this information
in binary and if we've got just one bit of
information one binary digit then we can
store two
values zero or one; on the other
hand,
if we have two bits of information and so I represent this
as two boxes and we can store

Turkish: 
Yani geçen hafta Google’dan ilginç bir duyuru geldi.
YouTube’u güncellemek zorunda kaldılar, çünkü Psy's
popüler bir müzik videosu olan Gangnam Style, birçok görüntüyü bir araya getirmeyi başarmıştı
depolamak için kullandıkları 32 bit tamsayıyı aştığını
sayıları görmek ve bu yüzden sadece bir bakıp kendimizi hatırlatmanın ilginç olacağını düşündüm
bilgisayarlar numaraları saklar
ve tam olarak neden kırıldığını görmek için 
Youtube
Böylece Psy 2,147,483,647 biriktirmeyi başardı
videosu için YouTube'da görüntülendi. Böylece bilgisayar bu bilgiyi depolar.
İkilik olarak ve eğer bir parçamız varsa
bilgi bir ikili basamak sonra yapabiliriz
iki tane sakla
değerler sıfır veya bir; Diğer yandan
el,
eğer iki bilgi parçamız varsa ve bu yüzden bunu temsil ediyorum
iki kutu olarak saklayabiliriz

English: 
four different values because we can put
zero in both boxes we can put a zero
in the first box and the one in the
second we can put a one in the first box
a zero in the second box
and if we put a one in both boxes
so we've got four possible values that we can store. Now just like when we count
normally using decimal system we got
powers of 10, each of these boxes represents,
we've got the first one represents
ones or two to the power zero, and the
second one represents
the twos or two to the power of
one. And so if we add them together we've got no twos and no ones
we get zero. No twos and one, so we
get one
one two and no ones we get two
and one two and one one we get three. So we can store four possible values
from naught through to three. If we do the same
with three bits, zero fours plus zero twos plus zero ones which is zero

Turkish: 
dört farklı değer çünkü koyabiliriz
her iki kutuda da sıfır koyabiliriz
ilk kutuda ve birinci kutuda
ikinci bir kutuya bir tane koyabiliriz
ikinci kutuda sıfır
ve her ikisine de bir tane koyarsak
bu yüzden saklayabileceğimiz dört olası değerimiz var. Şimdi sadece saydığımız zamanki gibi
normalde sahip olduğumuz ondalık sistemi kullanarak
10'un yetkileri, bu kutuların her biri,
ilki temsil ettik
güç sıfır olanlardan biri veya iki, ve
ikincisi temsil eder
iki ya da iki gücüne
bir. Ve eğer onları bir araya getirirsek, iki elimiz olmaz ve hiç kimse olmaz.
Sıfır alıyoruz. İki tane yok, öyleyse biz
birini almak
bir iki, hiç kimse iki olsun
ve bir iki ve bir üç alıyoruz. Böylece dört olası değeri saklayabiliriz
boşa giderken üçe kadar. Aynı şeyi yaparsak
üç bit, sıfır dört artı sıfır iki artı artı sıfır olan sıfır

Turkish: 
sıfır dört artı sıfır iki artı bir tane olan bir
ve böylece iki, üç, dört,
beş, altı ve yedi
el yazısı için özür dilerim. Ve Onun
tam olarak yapabileceğimiz aynı şeyi yapabiliriz
bunu genişletip her eklediğimizde
ekstra bit biz miktarını iki katına
belirli bir mağazayı saklayabileceğimiz bilgiler
sekiz numara
üç bit iki iktidara üç biz dört vardı
iki güç üç bize sekiz verir
iktidara dört bize on altı verecek
iki katına çıkardığı sayılar yine sıfırdan on beşe
ve sekizde iki bize 256 verir
farklı değerler 0 - 255
ve uzanıyor. Şimdi YouTube, çünkü bilgisayarları muhtemelen başladığı zamanlar.
bunu yazmak ve uygulamak
çalışan 32 bit işletim sistemlerini kullanır.
standart
Saklamak için 32 bit tam sayı
görüntüleme sayısı. Mantıklı; bu varsayılan
birçok sistem

English: 
zero fours plus zero twos plus one one which is one
and so on two, three, four,
five, six, and seven
apologies for the handwriting. And it's
exactly the same thing we can do we can
extend this and every time we add an
extra bit we double the amount of
information we can store certain store
eight numbers
with three bits two to the power three we had four
two the power three give us eight
two to the power four would give us sixteen
numbers it doubles again store zero through fifteen
and two to the eight gives us 256
different values 0 through 255
and it extends up. Now YouTube, because their computers are probably when they  started
writing and implementing this
running 32-bit operating systems uses a
standard
32-bit integer to store the
view count. Makes sense; it's the default on
many systems

Turkish: 
ve iki milyar kadar görüşün toplanmasının mümkün olmadığını düşünüyorsunuz
Bunu düşünürseniz, belki izleyen gezegenin üçte biri
bazılarının sahip olduğunu düşündüğünüz bir video
aslında yapmak için daha iyi bir şey
onların hayatları. Yani 32 bit gücüne bir 32 bit sistem bize veriyor
4294967296
saklayabileceğimiz olası numaralar
sıfır
4,294,967,295
hepsi değer
saklayabileceğimizi
YouTube iki milyardan fazla geçtiğinde neden kırıldı, ancak bu sadece tutarın yarısı
sığabilirsin
32-bit bir tamsayıda İyi bilgisayarlar olabilir
negatif numaraları da sakla
ve bunu yapma şekilleri
bit kalıplarından bazıları
sıfırlar ve bu 32-bit tamsayıyı oluşturanlar
negatif sayılar ve diğerleri demek
pozitif sayılar
bu yüzden iki milyar pozitif sayı alıyoruz
ve iki milyar negatif sayı

English: 
and you think two billion or so views was unlikely to be amassed
when you if think about it that's a third of the planet perhaps watching
one video you'd think some of them have
actually something better to do with
their lives. So a 32 bit system two to the power of 32 gives us
4,294,967,296
possible numbers that we can store that's
zero
through to 4,294,967,295
they're all the values
that we can store
Why did YouTube break when it got past two billion but that's only half the amount
you can fit
in a 32-bit integer? Well computers can
also store negative numbers
and the way they do that is by using
some of the bit patterns
the zeros and ones that make up that 32-bit integer to mean
negative numbers and others to mean
positive numbers
so we get two billion positive numbers
and two billion negative numbers

English: 
either side of zero. We can see
this if we consider a slightly simpler
situation using only eight bits or a
single byte
now the way computers store negative
numbers they use what's called the two's
complement system and we'll
do another video some time that will go into exactly how that works and the other
systems that were used in the past
but the basic thing to remember is that
the top bit
bit 7 so if you number bit zero down here
0, 1, 2, 3, 4, 5, 6, 7 so bit seven here
effectively stores the sign if it's zero, it's a
positive number
if it's one then it's a negative number.
If we have 127
in decimal on we add one we
obviously get
128 but 128 in binary would be
1 0 0 0 0 0 0 0
and if you remember what  I said the top bit, bit 7
says whether it is positive or negative and we've gone from being positive 127

Turkish: 
sıfırın iki tarafı. Görebiliriz
eğer biraz daha basit düşünürsek
sadece sekiz bit veya
tek bayt
şimdi bilgisayarların olumsuz şekilde depolaması
sayıları ikisinin dediği şeyi kullanır
tamamlama sistemi ve biz
tam olarak nasıl çalıştığını ve diğer nasıl gidecek bir zaman başka bir video yapmak
Geçmişte kullanılan sistemler
ama hatırlanması gereken temel şey
en iyi bit
bit 7 bu yüzden burada bit sıfıra giderseniz
0, 1, 2, 3, 4, 5, 6, 7 burada yedi bit
işareti sıfır olduğunda etkin bir şekilde saklar, bir
pozitif sayı
eğer bir ise o zaman negatif bir sayıdır.
Eğer bizde 127 varsa
ondalıkta bir tane ekleriz
belli ki olsun
128 ancak 128'de ikili olur
1 0 0 0 0 0 0 0
ve en çok söylediğim şeyi hatırlıyorsanız, bit 7
Olumlu mu yoksa olumsuz mu olduğunu ve olumlu olmaktan kurtulduğumuzu söylüyor 127

Turkish: 
128 negatif için bu ne denir
bilgisayar sisteminde taşma hatası
çünkü aralığımızı aştık.
pozitif tamsayıları saklayabilir
ve geri negatifine döndü
tamsayılar ve bu tam olarak aynı
YouTube’da olurlarsa
bir tane eklendi
Psy'nin hit sayısı, çünkü pozitif olmaktan çıkmıştı.
İmzalanabilecek en yüksek sayı olan iki milyar et cetera
32 bit tam sayı negatif
eksi iki milyar et cetera olan
saklayabilecekleri en düşük negatif sayı.
Öyleyse, neden sadece işaretsiz tamsayıları kullanmaya geçmediklerini soruyor olabilirsiniz; neden yaptılar
64 bit sayısını kullanmaya karar ver
Açıkçası onlara verdi
çok daha fazla yer birkaç quintillion
neden saklamak için değerler sadece imzasız bir sayı kullanmadılar, bu sayı iki katına çıkacak
saklayabilir
Bulduğun şeylerden biri, bu yüzden yazarken kötü bir uygulama olarak görülüyor.
yazılım bu kadar basit ki
hesaplamalar
yanlış gitmek, mesela biz söyle
çıkarmak
iki sayı, sayıları çıkaracağımızı söyle
5 ve 3

English: 
to negative 128 this'll be what's called
an overflow error on the computer system
because we've overflowed the range we
can store positive integers
and gone back around into negative
integers and this is exactly the same that
would have happened on YouTube if they
added one
to Psy's hit count because it had gone from being positive
two billion et cetera which is the highest number that they could store in a signed
32-bit integer to negative
minus two billion et cetera which is the
lowest negative number they can store.
So you might be asking well why didn't they just switch to using unsigned integers; why did they
decide to go up to using 64-bit number
which obviously gave them
a lot more space several quintillion
values to store why didn't they just use an unsigned number, that would double the number they
could store
One of the things you find which is why it's considered bad practice when writing
software is that certain simple
calculations
go wrong so for example say we
subtract
two numbers, say we were to subtract the numbers
5 and 3

English: 
and we wanted to find out what the difference is well we subtract one from the other
we get the number two say on the other
hand we define the difference between a
123
and 200 we do the same we subtract one
from the other
now in a signed system that's fine you get
a -77
and you can run that through a function
to get the absolute value in
C it would probably be called ABS or abs
and so we can find a difference
whichever way around quite easily
but if we're using unsigned integers
we can't store the value of minus
numbers so we'd end up getting random
very big
numbers appearing instead of the simple
difference that we'd expect
So the point of view YouTube might be
that they want to work out
how many views they've had between two points and they've had X views
on Tuesday and now have Y views on
Wednesday subtract
Y from X or X from Y, and suddenly if you do it one way it works and if you do the other way
it doesn't. And so it's considered bad
practice when you are writing software that you want to
be reliable and it's in Google's style guide
to programming

Turkish: 
ve aradaki farkın ne olduğunu bulmak istedik, birini diğerinden çıkardık
iki numara diğer tarafta söyleniyor
el arasındaki farkı tanımlarız
123
ve 200 de aynısını yaparız
diğerinden
şimdi imzalı bir sistemde iyi olsun
a -77
ve bir fonksiyon aracılığıyla bunu çalıştırabilirsiniz
mutlak değeri elde etmek
C muhtemelen ABS veya abs olarak adlandırılır
ve böylece bir fark bulabiliriz
hangisi oldukça kolay bir şekilde
ama işaretsiz tamsayılar kullanıyorsak
eksi değerini saklayamayız
sayıları rastgele elde edecektik
çok büyük
basit yerine görünen sayılar
beklediğimiz fark
Dolayısıyla YouTube’un bakış açısı
çalışmak istediklerini
İki nokta arasında kaç kez görüş aldıklarını ve X görünümlerini aldıklarını
salı ve şimdi y görüş var
Çarşamba çıkarma
X'ten Y'ye veya Y'den Y'ye, ve bir şekilde yaparsanız aniden çalışır ve diğer şekilde yaparsanız
öyle değil. Ve bu yüzden kötü kabul edilir
İstediğiniz yazılımı yazarken pratik yapmak
güvenilir olun ve Google’ın stil rehberinde
programlama

Turkish: 
bizim yapmamamız gereken şeyleri
kullanım
İmzasız numaralar, yani yaptıkları şey olmaktan çıkardılar.
İmzalı 32-bit sayılar için 64-bit imzalı
ihtiyaç duydukları aralığı elde etmek için sayılar
17432
yıl kaç yıl olmuştu
Gangnam stilini izlemek için bir kişi aldı
YouTube’u kırmak için.

English: 
which we can link to that you shouldn't
use
unsigned numbers so what they've done is they've taken it from being
signed 32-bit numbers to signed 64-bit
numbers to get that range they need
17,432
years so that's how many years were
taken one person to watch Gangnam style
to break YouTube.
