Bilgisayar alanından hareketle yaşamla ilgili her şeyi paylaşmaya çalışan arkadaşların oluşturduğu kollektif bir günlüktür.
A* için yeni bağlantılar
Daha önce A* Java gerçekleştirimiyle ilgili bir bağlantı paylaşmıştım. Bugün ise A* yol bulma temellerini ve kodta nasıl kullanıldığını gösteren iki bağlantı paylaşıyorum. Ayrıca bu bağlantıların olduğu sitede, konuyla ilgili (A* ile ilgili) başka yazılar da var.
Sürüm kontrol sistemlerinin tarihçesi
Sürüm kontrolünün tarihini anlatan yazıda bulduğum aşağıdaki resim, sürüm kontrol sistemlerinin gelişimini özetliyor.
Veritabanı Tasarımı için 10 yararlı yazı
Karşılaştığım bir yazıda veritabanı tasarımı konusunda yararlı olabilecek 10 adet yazı bağlantısı paylaşılmış. İlgililer için ben de paylaşayım dedim. İngilizce olduklarını belirteyim.
- Ten Common Database Design Mistakes
- Define relationships-entities model (tables, attributes, and relationships)
- Database Design and Modeling Fundamentals
- Create tables and relationships with SQL
- Database Normalization and Table structures
- How to use PHP and SQL to create tables and relationships
- Table and Database Operations in PHP
- Practical database design, normalization, history, and event logging
- Relational Database Design
- A correct approach to define relationships between tables
Yukarıda verdiğim yazıdaki bağlantılara ek olarak aşağıdaki bağlantılar yorumlarda önerilmiş:
- An Introduction to Database Normalization
- Database Modelling in UML
- Naming Conventions in Database Design
Ve son olarak benim daha önce karşılaştığım aşağıdaki yazı işe yarayabilir:
ProjectEuler.net
Yazılımseverlere; az biraz farklı kod yazayım dediğiniz zamanlar oluyorsa, projecteuler.net sitesini tavsiye ediyorum.
Çeşitlik zorluk derecesinde 300 den fazla soru içeren sitede matematik ile yazılımı birleştirip çözümler üreterek keyifli vakit geçirebilirsiniz.
Çeşitlik zorluk derecesinde 300 den fazla soru içeren sitede matematik ile yazılımı birleştirip çözümler üreterek keyifli vakit geçirebilirsiniz.
Birinci, İkinci ve Üçüncü Dünya
Çokça duyduğumuz "Üçüncü dünya ülkeleri" sözü nerden çıkmış? Üçüncü dünya ülkesi denildiğinde, dünyadaki fakir ülkelerden söz ediliyormuş gibi bir algı oluşuyor; o halde birinci ve ikinci dünya ülkeleri de kim oluyor?
Aslında soğuk savaş döneminden kalma bu ayrım ülkelerin politik duruşları sonucu oluşmuş.
Birinci Dünya: Amerika eksenli Demokratik-Sanayileşmiş ülkeler
İkinci Dünya: Komünist-Sosyalist doğu bloğu ülkeleri
Üçüncü Dünya: Bu iki kutupta yer almayan ülkeler
Bunların yanında birde 1970 lerde ortaya alıtmış olan Dördüncü dünya ülkeleri var ki bunlar da yeteri kadar tanınmayan yerli halklar veya kültürel topluluklar olarak tanımlanıyor.
Kaynak: http://www.nationsonline.org/oneworld/third_world_countries.htm
Aslında soğuk savaş döneminden kalma bu ayrım ülkelerin politik duruşları sonucu oluşmuş.
Birinci Dünya: Amerika eksenli Demokratik-Sanayileşmiş ülkeler
İkinci Dünya: Komünist-Sosyalist doğu bloğu ülkeleri
Üçüncü Dünya: Bu iki kutupta yer almayan ülkeler
Bunların yanında birde 1970 lerde ortaya alıtmış olan Dördüncü dünya ülkeleri var ki bunlar da yeteri kadar tanınmayan yerli halklar veya kültürel topluluklar olarak tanımlanıyor.
Kaynak: http://www.nationsonline.org/oneworld/third_world_countries.htm
Bilimsel Araştırma için Python - 10 Neden
Python'un önemli bir özelliği bir çok alanda rahatlıkla kullanılıyor olmasıdır. Python; GNU/Linux işletim sistemlerinde sistem ve betik kodlamada kullanıldığı gibi Matlab'ın yerine bilimsel araştırmalarda, deneylerde de kullanılabilen geniş bir uygulama alanı yelpazesine sahiptir.
Yeni gördüğüm bir yazıda, Python deneyimini bilimsel araştırmada 10 neden şeklinde yazıldığını görünce, bir Python "avukatı" olarak (belirteyim ki Oracle'ın Sun'ı satın alması, Google'a karşı Oracle hamleleri beni Java yerine alternatif olarak Python'u daha sık düşünmeye itiyor) yazıyı paylaşmam farz oldu. Yazıda aşağıda özetle verdiğim başlıkların ayrıntısına ulaşabilirsiniz.
1. Özgürlük: Python özgür yazılımdır. Açık kaynak koda sahiptir (özgür yazılım olmanın gereği). Windows, GNU/Linux, Mac OS vb. işletim sistemlerinde rahatça çalıştırılabilir.
2. Okunabilirlik: Python kodları yapısı gereği oldukça rahat okunabilen kodlardır. Söz dizimi tasarlanırken okunabilirlik ana amaçlardan biri olarak düşünülmüştür.
3. Belgelendirme sistemi: epydoc gibi araçlar ve doc string'ler sayesinde kodunuzu yazarken bir taraftan o kodun belgelendirmesi de yapılabilir.
4. Yüksek seviye - düşük seviye: Python'da yüksek seviyeli programlama ile düşük seviye programlama arasında bir denge kurulabilir. Farklı makine kodu üreten araçların yardımıyla neredeyse C kodu kadar hızlı çalışan Python kodu yazmak mümkün.
5. Standart kütüphane: Düzinelerce modül içeren oldukça kapsamlı standart kütüphanesi size gereken neredeyse çoğu şeyi sunmaktadır. Python'un bu konudaki felsefesi "piller dahildir" şeklindedir.
6. Bilimsel çalışma için üçüncü parti açık kaynak kütüphaneler: NumPy, SciPy (birlikte Matlab'ın çoğu işlevselliğini gerçekleştirirler), iPython (geliştirilmiş Python kabuğu - hata ayıklama, kod kesitlendirme vb. şeyleri sağlıyor), Cython - kütüphanelerle ilgili ayrıntılı bilgi için bağlantıyı ziyaret edebilirsiniz.
7. Veri yapıları: Python listeleri, tupleları, kümeleri, sözlükleri, karakter dizilerini, iş parçacığı güvenli kuyrukları, ve bir çok veri tipini destekliyor. NumPy ve SciPy'nin eklenmesiyle n-boyutlu dizi nesnesi (Matlab'ın matrislerinden daha fazla işlevselliğe sahip) desteği de kazandırılabiliyor.
8. Modül sistemi: Python kullandığı modüler programlama sayesinde kodun hiyerarşik bir yapıya kavuşmasını sağlıyor ve kodun tekrar kullanımı da artmış oluyor.
9. Proje ölçeklenebilirliği: Python hem küçük betikler hem de oldukça büyük projeler üretilmesine olanak sağlıyor. Pythonla 20 satırlık bir kod yazabileceğiniz gibi bir çok modülden oluşan ve bir çok modülü kullanan bir büyük proje de yazabilirsiniz.
10. Farklı paradigmaları destekleme: Python fonksiyonel, prosedürel, ve nesne yönelimli programlama paradigmaları arasında rahatlıkla geçiş yapmanızı sağlar.
Kaynak: http://www.stat.washington.edu/~hoytak/blog/whypython.html
Python öğrenmeye başlamak için: http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/
Yeni gördüğüm bir yazıda, Python deneyimini bilimsel araştırmada 10 neden şeklinde yazıldığını görünce, bir Python "avukatı" olarak (belirteyim ki Oracle'ın Sun'ı satın alması, Google'a karşı Oracle hamleleri beni Java yerine alternatif olarak Python'u daha sık düşünmeye itiyor) yazıyı paylaşmam farz oldu. Yazıda aşağıda özetle verdiğim başlıkların ayrıntısına ulaşabilirsiniz.
1. Özgürlük: Python özgür yazılımdır. Açık kaynak koda sahiptir (özgür yazılım olmanın gereği). Windows, GNU/Linux, Mac OS vb. işletim sistemlerinde rahatça çalıştırılabilir.
2. Okunabilirlik: Python kodları yapısı gereği oldukça rahat okunabilen kodlardır. Söz dizimi tasarlanırken okunabilirlik ana amaçlardan biri olarak düşünülmüştür.
3. Belgelendirme sistemi: epydoc gibi araçlar ve doc string'ler sayesinde kodunuzu yazarken bir taraftan o kodun belgelendirmesi de yapılabilir.
4. Yüksek seviye - düşük seviye: Python'da yüksek seviyeli programlama ile düşük seviye programlama arasında bir denge kurulabilir. Farklı makine kodu üreten araçların yardımıyla neredeyse C kodu kadar hızlı çalışan Python kodu yazmak mümkün.
5. Standart kütüphane: Düzinelerce modül içeren oldukça kapsamlı standart kütüphanesi size gereken neredeyse çoğu şeyi sunmaktadır. Python'un bu konudaki felsefesi "piller dahildir" şeklindedir.
6. Bilimsel çalışma için üçüncü parti açık kaynak kütüphaneler: NumPy, SciPy (birlikte Matlab'ın çoğu işlevselliğini gerçekleştirirler), iPython (geliştirilmiş Python kabuğu - hata ayıklama, kod kesitlendirme vb. şeyleri sağlıyor), Cython - kütüphanelerle ilgili ayrıntılı bilgi için bağlantıyı ziyaret edebilirsiniz.
7. Veri yapıları: Python listeleri, tupleları, kümeleri, sözlükleri, karakter dizilerini, iş parçacığı güvenli kuyrukları, ve bir çok veri tipini destekliyor. NumPy ve SciPy'nin eklenmesiyle n-boyutlu dizi nesnesi (Matlab'ın matrislerinden daha fazla işlevselliğe sahip) desteği de kazandırılabiliyor.
8. Modül sistemi: Python kullandığı modüler programlama sayesinde kodun hiyerarşik bir yapıya kavuşmasını sağlıyor ve kodun tekrar kullanımı da artmış oluyor.
9. Proje ölçeklenebilirliği: Python hem küçük betikler hem de oldukça büyük projeler üretilmesine olanak sağlıyor. Pythonla 20 satırlık bir kod yazabileceğiniz gibi bir çok modülden oluşan ve bir çok modülü kullanan bir büyük proje de yazabilirsiniz.
10. Farklı paradigmaları destekleme: Python fonksiyonel, prosedürel, ve nesne yönelimli programlama paradigmaları arasında rahatlıkla geçiş yapmanızı sağlar.
Kaynak: http://www.stat.washington.edu/~hoytak/blog/whypython.html
Python öğrenmeye başlamak için: http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/
Kaydol:
Kayıtlar (Atom)