Bilmek istediğin her şeye ulaş
Ekim 2018

Necmettin Begiter bir yanıt verdi.

Sosyal medya fikrim var. Bunun için çalışabilecek gönüllü arkadaşları nasıl bulabilirim?

Gönüllü çalışmak diye birşey yok. Gönüllü çalışan insan ya başlangıç düzeyindedir, ya da çok boş vakti vardır. İnsanların sizin için çalışmasını istiyorsanız onlara karşılığında bir şey vermelisiniz.

Bu hisse olur, ücret olur; ama mutlaka birşey vermeniz gerekir. Doğru yaklaşım budur.

Fikrinizin paylaşılamayacak kadar özel ve gizli olduğunu söylüyorsunuz. Yıllar içinde hayata geçen/geçmeyen yüzlerce fikre şahit oldum, bugün paylaşamadığınız projenizin hayata geçtikten sonra 3 ay içinde (eğer gerçekten katma değeri olan bir fikir/yaklaşımsa) klonlanacağını unutmayın. Başarılar.
Eylül 2017

Necmettin Begiter bir yanıt verdi.

Üç gündür kafamı karıştıran bir konu ile boğuşuyorum: multithreading. Öncelikle thread nedir tam olarak? Bir thread ne zaman oluşturulur. Bir program çalıştırıldığında sahip olduğu tüm thread'ler da o zaman mı yaratılır yoksa thread'e ait olan bir kod çağrıldığı zaman mı?

Threadleri bir ana programa bağlı çalışan alt programlar olarak düşünebilirsin. Ana program o alt programları istediği gibi kontrol edebilir, yenilerini başlatabilir, olanları öldürebilir, onlara belirli sinyaller (komutlar) gönderebilir.

Threadler çok sonra da yaratılabilir, baştan da yaratılabilir. Bu ana programın _keyfine_ kalmıştır.

Mesela web sunucusu Apache, gelen isteklere cevap verecek threadlerle çalışır. Bu alt threadlerin durumlarını takip eder ve gelen istekleri müsait olanlara dağıtır. Apache ayarlarından threadleri baştan mı yaratsın, kaç tane yaratsın, lazım olunca mı yaratsın gibi her türlü ayarı yapabilirsin.
Ağustos 2016

Necmettin Begiter bir yanıt verdi.

40 yaşındayım ve 18 yaşında sevgilim var. Çevre tarafından eleştiriliyorum, aslında bana çok normal geliyor. Sizce anormal bir durum mu?

Arkadaşınızı tanımadığım için sadece 18 yaşında biri nasıl olur diye düşünerek yanıtlayacağım. Soruyu soran erkek mi yoksa bayan mı göremiyorum, ama benim söyleyeceklerimi pek de değiştirmiyor.

Bence hayattan beklentileri iyice netleşmiş birinin henüz müteşekkir olmayı, hayranlığı, sevgiyi, aşkı, ihtiyacı ve cinselliği birbirinden ayıramayacak kadar genç biriyle birlikte olması, o kişiye haksızlıktır. Bu ilişkinin tarafları, bu ilişkiye dışarıdan bakamadıkları sürece, terazinin iki tarafının eşit olmadığını anlamakta çok büyük sıkıntı çekeceklerdir.
Ağustos 2016

Necmettin Begiter bir yanıt verdi.

Php ile jpg, png, gif formatlı resimleri webp formatına çevirmek.

İmagecreatefromjpeg, imagejpeg ve imagewebp ile yapabilirsin. Biraz taklalı bir çözüm ama mantığı oldukça basit. Resmi hafızaya okuyorsun, sonra da webp olarak kaydediyorsun.

$dosya ='abc.jpg';
$orjinal =  imagecreatefromjpeg($dosya);
ob_start();
imagejpeg($orjinal,NULL,100);
$resim =  ob_get_contents();
ob_end_clean();
imagedestroy($orjinal);
$webp = imagecreatefromstring($resim);
imagewebp($webp,'abc.webp');
imagedestroy($webp); 


Yalnız önemli bir detay var. Bu formatı sadece Chrome ve Opera dışında destekleyen yok.
Temmuz 2016

Necmettin Begiter bir yanıt verdi.

Firefox'ta javascript ile drag drop yaparken ondrop'da dragstart'ta setdata yaptım. Veriyi adres olarak kullanıp açmaya çalışıyorum. Diğer tarayıcılarda düzgün çalışıyor. Sorunu nasıl çözebilirim?

