Podcast Tavsiyesi - II

05:13

Yalansavar

www.yalansavar.org


Skeptik, Şüpheci bir grup insanın safsatalarla ilgili yaptığı bir podcast yayını. Özellikle bizim gibi toplumlarda zihinsel kirlenmeyi engellemesi açısından herkese tavsiye ederim.

Muhabbet Teorisi

http://www.muhabbetteorisi.com/
www.muhabbetteorisi.com/feed/podcast/


Yayın hayatına 2011 Kasım ayında başlamış Açık Bilim oluşumunun sonlanmasının ardından Muhabbet Teorisi ismiyle yeniden ortaya çıktığı bir podcast yayını. Bilimle ilgilenenlere tavsiye edilir.

Havadan sudan

http://www.35milimetre.com/havadan-sudan/


Hande Turan ve Mehmet Turan çifti tarafından gündeme/hayata dair samimi izlenimlerini paylaştıkları bir podcast kanalı. Herkese tavsiye ederim. Kendilerine tavsiyem ise programlarına biraz daha konuk çıkarmaları. Böylece yayın içerikleri biraz daha zenginlik kazanmış olur.

Ottoman History Podcast

http://www.ottomanhistorypodcast.com/



Osmanlı tarihiyle ilgili eşi benzeri görülmemiş bir podcast. İngilizce ve Türkçe yayınlar bulmak mümkün. Kesinlikle tarihe karşı algılarınızın biraz da olsa düzeleceğini düşündüğüm bir podcast yayını. Tarih konusunda tarafsız-doğru yayın bulmak biz de her yerde olduğundan daha da zor olması bu podcast yayınını daha kıymetli hale getiriyor. Sadece Türkçe yayınların olduğu podcastler ise aşağıdaki linkte:

http://www.ottomanhistorypodcast.com/p/turkce.html


Girişimci Muhabbeti

http://www.girisimcimuhabbeti.com/


Samican Tandoğdu ve Baris Kocdur tarafindan sunulan bir podcast yayını. Temelde internet girişimleriyle (start up) ilgili konuşmaların yapıldığı bir yayın. Girişimci ruhlu insanlar ve start up dünyası hakkında fikir sahibi olmak isteyenlere tavsiye olunur.

FHE KÖLN Radyosu

http://www1.wdr.de/radio/podcasts/fhe/koeln_radyosu120.podcast


Almanya'dan Türkiye'nin nasıl göründüğü hakkında fikir sahibi olmak isteyenlere ve dinleyicilerin konuk olduğu pazar programı ile gurbetçilerimizin fikir ve zihin dünyasına giriş yapabilirsiniz.


Podcast Tavsiyesi

06:59


