wait.h

Birden fazla process ile çalışan kod yazarken bazen wait() / waitpid() sistem çağrılarını kullanmak gerekebilir, bu sistem çağrıları child process yaratan parent process’lerin child’ların bitmelerini beklemek için kullanılır. Örneğin bir child process bir dosyaya yazma yapıyorsa ve parent process daha sonra bu dosyadan okuma yapacaksa önce child’ın tamamen sonlanmasını beklemesi gerekir çünkü child henüz daha dosyaya yazmayı bitirmemişken parent’ın bu dosyadan okuması hatalı sonuçlara yol açabilir.

Okumaya devam et

Half-Life 3 Hakkında Bazı Tahminler

Okuduğum bazı haberlerde Valve’in Half-Life 3’ü kendi oyun konsolunun (Steam Machine) tanıtımını yapabilmek için SteamOS ile aynı anda ilk önce SteamOS’a özel olarak çıkartması, daha sonra bunu takip eden birkaç ay sonra ise Mac ve Windows platformlarına getirmesi olasılığına değiniliyor.

Okumaya devam et

terminator-linux41

Linux 4 Sürümü İnsanlığın Sonunu Getirir mi?

Linus Torvalds geride bıraktığımız ay Linux 4.0 sürümünü duyurdu. Şu an kernel.org sitesine bakıldığında 22 Mart 2015 tarihinde 4.0-rc5 sürümünün kernel arşivlerine girdiğini de görüyoruz.

“Peki başlık ne alaka?” derseniz, konuyla alakalı olarak aşağıdaki resim dolaşıyor internette:

terminator-linux41

İzlemeyen var mıdır bilmiyorum ama T-800, Terminator film serisinde Arnold Schwarzenegger’ın canlandırdığı katil robotun modeli. Bu ekran görüntüsü hangi Terminator filminden alınmış bilmiyorum ancak görünüşe göre gelecekte (hatta Torvalds’ın 4.0’ı duyurmasıyla korkarım zannettiğimizden daha da yakın bir gelecekte) insan-makine savaşlarında makinelerin işletim sistemi olarak Linux 4.1.15 çekirdeği çalışıyor olacak 🙂

IMG_20150308_185200

11. BİLMÖK Hakkında

11. Bilgisayar Mühendisliği Öğrencileri Kongresi BİLMÖK, bu yıl 6-7-8 Mart tarihlerinde Ankara Üniversitesi’nde gerçekleştirildi. 3 gün boyunca Türkiye’nin çeşitli üniversitelerinden gelen belki de 1.000’i aşkın (salon genelde tıklım tıklım doluydu, 3 gün boyunca farklı grupların gelip gittiğini de hesap edersek) öğrenciyi ağırlayan bu yılki BİLMÖK hakkında aklımda kalan noktaları aşağıda paylaşmaya çalışayım.
Okumaya devam et

Chrome vs Internet Explorer

Yok hiç başlığa bakıp bir başka web tarayıcıları performans karşılaştırması okuyacağınızı sanmayın, değinmek istediğim konu başka. Bundan 10 yıl önce Firefox web tarayıcısı çıktığı sıralarda mevcut web sayfalarının belki de yüzde 99’u Internet Explorer ile görüntülenebilecek, açılabilecek, çalışabilecek şekilde kodlanıyordu ve senelerdir yerel ve uluslar arası bir çok web sayfası bu alışkanlıklarını devam ettirdiği için sinir olup durduk.

Sayfanız Firefox ile Chrome gibi tarayıcılarda çalışmıyor!

Şimdi yıl oldu 2014, hatta 2015 neredeyse. İşte geldiğimiz durum:

inbox

Webde araştırdığım kadarıyla benim gibi merak eden insanlar araştırmışlar, bazı ayarları değiştirmişler, biraz hokus pokus yapmışlar ve aslında animasyonlar hariç Inbox’ın aslında gayet Firefox ile de açılabildiğini ispatlamışlar. Sorun artık Google’ın henüz diğer tarayıcıların desteklemediği özellikler kullanmasından mıdır, kendi web tarayıcısının reklamını yapmak istemesinden midir bilmem. Yorum sizin.

apt-get Komutunun Güzellikleri – 2

Birkaç ay önce aynı adı paylaşan bir başka yazıda yazdıklarıma benzer şekilde bugün yine apt-get ile yapılabilecek bir başka numara öğrendim, geç öğrenmişsem affola 🙂 Problemimiz şu olsun: sistemde var olan bir paketi kaldırırken aynı zamanda başka bir paketin de yüklenmesini sağlamak. Normal şartlar altında sistemden bir paketi kaldırırken remove/purge parametresini, sisteme yeni bir paketi kurarken de install paremetresini kullanırız:

# apt-get install libreoffice-kde
# apt-get remove libreoffice-gtk

Yukarıda örnek verdiğim iki komutu aslında bir arada kullanmak mümkünmüş:

# apt-get install libreoffice-kde libreoffice-gtk-

Veya;

# apt-get remove libreoffice-gtk libreoffice-kde+