Kod görmeden tam neden bahsettiğinizi anlamadım, ama anlayabildiğim kadarıyla, bir dosya içeriğini istemci tarafında okumaya çalışıyorsunuz. Eğer doğruysa, ihtiyaç duyduğunuz teknoloji FileReader olarak geçer.

forums.asp.net/post/5276451.aspx adresinde bir örnek,
developer.mozilla.org/en-us/docs/web/apı... adresinde de belgelendirme mevcut.
Temmuz 2016

Necmettin Begiter bir yanıt verdi.

Firefox ile çalışırken input file element'inin click fonksiyonu çalışmıyor ancak aynı kod Chrome ve IE'de çalışıyor. Neden olabilir?

Mevzuya hakim değilim, ama araştırıp öğrendiğime göre, dosya türü form elemanlarında Firefox için bir alt öğeye inmek gerekiyor. Aynı kod Safari'de de çalıştı. Şu adresler işime yaradı:

github.com/fat/bean/issues/82
jsfiddle.net/NkycS/3/
Mayıs 2016

Necmettin Begiter bir yanıt verdi.

Daha çok programlama için kullanacağım bir dizüstü bilgisayar alacağım. Macbook alacak olursam avantaj ve dezavantajları nelerdir?

Programlama derken ASP.net, C#, Windows masaüstü kastediyorsan Windows bir makina al derim. Ama PHP, Python, RoR vb programlamadan bahsediyorsan Mac'den şaşma derim.

Bir web yazılımcı için Mac kullanmanın avantajı, sunucu ortamının çok kolay bir kopyasını lokalinde oluşturabilmektir. Kod yazarken hafif, güçlü (ama pahalı) bir Macbook gibisi yoktur. Bunu Sublime Text gibi bir editörle birleştirirsen gayet verimli olur.

Yalnız Macbook kullanmayı öğrenmen zaman alacaktır. Macbook'u alır almaz tuş kısayollarına falan da çalışmaya başlamalısın. Windows alışkanlıklarına dönmek isteyeceksin. Windows'u bırakıp Mac'e geçmek sigarayı bırakmak gibidir. Uzunca süre sigarayı unutamazsın ama dayanır ve direnirsen eskisinden daha iyi bir insana dönüşürsün.

Sürücü derdi yok, virüs derdi yok (yanlış işler yapmadığın sürece) :) , kapağı kaldırıyorsun açılıyor, iPhone telefonunla beraber süper çalışıyor, makina Retina ise görüntü harika oluyor. Zayıf bir Mac'i güçlü bir Windows makinaya tercih ederim. Her zaman.
Nisan 2016

Necmettin Begiter bir yanıt verdi.

4chan gibi bir imageboard yapmak için en uygun yazılım dili hangisidir? PHP bu konuda yeterli olur mu?

Yazılım tarafında hangi teknolojileri kullandığın sandığın kadar kısıtlayıcı değil. 4chan gibi bir siteyi PHP ile da yapabilirsin, NodeJS ile de yapabilirsin, C# ile de.

Belli bir kullanıcı kitlesine ulaştıktan sonra donanım yazılımdan daha önemlidir. Örneğin tek sunucuyla anlık 100 kişiden sonra sunucu zorlanmaya başladı diyelim. Bu durumda donanım desteği eklemen gerekir.
PHP yeterli mi? Örneğin Facebook ve Instagram PHP ile yazılmıştır.
Şubat 2016

Necmettin Begiter bir yanıt verdi.

Bir yazılımı oluşturanlar ne zaman yeni versiyonu üzerinde çalışma kararı alırlar?

Yeni versiyon derken neyi kastediyorsun? Kodu yeniden yazmayı mı, yoksa sadece yeni sürüm çıkmayı mı?

Eğer kodu yeniden yazmaktan bahsediyorsan, teknik borç çok birikince yapılır.

Kodu yazarken, "burayı sonra elden geçirmek lazım" diye düşünerek yazdığınız ama o fırsatı hiç bulamadığınız her kod parçası teknik borçtur. Bu borçlar çok artınca, artık o kodu yeniden yazma ya da parça parça iyileştirme vakti gelmiş demektir.