İstanbul gibi yaşam kalitesinin düşük olduğu bir şehirde (yöneticilere, yaşayan O çoğunluk kitleye buradan teşekkürler) ulaşım süresince kendimizi soyutlayabilmek (akıl ve ruh sağlığı açısından biraz da zorunlu) zamanızı iyi değerlendirmek açısından önem arzetmektedir. Bu  konuda sosyal medya hesaplarından arta kalan zamanlarda dinleyecebileceğiniz türkçe podcast tavsiyelerinde bulanacağım. Hem kendimizi geliştirebileceğimiz hem de hoş vakit geçirebileceğimiz podcastler aşağıda listelenmiştir.
  • http://www.acikbilim.com/

    Popüler bilim konularında türkçe podcast hazırlamaktadır. Popüler bilimle ilgilenenlerin tavsiye edilir.
  • http://devpod.org/

    Daha çok yazılım dünyası ile ilgili yayınların olduğu bir podcast. Meslek olarak bu alanda çalışıyorsanız takip etmenizi tavsiye derim.
  • http://www.galipdursun.com/gerisihikaye/

    Anadolu korku hikayeleri fikriyle başlayıp bir ayağı anadolu diğer ayağı tüm dünya olan bir podcast olan Gerisi Hikaye, ilk başlarda dinleyecek podcast olmadığından dinlediğim ama sıkı bir takipcisi olduğum korku hikayeleri konusunda başarılı ve tek türkçe podcast. Umarım ömrü  uzun olur. Bu topraklarda iyi şeylerin ömrü hep kısa olmuştur. Umarım bu konuda bizi yanıltırlar.
  • http://bilimkazani.org/

    Bilim kazanı, ismiyle müsemma bilimsel konulara getirdikleri farklı anlatım tarzları ile eğlenceli bir podcast. Genç bilim insanlarının Amerikadan ülkemize seslenmeleri de ayrı bir güzellik. Son zamanlarda podcast sıklığı 0 düzeyine yaklaştı. Umarım düzeltirler.
  • http://bahrikaracay.com/

    Değerli bir bilim adamı Bahri Karaçay'ın Amerikadan yaptığı podcast'ler bilimle ilgilenenler için faydalı olacaktır.
  • http://acikradyo.com.tr/

    Bir çok konuda faklı yayınlar bulabaliceğiniz bir oluşum. Yayınları bitmiş podcast arşivlerine de ulaşabilirsiniz. Mutlaka ilginizi çeken konular bulabilirsiniz.
  • http://kayitbasladi.com/

    Tam bir kafa boşaltma ve geyik ortamı. Şiddetle tavsiye edilir.
  • http://www.avustralyadakideliler.com/

    Yurt dışına çıkmak/çalışmak isteyenlerin Avustralya merkezli bir grup insanın deneyimlerini dinleyebileceğiniz bir podcast. Kayıtlarını biraz daha iyi cihazlarla yaparlarsa daha da dinlenilese olacak.
  • http://adaptasyon.tumblr.com/

    Adaptasyon, yeni teknoloji, yeni ekonomik dengelerin toplumdaki etkilerini Dünya ve Türkiye açısından değerlendirme çalışan bir podcast yayını.
  • https://teknoseyir.com/

    Bu işi gerçekten para merkezli değil iyi şeyler yapalım gayesiyle yapıldığına inandığım bir oluşum olan Teknoseyir ekibinin podcasti. Teknoloji konusunda meraklı iseniz dinlemenizi tavsiye ederim. Teknoseyir vasıtası ile tanıştığım Otoseyir tayfasından Can Akbulut & Emre Çelikkol ikilisini ise daha çok görmek dileğiyle.

Linux'te execl ile dosya çalıştırma


execl fonksiyonunu çağırdığımız anda parametre olarak verdiğimiz çalıştırılabilir dosya execute edilir ve program bu yeni process'e dönüşür. 


Aşağıda programda process fork edilip child process'i /bin/ls process'ine dönüştürülmektedir.


Çıktılardan istenilen sonuçların elde edildiği görülmektedir.



Linux'te child process oluşturma


Linux'te child process oluşturmak için ilk aşama fork fonksiyonunun çağrılmasıdır. 


 fork çağrıldığı anda processin bir kopyasını oluşturur. Genelde fork exec'le beraber kullanılarak ikinci bir process oluşturmak için kullanılır. Linux sistemlerde process oluşturmanın yolu fork ve ardından exec fonksiyonunu çağırmaktır. fork fonksiyonunun geri dönüş değeri 0'a eşitse child process anlamına gelmektedir. child process'in  bir process id'si bulunmaktadır ve bu process id'si fork fonksiyonunun geri dönüş değeri olan değer değildir.  Bu ikisi karıştırılmamalıdır.



Yukarıdaki basit kodun çıktısı aşağıdaki gibidir. Görüleceği üzere child process'in parent id'si fork işlemi yapılan processin id'si fork işlemi yapılan process'in id'si de bash programının process id'sine eşit olduğu ps -aux ile net bir şekilde incelenebilir.


atexit Fonksiyonu

06:13

Bir program exit yaparken programdan çıkmadan önce çağrılmasını istediğimiz fonksiyonlar varsa bunlar için atexit fonksiyonunu kullanmamız gerekir. Bu fonksiyon parametre olarak aşağıda görüldüğü gibi geri dönüşü void parametre almayan bir fonksiyon adresini istemektedir. Bu fonksiyon istenildiği gibi çağrıldıktan sonra exit yapılırken devreye girer ve belirtilen fonksiyonlar çağrılarak çalıştırılır ve program sonlanır.