Aslında yukarıdaki her iki komutun da yarattığı sonuç aynı fakat yaptıkları işler farklı: ilk komut libreoffice-kde paketini kurarken sonuna ‘-‘ işareti koyduğumuz libreoffice-gtk paketini sistemden kaldırıyor, ikinci komut ise libreoffice-gtk paketini sistemden kaldırırken sonuna ‘+’ eklediğimiz libreoffice-kde paketini sisteme kuruyor.

Ubuntu Kurulumundan Sonra Ev Dizinini Şifrelemek

Ubuntu işletim sistemini kurarken kullanıcıların karşılaştığı ekranlardan birisinde kullanıcının ev dizininin şifrelenmesini isteyip istemediği sorulur. Bu işlem, küçük bir miktar performans kaybı karşılığında kullanıcınızın ev dizinini kullanıcı parolası girilene kadar okunamaz biçimde şifrelenmesini ve kullanıcının oturumu açık olduğu müddetçe şifrelenen dosyaların içeriğine düzgünce erişilebilmesini sağlar. Örneğin kullandığınız bilgisayarınızın çalınması durumunda bilgisayarınızı çalan kişi(ler) sizin kullanıcı parolanızı bilemeyecekleri için size ait dosyaların içeriklerine asla erişemeyecektir.

Okumaya devam et

apt-get Komutunun Güzellikleri

Debian tabanlı dağıtımlarda paket yönetim işleri için kullanılan apt-get’in birkaç farklı parametre ile çalıştırıldığını bilirsiniz. Bunların en sık kullanılanları olan install ile yeni paket kurulumu, remove ile kurulu paketlerin kaldırılması, upgrade ile kurulu paketlerin güncellenmesi gerçekleştiriliyor.

Aynı anda hem sistemde var olan paketlerin güncellenmesi, hem de yeni paketlerin kurulumu için ayrı ayrı önce apt-get upgrade, sonra apt-get install çalıştırmak yerine tek seferde “apt-get upgrade <yeni paket adı>” şeklinde bir komut çalıştırılabileceğini de 8 yıllık apt-get geçmişimde ilk defa bugün farkettim 🙂

                 (__) 
                 (oo) 
           /------\/ 
          / |    ||   
         *  /\---/\ 
            ~~   ~~   
..."Have you mooed today?"...

Logitech Cordless Rumblepad 2 Düzgün Çalışmamaya Başlarsa…

lcr2Aşağı yukarı 4 yıldır bilgisayarda oyun oynamak için Logitech Cordless Rumblepad 2 kullanıyorum. Bu süre boyunca hiç bir sıkıntıyla karşılaşmadığım bu cihazın sol analog kolu son 2 aydır düzgün çalışmamaya, bilgisayara hatalı sayısal değerler döndürmeye başlamıştı. Yaşadığım problemi şöyle tarif edeyim: cihaz üzerindeki her analog kol, minimum -32767 ile maksimum +32767 arasında sayısal değer üretiyor. Benim yaşadığım problemde bu sayı aralığı 0-32767 arasında sabitlenip kalmıştı, yani oynadığınız bir oyunda kolu ne kadar ileri iterseniz itin karakterinizin ilerlemediği, ama geri geri yürürken hiç bir problem yaşamadığınızı düşünebilirsiniz.

Sayısız defa yaptığım kalibrasyonlar da bir işe yaramıyordu. Sonunda internette yaptığım bir araştırmayla bu cihaza ait sanırım pek bilinmeyen ve bu kalibrasyon problemini çözen bir yöntemle karşılaştım:

  1. Cihazın pillerinden bir tanesi çıkartılır,
  2. Cihazın sağ tarafındaki tetik tuşlarının ikisine de (üzerlerinde 6 ve 8 yazan) basılı tutulur (bu noktada diğer hiç bir tuşun basılı olmaması ve her iki analog kolun ortada durması önemli),
  3. Çıkartılan pil geri takılır.

Bu yöntem uygulandığı zaman cihazın analog kolları orjinal fabrika çıkış kalibrasyonlarına geri dönüyor ve ilk günkü gibi sıkıntısız bir şekilde oyunlar oynanmaya devam ediliyor 🙂

Saklı Dosyaların Geçmişine Dair…

Unix ve Unix benzeri işletim sistemlerinde adı nokta işaretiyle (.) başlayan dosya ve dizinler saklı olarak kabul görüyor. Yani örneğin Masaüstü, Belgeler gibi dizinler ile rapor.odt, tatil_fotoğrafı.jpg gibi dosyalar normal dosya ve dizin olarak kabul edilirken .config gibi dizin ve .bashrc gibi dosyalar adları nokta karakteri ile başladıkları için saklı olarak sayılıyorlar. Saklı dosya ve dizinler herhangi bir parametre olmadan ls komutu ile görüntülenemezken ls -a ile görüntülenebiliyorlar.

1-2 gün önce okuduğum bir yazıda bu dosyaların niçin saklı dosya sayıldıklarını açıklayan ilginç bir açıklama anlatılıyordu. Okumaya devam et