Yok sadece yeni sürüm çıkmaktan bahsediyorsan, semantik sürüm numaralandırması mantığına göre mi numaralandırıyorsun, yoksa "kafana göre" mi? Eğer semantik numaralandırma yapıyorsan, yazılımda köklü bir değişiklik olması gerekir. Kafana göre yapıyorsan, (bence) görsel olarak köklü bir güzelleştirme yapmak yeni sürüm çıkmak için yeterlidir.

Kasım 2015

Necmettin Begiter bir yanıt verdi.

Javascript yazarken Firefox'daki uyum sorunlarından yoruldum. Acaba dikkate almaz isem ne kadar çok şey kaybetmiş olurum?

Firefox'un kullanımı birkaç yıl öncesine nazaran çok çok azaldı, ama hala azımsanamayacak kadar yüksek.

Uyum sorunlarından kurtulmak için jQuery veya benzeri bir kütüphane kullanmanı tavsiye ederim. JQuery'nin varoluş amacı bu uyumsuzlukları bertaraf etmek.


Bir zamanlar 'bize platform bağımsız kod yazma imkanı verecek' dedikleri Javascript bizi platform bağımsız ama tarayıcı bağımlı hale getirdi ne yazık ki.
Ekim 2015

Necmettin Begiter bir yanıt verdi.

Teknik bilişim son sınıf öğrencisiyim. Kod yazmayı seviyorum hatta şu anda Android'e merak saldım. Meslek olarak Bilgisayar Programcılığı istiyorum fakat hocalar "iyi bir bölüm değil gitme" diyor. Sizin fikriniz bu bölümle ilgili nedir?

- Hangi bölüme gidersen git, okulda verilenlerle yetinmeksizin, kendini geliştirmeye devam etmelisin. Ortalamanın üstüne çıkmak için bu şart.
- Hangi üniversitenin hangi bölümünde okuyacağın önemli. Örneğin Çanakkale 18 Mart'ta Necdet Yücel Hoca sayesinde açık kaynak yazılımla yakın ilişki kurarsın. Ama X üniversitede sana Microsoft teknolojileri dışında birşey öğretmezler. Ben birinciyi tercih ederdim.
- Her mesleğin zorlukları vardır. Bizim meslek de farklı değil. Zihin yoğun bir meslektir, zorlukları da ona göredir.
- Bilgisayar programcısı olmak için bölümünü okuman şart değil, ama avantajdır. Kod yazmayı çalışırken öğrenip bölümünü okuyandan üstün olmak da mümkündür, bölümünü okuyup çok donanımlı başlamak da. Bu iş biraz tecrübe, biraz da çaba meselesi.

Yani bir, olay sende bitiyor; iki, tercihlerinde dikkatli olmalısın.
Ekim 2015

Necmettin Begiter bir yanıt verdi.

Javascript ile yazılmış bir uygulamanın kaynak kodlarını korumak mümkün müdür?

Obfuscation (şaşırtmaca, kandırmaca) denen bir işlem vardır. Kodları kolay kolay çözülemeyecek derecede gizler. Ancak hiçbir servis yüzde 100 garanti veremez.

Obfuscation ve minification (küçültme diyelim) birleştirilerek mümkün olan en yüksek korumayı sağlayabilirsiniz ama dediğim gibi garantili birşey yoktur.

Eğer istemci tarafı kodu korumaya çalışıyorsanız, boşuna uğraşmayın derim. Minify edip ağ bağlantısından kazanın yeter.

Sunucu tarafı koddan bahsediyorsak, sektörün SAAS'a (Software As A Service) kaymasının sebebi en güçlü obfuscation servisinin bile eninde sonunda kırılabilmesi.

Ayrı bir detay, kodunuzu (dosyalarınızı) çeşitli servislere kaydederek kanuni koruma sağlayabilirsiniz.
Eylül 2015

Necmettin Begiter bir yanıt verdi.