Yukarıda görüldüğü gibi foo ve bar foksiyonları doğrudan çağrılmamasına rağmen çalışmış ve program sonlanmıştır. Çalışma sırası stack veri yapısına uygun sırada olmaktadır.

printf fonksiyonunun türevleri [ printf, sprintf, snprintf, fprintf ]

23:17

Program çıktılarını ekrana, dosyaya vb. yerlere yazmak için kullanılan printf, sprintf, snprintf, fprintf fonksiyonlarını kısaca inceleyelim:

printf:


printf formatlı olarak ekrana yazmak için kullanılan bir fonksiyondur. Ortalama herkesin bildiği bir fonksiyondur.

int printf(const char *format, ...);

sprintf:

sprintf ise formatlı olarak bir veri yapısına yazan fonksiyondur.

int sprintf(char *str, const char *format, ...);




snprintf:

snprintf ise sprintf ile benzer biçimde çalışsa da farkı 2. parametre olarak aldığı değer kadar veri yapısına yazmasıdır.

int snprintf(char *str, size_t size, const char *format, ...);




fprintf:


fprintf ise formatlı olarak dosyaya yazan bir fonksiyondur.

int fprintf(FILE *stream, const char *format, ...);




Linux'te C için statik kütüphane oluşturma ve kullanma


Kütüphane genel olarak bir proje grubunun dış dünyada (diğer yazılım proje gruplarının vb.) kullanılması amacıyla oluşturdukları dosyalar için kullanılan kavramdır. Bu kütüphaneler içeriğinde hangi fonksiyonları kullanabileceğimizi belirten yani dış dünyaya sundukları interface' leri bildiren bir header dosyası ve bu interface' lerin nasıl kullanılacağını anlatan bir dokümantasyon ile beraber verilir. Statik ve dinamik olarak iki farklı kütüphane biçimi bulunmaktadır. Statik kütüphane kullanmanın avantajı programınızı tek bir çalıştırılabilir dosya şeklinde dağıtmanızı sağlamasıdır.Kütüphanenin tamamı çalıştırılabilir dosyanın içine gömülmektedir.(stand-alone executable) Diğer taraftan kütüphanenin tamamının programa eklenmesi hafıza israfına yol açmaktadır. Ayrıca statik kütüphanelerin güncellenmesi de pek kolay değildir. Bunun için hem kütüphanenin hem de bunu kullanan programın tekrardan derlenmesi gerekmektedir.

1.Adım:

ar rc <libname.a> <obj1.o> <obj2.o> ...


ar arşiv oluşturma - düzenleme için kullanılan bir komuttur.

2. Adım:

ranlib <libname.a> ile oluşturduğumuz kütüphanenin indekslememizi sağlar. Peki bu ne işe yarar?

kütüphane içinde index oluşturarak erişim hızını arttırma amaçlı kullanılmaktadır.




3. Adım: Kullanma


  •  1. derleme işleminde libmath.h dosyasını bulamadığını söylüyor ki bu konuda haklı standart include dosyalarına baktığı yerlerde bulunmamaktadır. Bu nedenle bakması gereken yeri -I parametresi ile söylememiz gerekmektedir.
  • 2. ve 3. derleme I ile verdik fakat -L ile kütüphaneleri link ederken standart baktığı yerler dışında -L ile verdiğimiz yol ifadesinde belirtilen yere de bakmasını söyledik fakat derlemede gene link hatasıyla karşılaştık. Çünkü kullandığımız kütüphaneyi link etmesi gerektiğini söylemedik. Bunun için -l parametresi ile libmath kütüphanesini de link ederken kullanmasını söylememiz gerekmektedir. -l' ile parametre verirken libmath başındaki lib kelimesini yazmadığımız dikkatinizden kaçmasın. 
  • 4. derlemede sonunda başarılı bir şekilde derleme ve çalıştırma gerçekleştirilmiştir.