Ana içeriğe atla

Kayıtlar

2014 tarihine ait yayınlar gösteriliyor

0-1 Knapsack Solution with Dynamic Programming

I've just written a program to solve Single Knapsack Problem with Dynamic Programming via python. I know my solution is not much pythonic, because of I had a rush a little bit. So, please don't hesitate to contact with me to propose more pythonic way. def giveAsMatrix(f, counter): tmpList = [] f.seek(0) for k in xrange(0, counter): tmpList.append(f.readline().strip().split('\t')) return tmpList Above function returns a str list from a file.

Informatica Feminale 2014

Bremen Üniversitesinde düzenlenen Informatica Feminale 18-29 Ağustos 2014 tarihleri arasında Almanya'nın hepimizin Bremen Mızıkacıları ile tanıdığı kuzeydeki şehri Bremen'de düzenlendi. Türk ve Almanlar başta olmak üzere hem öğrenci hem de eğitmen kadrosu çok farklı milletleri ve insanları bir araya getirdi. Bu yılın Türk-Alman bilim yılı olmasından güç alarak Veronika Oechtering, Zeynep Demir ve beraberindeki kocaman bir ekip herşeyi bizim için baştan sona organize ederek bıkmadan, usanmadan, güler yüzle dolu 2 haftayı bize hediye ettiler. En başından sonuna kadar gerçekten tüm organizasyon kusursuzdu.

Pinterest

“Pin what ever you interest” her ne ile ilgileniyorsan onu panona raptiyele şeklinde Türkçeye çevrilebilecek bir sloganla çıkmışlar yola 1 mühendis ve 2 kurucu ile. Azımsanmayacak kadar uzunca bir süre de bu çekirdek kadro ile devam etmişler yollarına. Pinterest her geçen gün hızla büyümeye devam eden oldukça güçlü bir sosyal medya aracı olarak önümüze çıkıyor ve birazcık dünden bu güne hangi teknolojileri kullanmış diye araştırdığımızda özgür yazılımın gücünün farkında ve özgür yazılım aşığı bir firma ile karşılaşıyoruz. Peki Django ile geliştirilmiş olan Pinterest’in dünden bugüne mimarisi nasıl gelişmiş:

Thread Çözümü için Lock kullanımı

Bir thread ancak aşağıdaki durumları sağlıyorsa iyi yapılandırılmıştır diyebiliriz: Her kritik bölge unique bir Lock objesi ile ilişkilendirilmişse, Kritik bölgeye girmek istediğinde objenin lock() metodunu çağırıyorsa Kritik bölgeden çıkarken de unlock() metodunu kullanıyorsa. 

Java ile Thread Pool Kullanımı

Oluşturacağımız uygulama 100 x 100 boyutlu bir matrisin içerisinde arttırma işlemi yapacaktır. Bu işlem için Runnable yada Callable sınıfı kullanılabilir. Runnable objesi olarak tanımladığımızda threadlerimiz sonlandırılana kadar sürekli olarak çalışacak ve kuyruğu sürekli olarak kontrol edip yeni bir görev olup olmadığına bakacaklardır. Thread class'ımız bize execute() adında bir method kullanım imkanı sağlamaktadır; execute(Runnable myR) şeklinde bir kullanım ile kuyruğa yeni Runnable objeler eklememize imkan sağlamaktadır.

Mac OS X üzerine Tomcat 7.0.x Kurulumu

Öncelikle Tomcat 7.0.x'i bilgisayarınıza kurabilmeniz için Java 1.6 ve daha üzeri bir versiyonunun bilgisayarınızda kurulu olduğundan  emin olunuz. Mac OS 10.9.x (Mavericks) için Oracle SE Web Sitesine giderek JDK'yı (en son JDK 8 yayınlanmış durumda) indirip kurmanız gerekiyor. Terminal'inizi açıp java -version yazarsanız, sisteminizde kurulu olan java versiyonunuzu görebilirsiniz.   

Chosen - Ciphertext Attack

Chosen-Ciphertext Attack'ı Türkçeye Seçilmiş Şifreli Metin Saldırısı olarak çevirebiliriz. Bu yöntem ile bir saldırgan seçtiği şifreli metinlerin bilinmeyen bir anahtar altında çözümlerine bakarak anahtarı bulmaya yönelik olarak çalışır. Bu yöntemde saldırganın düşman sisteme bir veya daha fazla ciphertext'i(şifreli metin) vererek plaintextleri(düz metin) elde etme şansı vardır. Bu bilgiler sayesinde saldırganın bilinmeyen şifreyi elde edebilme olasılığı yüksektir. Örnek olarak El Gamal kripto sistemi semantik olarak güvenli bir sistemdir. Seçilmiş düz metin saldırısı (Chosen plaintext attack) ile elde edilemez ancak seçilmiş şifreli metin saldırısı ile kolaylıkla alt edilebilir. Başka bir örnekte SSL protokolünde kullanılan eski RSA kripto sistemi Uyarlanır Seçilmiş Şifreli Metin Saldırısı (Adaptive Chosen Ciphertext Attack) ile SSL Session key'i ortaya çıkarıyordu.  Seçilmiş Şifreli Metin Saldırı Yöntemini nasıl kullanabileceğimize gelince Alice ve Bob'un mesajlaşt

Eclipse ile OpenCV Uygulaması

Öncelikle eğer hali hazırda kurulu bir Eclipse'iniz varsa üzerine C/C++ CDT Plugin'i kurmanız gerekiyor bunun için. Help -> Install New Software dedikten sonra açılan sayfada Work with başlıklı Text Box'ınıza "http://download.eclipse.org/releases/kepler" adresini yapıştırıp Add butonuna basıyoruz.  Programming Language başlığının altındaki C/C++ Development Tools'u seçtikten sonra Finish deyip kurulumun yapılmasını sağlıyoruz. Eclipse'iniz kendini yeniden başlatacaktır.

Mac OS X Üzerine OpenCV Kurulumu

Kuruluma başlamadan önce XCode'u App Store'dan ücretsiz olarak indirip kurmanız gerekmektedir. Xcode kurulumunun ardından opencv kurulumuna başlayabilirsiniz. 1. MacPort kurulumu  ( buradan indirip kurabilirsiniz) İndirdiğiniz dosyayı direk olarak kurabilirsiniz. Kurulum yapıldıktan sonra aşağıdaki komut ile MacPort'unuzun kurulup kurulmadığını ve versiyonunu kontrol edebilirsiniz. port