Uzun süreli bilgisayar kullanımı için göz, koltuk, bel, boyun ile ilgili tavsiyeleriniz nelerdir?

  1. Ekrana arkadan ışık gelmesin, ekranın geneli aynı ışığı alsın.
  2. Işık mümkünse bilgisayar ekranının üstünde olsun.
  3. Işık çok güçlü olmasın. Ama çok zayıf da olmasın. Ekranını çok parlak kullanan çok fazla insan görüyorum. Yazık o gözlere.
  4. Oda güneş görmeyen bir yer olursa daha iyi ama güneş görüyorsa ekran kendi ışığını ayarlayabilen birşey olsun.
  5. Mümkünse retina. Detayları görmeyi kolaylaştıracağı için gözü daha az yorar.
  6. Çok yüksek çözünürlük kullanıp gözünüzü gereksiz kullanmayın. İdeal ekran çözünürlükleri ekranın PPI değerine göre değişir. Mesela retina olmayan 15.4 inç bir ekranda 1366x768 küfür gibi geliyor bana; oturup noktaları sayabiliyorsunuz.
  7. Mümkünse DPI değeri yüksek bir ekran.
  8. Ekranın büyüklüğüne ve çözünürlüğüne göre ekrana mesafenizi ayarlayın. 13 inç bir ekrana yakın, 27 inç ekrana uzak olmak lazım.
  9. Koltuk belinizi destekleyen ama şeklini zorlamayan bir koltuk olsun. Bazı koltuklar görüyorum, bel kısmı içeri doğru bükülmüş oluyor, bele destek olmak için. Ama o kadar sert oluyor ki sırtınıza destek değil köstek oluyor.
  10. Koltuğun ne oturduğunuz kısmı, ne de sırt kısmı çok sert ya da çok yumuşak olmasın.
  11. Kolçaklar ince olmasın, dirseklerinizi desteklesin. Sert olmasın, dirseklerinizi incitmesin.
  12. Kolçaklar yüksek ya da alçak olmasın, dirseklerinizi tam desteklesin.
  13. İşlerinizi 20-25 dakikalık bloklara bölün, aralara da minimum birer dakika koyun. Bu aralarda kalkın, gerinin, omuzlarınızı hareket ettirin, az biraz yürüyün, eğilip kalkın, sağa-sola, aşağı-yukarı bakın, "ofis egzersizleri" denen şeyi yapın yani. Bloklar uzadıkça molalar da uzasın.
  14. Koltuğunuzun, klavye-farenizin ve monitörünüzün birbirlerine açılarını arasıra değiştirin. Mesela monitörü klavyenin/koltuğun/masanın sağ tarafına koyduysanız haftaya sol tarafına koyun. Düz olması daha iyidir ama onu bile arasıra değiştirmek gerekir.
  15. Koltuk dönebilen, tekerlekli, yüksekliği ayarlanabilen birşey olsun. Kendinize/masaya göre ayarlayın.
  16. Ellerinizi masaya koyduğunuzda koltuğunuzun kolçakları dirseklerinizi desteklesin.
  17. Oturduğunuzda ayaklarınız havada kalmasın, diz-ayak arası (baldır denen bölge) yere dikey dursun.
  18. Diz-kalça arası yere paralel olsun.
  19. Soruda yok ama fareden mümkün olduğunca uzak durun. Klavye kısayolları kullanın. Hem sağlık, hem verimlilik için iyidir.
  20. Yüksekliği ayarlanabilen bir masa kullanın ve kendi boyunuza göre ayarlayın.
  21. Sırtınızı sürekli koltuktan desteklemeyin, günde birkaç dakika da olsa dik ve sırt desteksiz oturun.


Şimdilik aklıma gelenler bu kadar. Başka şeyler gelirse umarım burayı güncellemeyi hatırlayabilirim.

Yazdıklarımın bir kısmı "herkesin bildiği şeyler" gibi gelebilir ama bazen dikkat etmiyoruz, o yüzden belirtmekte fayda gördüm.
Ağustos 2015

Necmettin Begiter bir yanıt verdi.

Ağustos 2015

Necmettin Begiter bir yanıt verdi.

Web servis yayınından sorgu yaptığımda, 3-4 sorguda bir bu hatayı alıyorum. Neden kaynaklı olduğu hakkında bir bilginiz var mı (hata açıklamada)?

Servisten XML yerine HTML içerik döndüğünü söylüyor.

Web servisten gelen yanıtın ayrıştırılabilmesi için belli kurallara uyan bir XML dönmesi gerekirken, HTML bir yanıt döndüğü anlamına geliyor. Çok büyük ihtimalle 500 ya da benzeri bir hata sayfası dönüyordur. Servisten gelen yanıtın tam içeriğine bak, orada sana tam olarak sorunun ne olduğunu söyleyecektir.
Ağustos 2015

