Bug ne demek?
Bug, kelime anlamı olarak böcek demek. Türkçeye ve pek çok dile yerleşen 'bug' ise farklı bir anlam içeriyor. Çıkış noktası yazılımla alakalı. Yazılımsal kodlama hatasına bug deniyor. Yani bug, tekniksel bir işlev bozukluğunu ifade ediyor. 'Sistem açığı' olarak da özetleyebiliriz 'bug' kelimesini.
Bug sorunları neden önemli?
Yazılım anlamında kullanılan bug sorunlarının tespiti ve bu sorunların giderilmesi oldukça önemlidir. Çünkü bug sorunları güvenlik açığına sebebiyet vermektedir. Bug terimi 'lı yıllarda ortaya çıkmıştır. Bir böceğin, bir bilgisayarın devrelerinin yanmasına sebebiyet vermesinden almıştır. Yazılımsal kodlama ve sistem hatalarına da böylelikle 'bug' denilmeye başlanmıştır. Bug terimini yazılımsal kod hatalarında kullanan ilk kişi Grace Hopper'dır.
Bug ve bilgisayar oyunları
Bug terimi çıkış noktası olarak yazılımsal hataları ifade etmekte kullanılsa da günümüzde bilgisayar ve telefon oyunlarıyla popülerleşmiştir. Örnek olarak bir bilgisayar oyunu oynarken ekranınızın donması ya da görüntünün piksel piksel gözükmesi aslında bir bug problemidir. Oyunu kullananlar "Oyunun bug'ını buldum" şeklinde cümleler kurmasının sebebi budur.
Bug ve sosyal medya
Sosyal medyanın yaygınlaşmasıyla birlikte bug da bir başka anlam kazanmıştır. Bug terimi sadece yazılımsal hataları ya da bilgisayar/mobil oyunlarını değil aynı zamanda insanların defolu yanlarını ifade etmek için de kullanılmaya başlanmıştır, böylelikle sosyal ilişkilerde de kendisine karşılık bulmuştur. Sosyal hayatta kullanılan 'bug' ise 'kişinin açığı, zaafı' anlamındadır.
Bugün Perşembe. Karım arkadaşlarıyla dışarıda ve gece geç dönecek. Çocuklar çoktan uyudu. Televizyonda izlemek istediğim hiçbir şey yok. Boş boş duruyorum ama dizüstü bilgisayarım ve hızlı bir internet bağlantım var.
Zamanı geçirmek için ne yapacağım?
Tabii ki de popüler internet sitelerinde güvenlik açıklarını arayacağım.
Amacım sadece boş vaktimi değerlendirmek değil. Artık çoğu siber güvenlik uzmanı zamanını internet sitelerindeki güvenlik açıklarını bulup rapor ederek geçiriyor. Birçok şirket de güvenlik açıklarının suistimal edilmemesi için bu güvenlik açıklarını rapor eden kişilere ödeme yapıyor.
Apple da yakın zamanda bir yazılım hatası avı programı başlatarak rakipleri Facebook ve Google'a katıldı. En yüksek ödülün milyon dolar olduğu programa, Apple ile daha önce çalışmış kıdemli siber güvenlik uzmanları başvurabiliyor. Bu yüzden ben henüz başvuramıyorum.
Bugcrowd sitesinin kurucusu Casey Ellis "Kritik bir yetenek eksikliği var" diyor. Ellis'in sitesinde yazılım hatalarını bulan 30 bin uzman 'hacker' üye var.
Açık bulmak
Diğer kullanıcıların göz attığı sayfalara hackerların kendi kodlarını eklemesini sağlayan çarpraz kod hatalarını bulabilirim çünkü bunlardan çok fazla var. Spiderlabs siber güvenlik şirketinin tahminlerine göre web uygulamalarının % 82'si bu durumdan muzdarip.
Bu durumda benim gibi bir acemi bile bu hataları bulabilir.
Ama nereden başlayacağım?
İnternet sitelerinde ve yazılım programlarındaki güvenlik açıklarını yakalayarak para kazanan Cameron Dawe, kullanıcıların katkı yapmasına izin veren her internet sitesine bakabileceğimi söylüyor.
"Kullanıcıların katkı yapmasını sağlayan arama kutucukları, profillerdeki 'hakkında' bölümleri ve üye girişi formlarının hepsi saldırılara açık. XSS (çapraz site saldırısı) ile ilk defa gençken karşılaşmıştım. İnternetteki profillerime basit bir HTML kodu koyarak ismimi renkli yapıyordum. Bu XSS'in zararsız ve küçük bir örneğiydi. Ancak yıllar sonra bir internet sitesinde yapılan küçük bir değişikliğin güvenlik açığı olduğunu öğrendim" diyor.
Hata bulucu olarak aslında bu oyuna oldukça geç katılıyorum.
Birçok uzman saldırıya uğrayan internet sitelerini tespit etmek için otomatik araçlar kullanıyor. Bu da benim bulabileceğim güvenlik açıklarının çoktan bulunmuş ve hataların düzeltilmiş olması demek.
Yaratıcı olmam gerekecek.
Şahin gözlü, iyi niyetli hackerların düşünmeyeceği tuhafiyecilerin, tamircilerin, koşu ayakkabısı satıcılarının internet sitelerini seçeceğim.
Bu iyi bir taktik.
Birkaç dakikada bir hata buluyorum, sonra bir tane daha ve bir saatten az bir sürede 7 internet sitesinde bulduğum güvenlik açıklarını arama kutularından ve formlardan onlara bildiriyorum.
Ben hiçbir şekilde bu konuda uzman değilim ve bu güvenlik açıklarını bulurken oldukça basit yöntemler kullanıyorum.
Ayrıca bu açıkları ben bile kolayca bulabiliyorsam çok da ciddi olamazlar değil mi?
Spiderlabs'in araştırma ekibi başkanı Lawrence Munro ciddi olabileceklerini söylüyor.
"Küçük açıklar daha büyük açıklara işaret ediyor olabilir" diyor ve ekliyor "Genelde XSS oldukça ciddi bir güvenlik açığıdır ama ciddiyetin farklı seviyeleri var."
Munro, benim bulduklarımın çok ciddi olmadığını söylüyor.
"Siber saldırgan kötü amaçlı bir bağlantı oluşturabilir ve internet sitesindeki açığı kullanarak başka bir kullanıcının bu linke bir emailin içinden tıklamasını sağlayabilir" diyor.
Bu bağlantıya tıklayan bir kullanıcı "cookies" olarak bilinen küçük dosyaların saldırganın eline geçmesini sağlar ve saldırgan kullanıcının hesabını çalabilir.
NCC Group siber güvenlik uzmanı Matt Lewis de denetlediği web uygulamalarının çoğunun basit açıkları olduğunu söylüyor.
"Karşılaştığımız en büyük sorun insanların güvenli kodlar yazmayı bilmeden uygulama yaratmaları. Internet tarayıcısından gelen hiçbir şeye güvenmemeliler. Bu normalde her web geliştiricisinin kuralı olmalı. Ancak yine de böyle açıkları hala görüyoruz".
Bir internet sitesi XSS açığından kaynaklanan problemlere sahip olmasa bile kullanıcılarını riske atabilir.
Siber saldırganlar güvenlik açıkları olan bir internet sitesinin verilerine ulaşarak kullanıcıların diğer sitelerdeki hesaplarını çalabilirler.
Hatta saldırganlar yönetici hesaplarından birini çalarlarsa sitenin temel verilerine ulaşabilirler.
Munro'ya bulduğum açığı gösterdiğimde kodların üzerinden internet sitelerini kurcalamanın ne kadar yasal olduğu sorusunu gündeme getiriyor.
"Çoğu Bilgisayarı Kötüye Kullanım yasaları niyete bağlı, ancak sistem sahibi değilsen risk altındasın."
Bu beni endişelendirdi çünkü bulduğum açıklardan biri ünlü bir kıyafet markası olan Debenhams'dı.
Munro açıkları kamuya ifşa etmenin tehlikeli olduğunu söylüyor.
Bazı şirketler uyarıları umursamıyor, bazıları önce umursamıyor ancak daha sonra açığı bulan kişiyi hacker olmakla suçluyor.
Hata avı programları yürüten internet siteleri bu suçlamaların önlenmesini sağlıyorlar.
Casey de iyi niyetli hackerların güvenlik açığı bulma hobileri sayesinde internetin daha güvenli olacağını söylüyor. "Bu yüzden bu buldukları açıkları bildirdikleri için cezalandırılmaktansa ödüllendirilmeliler".
"Onlar benim arkadaşlarım. Ben bir hacker topluluğunda büyüdüm. Onları hapisten uzak tutmak ve para kazanmalarını sağlamak istiyorum" diyor.
Genellikle oyun oynayan kişiler bu terimi sıklıkla duymaktadır. zellikle evrimii oyunlarda bu terimi daha fazla duyabilirsiniz. Bu terimi ilk defa duyanlar bug ne demek sorusunu sıka sorar. Bug kelimesi İngilizce kkenlidir. Bug terimi "bcek" anlamına gelmektedir.
Bu terimi ilk kez kullanan kişi icatları ile hafızamıza kazınan Thomas Edison olmuştur. Edison bir telgraf makinesinde teknik işlev bozukluğunu anlatmak iin bu terimi kullanmıştır. Bug kelimesinin bir diğer adı da yazılım hatasıdır. zellikle yazılımcılar bug kelimesini sıka kullanmaktadır. Yazılım ya da sistem ierisinde oluşan hataları isimlendirmek iin bug terimini kullanmaktadırlar.
Oyunlarda grafik hataları, karakterlerin bir yerde sıkışması, oyunun donması, grntnn pikselleşmesi kısaca oyundaki bir yazılımsal hatadan dolayı bug oluşmaktadır. Bu durumlarda oyun kapatılıp tekrar aılır.
Yukarıda da belirttiğim gibi bug, bcek anlamına gelmektedir. Bilgisayar yazılımının ya da sistem ierisinde oluşan, istem dışı hatalar bug olarak adlandırılmaktadır. Peki neden sistemsel hatalara bug diyorlar? Birlikte bakalım
Yazılımcıların olduka aşina olduğu başka bir terim debugging terimidir. Bu terim bcek temizleme, bcekten arındırma anlamında kullanılır. Bu kelimeyi ilk Edison'un kullandığını belirtmiştik. Fakat Grace Hopper ilk programlanabilen bilgisayarlardan birisi olan Mark II adlı bilgisayarın iine giren bir bceği fark eder ve bu bcek yznden bozulduğunu anlayıp defterine “First actual case of bug being found.” (Bceğin ilk vakası bulunmuştur.) şeklinde not alır.
Grace Hopper'ın sıka anlatması "ilk bcek" ve "bundan sonra bilgisayar hatalarına bug dedik" şeklindeki ifadeleri bug terimini yaygınlaştırır ve btn yazılımcılar sistemsel hataları bu şekilde ifade eder.
Oyun oynadığınız zaman eğer yazılımsal bir problem varsa hemen kendini belli edecektir. Bug birok sistemde farklılık gsteriyor, herkes aynı buga girmiyor. Oyunun yazılımından kaynaklanan hatalarda; Karakter srekli aynı hareketleri tekrarlar, ekran pikselleşir, oyun takılır bunların hepsi birer bug olabilir.
Genellikle evrimii oyunlarda karşımıza ıkar bug hataları. Oyun oynarken sistemde orada olması gereken bir item bulamazsınız, normalde rutin olarak yapılan işlemleri yapamazsınız bunların hepsi birer bug hatasıdır. Oyunda bir bug bulduysanız bunun ekran grntsn alıp yetkili kişilere bildirebilirsiniz. Tam oyunun ortasında buga girdiyseniz maalesef oyunu kapatıp tekrar amanız gerekir.
Heyecanlı bir oyunun ortasında buga girmek oyuncular iin can sıkıcı bir hal alabilir. Bu gibi durumlarda sakin olmanız ve zm odaklı olmanız gerekmektedir. Aniden ortaya ıkan, beklenmeyen hatalar oyun ierisinde ıkılmaz bir hal alır.
Oyunlarda bug şu sorunlara yol aabilir;
Bunun gibi oyun hatalarına denk geldiğiniz zaman yukarıda da belirttiğim gibi bug hatalarını ekran grnts alıp yetkili kişilere bildirebilirsiniz. Yazılım hatalarını zmek biraz zaman alsa da karşılaşılan bugları dzelteceklerdir.
Btn yazılımlarda hata olabilir, ncellikle şunu belirtmeliyim ki bu hatalardan tamamen kurtulmak mmkn değildir. Byk firmalar bu bug hatalarını grdklerini zaman gncelleme yaparak sorunu gidermeye alışırlar ancak sizler de birtakım nlemler alarak bug olaylarını en aza indirebilirsiniz. Peki neler yapmalısınız? Aşağıda bu sorunun cevabını grebilirsiniz.
Bug kavramını anladık! Peki sıka karşımıza ıkan Bug fixes nedir? Bug terimine genel olarak yazılımlarda oluşan hatalar dedik, Bug fixes terimine de ise bu hataları gidermek iin yapılan dzenlemeler diyebiliriz. İlk olarak yazılımda olan hatalar uzmanlar tarafından tesit edilir. Hatalar geliştiriciler tarafından kontrol edildikten sonra bug fixes gncellemesi ile beraber dzenleniyor.
Oyunlarda da bulunan hataların sunucuları gncelleniyor. Bug fixes ile oyunun temel kod dosyaları dzeltiliyor. Android ve iOS işletim sistemi gncellemelerinde Bug fixes ifadesi sıka grlyor. Burada da kişisel verilen korunması iin srekli bug takibi yapılıyor. Herhangi bir sorun grldğ zaman ise srm gncelleniyor. Zira bu hataların dzeltilmemesi ok byk bir soruna neden olabiliyor. Gvenlik aığının ıkmaması iin işletim sistemleri, oyunlar, herhangi bir yazılım hataları mutlaka dzeltilmelidir.
Yukarıda da belirttiğim gibi bu dzenlemelerin, gncellemelerin hepsine bug fixes deniyor.
İki tarih arasındaki farkı hesaplamak istiyorsanız, TARİHFARKI işlevini kullanın. İlk olarak bir hücreye başlangıç tarihi ve başka bir hücreye de bitiş tarihi girin. Ardından verilen gibi bir formül yazın.
Uyarı: Başlangıç_tarihiBitiş_tarihi değerinden sonraysa #SAYI! sonucunu verecektir.
Bu örnekte başlangıç tarihi D9 hücresinde ve bitiş tarihi E9 hücresindedir. Formül F9 hücresindedir. “d”, iki tarih arasındaki tam gün sayısını döndürür.
Bu örnekte başlangıç tarihi D13 hücresinde ve bitiş tarihi E13 hücresindedir. “d”, gün sayısını döndürür. Ancak sondaki /7’ye dikkat edin. Bu, hafta içinde 7 gün olduğundan gün sayısını 7'ye böler. Bu sonucun da bir sayı olarak biçimlendirilmesi gerektiğini unutmayın. CTRL + 1 tuşlarına basın. Ardından Sayı > Ondalık basamaklar: 2'ye tıklayın.
Bu örnekte başlangıç tarihi D5 hücresinde ve bitiş tarihi E5 hücresindedir. Formülde “m”, iki gün arasındaki tam ay sayısını döndürür.
Bu örnekte başlangıç tarihi D2 hücresinde ve bitiş tarihi E2 hücresindedir. “y”, iki gün arasındaki tam yıl sayısını döndürür.
Ayrıca yaşı veya birinin hizmet zamanını da hesaplayabilirsiniz. Sonuç “2 yıl, 4 ay, 5 gün” gibi bir şey olabilir.
Bu örnekte başlangıç tarihi D17 hücresinde ve bitiş tarihi E17 hücresindedir. Formülde “y”, iki gün arasındaki tam yıl sayısını döndürür.
Başka bir hücrede, “ym” parametresiyle TARİHFARKI formülünü kullanın. "ym", son tam yıldan sonraki kalan ayların sayısını verir.
Şimdi kalan gün sayısını bulmanız gerekiyor. Bunu, yukarıda gösterilen, farklı bir formül türü yazarak gerçekleştiririz. Bu formül biten ayın ilk gününü (1/5/) E17 hücresindeki özgün bitiş tarihinden (6/5/) çıkarır. Şöyle yapar: İlk olarak TARİH işlevi 1/5/ tarihini oluşturur. Bu tarihi oluşturmak için E17 hücresindeki tarihi ve E17 hücresindeki ayı kullanır. Ardından, 1 sayısı o ayın ilk gününü temsil eder. TARİH işlevinin sonucu 1/5/'dır. Sonra, bunu E17 hücresindeki özgün bitiş tarihinden (6/5/) çıkarırız. 6/5/ eksi 1/5/ eşittir 5 gün olur.
Uyarı: TARİHFARKI "md" bağımsız değişkeninin kullanılmasını hatalı sonuçlar hesaplayabileceği için önermiyoruz.
Bu örnekteki gibi üç hesaplamayı da tek bir hücreye yerleştirebilirsiniz. Ve işaretleri, tırnak işaretleri ve metin kullanın. Yazması daha uzun bir formüldür ama en azından hepsi bir arada olur. İpucu: Formülünüze satır sonları eklemek için ALT+ENTER tuşlarına basın. Bu, okumayı kolaylaştırır. Ayrıca, formülün tamamını göremiyorsanız CTRL+SHIFT+U tuşlarına basın.
Bu makaledeki tüm örnekleri içeren örnek bir çalışma kitabı indirebilirsiniz. Takip edebilir veya kendi formüllerinizi oluşturabilirsiniz.
Tarih hesaplama örneklerini indirme
Yukarıda gördüğünüz gibi, TARİHFARKI işlevi başlangıç tarihi ile bitiş tarihi arasındaki farkı hesaplar. Ancak, belirli tarihler yazmak yerine, formülün içindeki BUGÜN() işlevini de kullanabilirsiniz. BUGÜN() işlevini kullandığınızda, Excel tarih için bilgisayarınızın geçerli tarihini kullanır. İleriki bir günde dosya yeniden açıldığında bunun değişeceğini unutmayın.
Lütfen bu yazının yazıldığı zaman günün 6 Ekim olduğunu unutmayın.
İki tarih arasındaki iş günü sayısını hesaplamak istediğinizde TAMİŞGÜNÜ.ULUSL işlevini kullanın. Ayrıca hafta sonlarını ve tatil günlerini de hariç tutabilirsiniz.
Başlamadan önce: Tatil tarihlerini hariç tutmak isteyip istemediğinize karar verin. Bunu yaparsanız, ayrı bir alana veya sayfaya tatil tarihlerinin bir listesini yazın. Her tatil tarihini kendi hücresine yerleştirin. Ardından bu hücreleri seçin, Formüller > Ad Tanımlama'yı seçin. Aralığa Tatillerim adını verin ve Tamam'a tıklayın. Ardından, aşağıdaki adımları kullanarak formülü oluşturun.
Bu örnekte başlangıç tarihi D53 hücresinde ve bitiş tarihi E53 hücresindedir.
Yukarıdaki örnekteki gibi bir formül yazın. Formüldeki 1, Cumartesi ve Pazar günlerini hafta sonu günleri olarak belirler ve toplamdan hariç tutar.
Not: Excel 'de TAMİŞGÜNÜ.ULUSL işlevi yoktur. Ancak TAMİŞGÜNÜ işlevi vardır. Yukarıdaki örnek, Excel 'de şu şekilde olur: =TAMİŞGÜNÜ(D53,E53). 1'i belirtmeniz gerekmez çünkü TAMİŞGÜNÜ hafta sonunun Cumartesi ve Pazar olduğunu varsayar.
Cumartesi ve Pazar hafta sonu günleriniz değilse, 1'i IntelliSense listesinden başka bir sayıyla değiştirin. Örneğin, 2 Pazar ve Pazartesi günlerini hafta sonu günleri olarak belirler.
Excel kullanıyorsanız bu adımı atlayın. Excel 'nin TAMİŞGÜNÜ işlevi her zaman hafta sonunun Cumartesi ve Pazar olduğunu varsayar.
Yukarıdaki "Başlamadan önce" bölümünde bir tatil aralığı adı oluşturduysanız, sonuna bu şekilde yazın. Tatiliniz yoksa virgül ve Tatillerim'i dışarıda bırakabilirsiniz. Excel kullanıyorsanız, bunun yerine yukarıdaki örnek şu şekilde olur: =TAMİŞGÜNÜ(D53,E53,Tatillerim).
İpucu: Bir tatil aralığı adına başvurmak istemiyorsanız, bunun yerine DE gibi bir aralık da yazabilirsiniz. Alternatif olarak, formülün içine her tatil yazabilirsiniz. Örneğin, tatilleriniz 1 ve 2 Ocak 'da olsaydı şu şekilde yazardınız: =TAMİŞGÜNÜ.ULUSL(D53,E53,1,{"1/1/","2/1/"}). Excel 'de şöyle görünür: =TAMİŞGÜNÜ(D53,E53,{"1/1/","2/1/"})
Geçen zamanı bir zamanı başka bir zamandan çıkararak hesaplayabilirsiniz. İlk olarak bir hücreye başlangıç zamanı ve başka bir hücreye de bitiş zamanı girin. ÖÖ veya ÖS'den önce saat, dakika ve bir boşluk dahil olmak üzere tam zamanı yazdığınızdan emin olun. Şöyle yapılır:
Bu örnekte başlangıç zamanı D80 hücresinde ve bitiş zamanı E80 hücresindedir. ÖÖ veya ÖS'den önce saati, dakikayı ve bir boşluk yazdığınızdan emin olun.
Her iki tarihi de seçin ve CTRL + 1 (veya Mac'te + 1) tuşlarına basın. Henüz ayarlanmamışsa Özel > s:dd ÖÖ/ÖS’yi seçtiğinizden emin olun.
Başka bir hücrede, başlangıç zamanı hücresini bitiş zamanı hücresinden çıkarın.
CTRL + 1 (veya Mac bilgisayarda + 1) tuşlarına basın. Sonucun ÖÖ ve ÖS'yi hariç tutması için Özel > s:dd'yi seçin.
İki tarih ve saat arasındaki zamanı hesaplamak için birini diğerinden çıkarmanız yeterlidir. Ancak, Excel'in istediğiniz sonucu döndürmesini sağlamak için her hücreye biçimlendirme uygulamanız gerekir.
Bir hücreye tam başlangıç tarihi/saati yazın. Başka bir hücreye de tam bitiş tarihi/saati yazın. Her hücrede bir ay, gün, yıl, saat, dakika ve ÖÖ veya ÖS'den önce bir boşluk olmalıdır.
Her iki hücreyi de seçin ve CTRL + 1 (veya Mac'te + 1) tuşlarına basın. Ardından Tarih > 14/3/12 ÖS’yi seçin. Bu, belirleyeceğiniz tarih değil, sadece biçimin nasıl görüneceğine dair bir örnektir. Excel 'dan önceki sürümlerde bu biçimin 14/3/01 ÖS gibi farklı bir örnek tarihi olabileceğini unutmayın.
Başka bir hücrede, başlangıç tarihini/saatini bitiş tarihinden/saatinden çıkarın. Sonuç büyük olasılıkla sayı ve ondalık gibi görünür. Bunu bir sonraki adımda düzelteceksiniz.
CTRL + 1 (veya Mac bilgisayarda + 1) tuşlarına basın. Özel’i seçin. Tür kutusuna [s]:dd yazın.
TARİHFARKI işlevi
TAMİŞGÜNÜ.ULUSL işlevi
TAMİŞGÜNÜ
Diğer tarih ve saat işlevleri
İki zaman arasındaki farkı hesaplama