Necmettin Begiter bir yanıt verdi.

Web sitem hakkında yazılımcıların düşünceleri nedir?

Proje hakkinda bir yorumda bulunmadan yanitlayayim.

henuz varolmayan ozelliklerin butonlarini koymayin derim.
bir de favicon denen ikonunuz olsun.
Ağustos 2015

Necmettin Begiter bir yanıt verdi.

Projenizi test ettirmek için neler yapıyorsunuz?

Test ettirmek derken insanlara kullandırıp tepkilerini almak mı, yoksa hatalı sayfalar olup olmadığını anlamak mı konu? Ben ikisini de cevaplayayım.

Kullanan insanların tepkilerini ölçmek için eğer paranız varsa kullanıcı testi (usability test - kullanışlılık testi ama nedense dilimize kullanıcı testi diye çevirmişler) yaptırabilirsiniz. Daha düşük rakamlara yaptırabileceğiniz bir site keşfettim dün ama adını versem inploid kurallarına ters düşer miyim bilmiyorum. Eğer ters düşmeyeceksem söyleyin, vereyim. Gerçekten düşük rakamlara gerçek insanların kullanımlarını görebiliyorsunuz. Video kaydı da alınıyor. Bu işi siteyle değil de müşterilerine bir servis olarak veren firmalar da var etrafta.

Hatalı sayfalar olup olmadığını anlamak için de aslında gerçek insanlara kullandırmanız şart. Ama kodu yayına almadan önce yazacağınız testlerden geçmesini sağlayabilirsiniz. Böylece kodun kendisinde ve davranışlarında beklenmedik hatalar oluşmasını engelleyebilirsiniz. Ha test yazmak kodun gelişimini yavaşlatır, ama daha emin adımlarla gitmenize olanak verir.

Ama mesela şöyle çelişkiler de var. Çevik yaklaşım mümkün olan en hızlı şekilde yazılım üretmenizi ister. Ama yazılımın da hatasız olması gerekir. Fakat şöyle bir sorun var. Yazılımın olduğu yerde hatalar her zaman olacaktır. Hatasız kul da olmaz, yazılım da.

Ve yazılımı daha hızlı geliştirmenin sadece birkaç yolu var: belgelendirmeyi azaltırsınız, testleri azaltırsınız, parmaklarınızdan çıkan kod direkt kirli çıkar, ve en zararsız (hâttâ faydalı olanı) özellikleri kırparsınız.

Son saniyelerde aklıma gelen bir yöntem de geliştirmelerinizi iki gruba bölmek. Bir kullanıcı grubuna eski kodları kullandırmak, diğer gruba da yeni özellikleri vermek. Ama bu da hem kod hem diğer yönlerden başlı başına büyük bir çalışma demek.

Ayaküstü bu kadar oluyor.

Bu sorular da çok iyi oluyor, bahaneyle bloguma da içerik üretmiş oluyorum. :)
Temmuz 2015

Necmettin Begiter bir yanıt verdi.

Jquery'de Ajax ile yapılan istekleri sunucuya sırayla gönderilmesini nasıl sağlayabilirim?

Her istegi bir oncekinin $. Post'unun icine yaz:
function basla(){
  $.post(.. function(){
    ikinciyiCek()
  })
}

function ikinciyiCek(){
$.post(.. function(){
ucuncuyuCek()
})
}
Temmuz 2015

Necmettin Begiter bir yanıt verdi.

Apple ürünleri neden pahalı?

Soruyu yeni gördüm. Bilgisiz yorumu da okuyunca dayanamayıp bu konuda bir blog yazısı yazdım.
Tüm yazdıklarımı buraya da yapıştırayım yine de, reklam olmasın :)
  • Herşey baştan üst kalitedir. Macbook mesela, SSDli gelir. Retina ekranlıdır. Kasası çizilmez. Ekranı ve klavyesi ortam ışığına göre kendini ayarlar. Çok çabuk açılır. Kapağını kapatınca uyur, kaldırınca hemen açılır ve kaldığı yerden devam eder. Şarjı 9 saat gider. Adaptör taşımamak gibisi yoktur.
  • İşlemci, ekran kartı, ekran çözünürlüğü, disk hızı, çalışma performansı gibi kriterlere göre Apple olmayan muadili 3 kiloyken o 1 kilo bile değildir.
  • Androidden aynı performansı almak için 4 kat RAM, 2 kat işlemci gücü gereklidir.
  • Windows'a antivirüs kurarsın, tüm bilgisayar yavaşlar.
  • Apple kandırmaz. 15 inç ekran verip i3 işlemci vermez. Ya da i7 işlemci ve nVidia bilmemne model bir ekran kartı verip 5400RPM disk vermez.
  • Dokunmatik faresiyle normal bir fareyle yapamayacağın kadar çok şeyi yapabilirsin. Aynı anda beş parmakla kullanılabilir. PC'lerde kullandığınız hiçbir dokunmatik fare Apple dokunmatik fare kadar kaliteli ve kolay kullanımlı değildir.
  • Formatlamak için servise göndermen veya kurulum diski vs gerekmez. İnternet bağlantısı yeterlidir. Ürün senin adına kayıtlıdır. Ana menüsünden girip kullandığın seride bir donanım problemi olup olmadığını kontrol edebilirsin.
  • Virüs derdin yoktur. Virüs bulaştırmak için uğraşman gerekir.
  • Türkiye bunun istisnası olabilir belki ama Apple kullanıcısı para harcamaktan çekinmez. Harcadığı paranın hakkını alacağına inanması yeterlidir. Zaten ikna olup satın aldığı bir uygulama yaptığını söylediği işi düzgün yapamıyorsa parasını iade alabilir. Bu yüzden bütün uygulamalar önce Apple ürünleri için yazılır, diğerlerine sonradan geçer.
  • Satın aldığın tüm müzikleri, filmleri, dizileri ve uygulamaları Apple senin adına bir kenarda tuttuğu için formatlama, sıfırlama gibi işlemler çok problemsizdir.
  • Sadece kurulu gelen Apple uygulamalarını kullanarak çoğu ihtiyacınızı giderebilirsiniz.
  • Harcadığınız paranın hakkını aldığınızı, kandırılmadığınızı bilirsiniz.
  • Kullanımı Windows'a göre çok daha kolaydır.
  • Hangi modeli alırsanız alın, tuş yerleşimleri dahil herşeyi aynıdır. (Portların farklı olması ya da yepyeni bir modelde başka yerleşimler vs başka mevzu)
  • Apple ürünleri için yazılım geliştirmek istiyorsanız birşeyleri satın almanız gerekmez. (Ha Microsoft da bu konuda birşeyler yaptı 2015'te, o başka.)
  • Windows için yazılmış her uygulamanın en kötü ihtimalle muadili, büyük ihtimalle daha güzeli Apple için mutlaka vardır. (Üretim bandı için yazılmış özel bir uygulama vs ayrı konu.)
  • Diğer markalar size yetişmeye çalışır. Sizi taklit ederler.
  • İşletim sistemi ve çoğu işinizi göreceğiniz uygulamalar direkt kurulu gelir ve ücretsizdir. Toplam sahip olma maliyeti olarak baktığınızda arada öyle sanıldığı gibi uçuk bir fark yoktur. Aksine, verimliliği yüksek bir ürünün toplam sahip olma maliyeti daha düşük olur.

Tek kelimeyle özetleyeyim: Kalite.
Temmuz 2015

Necmettin Begiter bir yanıt verdi.

C#'ta 16 milyon dizi nesneli bir Dictionary nesnesini doldurmak istediğimde 6 milyon elemana ulaştığında 'out of memory exception' hatası veriyor. Bunu engellemek için nasıl bir çözüm uygulayabilirim?

Mevzu 6 milyon olmasında değil, sözlük (Python'da dict için kullanılan çeviri, C#ta ne deniyor bilmiyorum) içindeki elemanların boyutları.
En doğru çözüm tüm veriyi bir SQLite bir veritabanına yazmak veya bir MSSQL sunucudan okumak.
Onu yapmak istemiyorsan kayıtları ayrı ayrı (veya gruplar halinde) ikili dosyalara yazarak çalış ve hafızada sadece ilgili veriye erişmek için gerekli alanları tut, diğerlerini diskten oku.
Web projesiyse zaten direkt veritabanıyla çalışmalısın, yoksa sayfaya giren her kullanıcıda sunucu boğulur.
Daha fazla göster

En Beğenilen Yanıtları

Benzer Kişiler