Lé Blog
Ben de yazılımcıyım
29 Mayıs 2012 Salı
django framework nedir? farki nedir?
Django; hızlı, temiz ve pragmatik tasarımı teşvik eden , üst seviye bir Python Web Framework'üdür. (Her frameworkun olduğu gibi esnekliğe performansa önem verdiğini iddia etmektedir, gfakat bunu denemeden göremeeceksiniz malesef.) Django , Kendinizi tekrar etmeme prensiplerine (DRY - Dont repeat yourself) bağlı olarak, işlemleri olabildiğince otomatize etmeye odaklandır.
RAID nedir?
Raid (redundant array of independent disks) : Türkçesi ; Bağımsız hard disklerin yedekli halde sunulduğu dizi manasına gelir. Depolama ile ilgili konularda veri kaybının önüne geçilmesi için kullanılan yöntemin adıdır. Bu standart ile birlikte verinin(az veya çok) fazladan bir kopyasının tutulması ile birlikte herhangi bir problem durumunda veri kaybının önüne geçmeyi planlamış olursunuz. Serverlar bazında yüksek veri depolama gerektiren, ve özellikle kritik veriler içeren serverlarınız varsa uygulamanız MUTLAKA tavsiye edilir. Çünkü Hard disk dediğimiz de aslında fiziksel olarak bozulabilen bir donanımdır. Bir serverda diskiniz bozulduğunda * Tüm verileriniz gidebilir * Tüm müşterileriniz gidebilir :) RAID bu gibi durumların donanımsal olarak önüne geçer. Sisteme Performans katmak için tasarlandığı modeller de vardır. Birkaç tane Raid seviyesi vardır. Konuyla ilgili okumaya devam etmek için http://www.bilgisayarkavramlari.com/2010/03/27/raid-redundant-array-of-independent-disks/ Devamı için : RAID nedir?
22 Mayıs 2012 Salı
php hata mesajlarını gösterme (linux)
Ubuntuda Apache, Php ve mySql kullanarak web sitesi geliştirirken, notice, fatal error vb. hata-uyarıları görüntüleyebilmek için php.ini dosyası üzerinden bir ayar yapmak gereklidir. Çünkü Ubuntuda php5'i kurduğumuzda php.ini dosyası içerisinde default olarak display_errors = Off gelmektedir.
sudo gedit /etc/php5/apache2/php.inidiyerek php.ini dosyasını editörde açıyoruz, ve display_errors = Off satırını bulup, Off kısmını On ile değiştiriyoruz. Devamı için : php hata mesajlarını gösterme (linux)
20 Mayıs 2012 Pazar
linuxta virtual host ayarları (apache virtual hosts settings)
Apache'yi install ettiğinizi varsayarak, virtual host ayarlarını nasıl yapacağımıza bakalım. Virtual host'un ne işe yaradığına kısaca değinecek olursak, tek bir apache web sunucusu üzerinde birden çok domain barındırmaya yarar. Tek bir IP adresi ile birden fazla domaine sahip oluruz. Buna da name-based virtual hosts denir. Farklı IP adresleriyle farklı domainlere sahip olmak (IP-based virtual hosts) için ayrı bir konfigürasyon gerekmektedir. Biz şimdi name-based virtual hosts dediğimiz ayarlara bakalım. İlk olarak yaptığımız web sitesi çalışmalarını tutacağım klasör yolu; /home/khantunckale/sites/ . Yazının devamında web sitelerini barındıracağım klasör burası olacak, kendi çalışmalarınızı nerede barındıracaksanız dosya yolunu ona göre ayarlayınız. /home/khantunckale/sites/ klasörü içine test adında bir klasör oluşturuyoruz.
sudo mkdir sites/testDaha sonra deneme amaçlı olarak test klasörü içerisinde bir tane index.html oluşturalım.
sudo gedit sites/test/index.htmlEditörümüzde basit bir html dosyası oluşturduktan sonra kaydedip kapatıyoruz. Şimdi test klasörü içerisindeki index.html dosyasını browserımızdan http://test/ olarak nasıl çağıracağımızı ayarlayalım. Apache ayarlarını yapmak için ilk olarak /etc/apache2/sites-available klasörü içerisindeki default dosyasındaki ayarları test adında başka bir dosyaya kopyalıyoruz.
cd /etc/apache2/sites-available /* terminalde işlem yapacağımız dizini değiştiriyoruz */ sudo cp default test /* default dosyasını cp komutu ile test dosyasına kopyaladık */Şimdi test dosyasını açıp, default dosyasından farklı olması gereken yerleri düzenliyoruz.
sudo gedit testDeğiştireceğimiz satırların hangileri olduklarını inceleyelim. Öncelikle ServerAdmin satırının hemen altına ServerName test satırını ekliyoruz. Bu bizim browser üzerinden siteyi çalıştıracağımız isimdir, default dosyasında bu satır yok. İkinci değiştirmemiz gereken satır DocumentRoot /var/www satırı. Biz burada /var/www yerine web uygulamamızı nerede barındıracaksak o klasörün yolunu yazıyoruz. Bizim örneğimizde bu klasör /home/khantunckale/sites/test Üçüncü olarak değiştirmemiz gereken satır ise Directory /var/www/ satırı. Burayı da bir önceki değişikliği yaptığımız satırdaki gibi /var/www/ kısmını /home/khantunckale/sites/test/ olarak değiştiriyoruz. Şimdilik bu test dosyasında başka bir değişikliğe ihtiyacımız yok. Değiştirdiğimiz satırları kod olarak da yazayım.
ServerName test /*Bu satır default dosya içerisinde yok*/ /*Browserımızdan hangi isimle çağırmak istiyorsak ServerName olarak onu yazıyoruz */ DocumentRoot /home/khantunckale/sites/test /*Bu satır default olarak /var/www şeklinde.*/ /*Bunu biz web uygulamamızın bulunduğu klasör olarak değiştiriyoruz, bizim örneğimizde /home/khantunckale/sites/ */ Directory /home/khantunckale/sites/test/ /*Bu satır default olarak /var/www şeklinde.*/ /*Bunu da /home/khantunckale/sites/test/ olarak değiştiriyoruz */Şimdi gelelim bilgisayarımızın /etc/hosts dosyasında yapacağımız değişikliklere. Öncelikle terminalde bulunduğumuz dizini değiştirmek için cd ~ yapıp enterlıyoruz (böylece en üst dizine geçiyoruz.). Sonrasında sudo gedit /etc/hosts diyerek metin editörümüzde bu dosyayı açıyoruz. Dosyanın içerisinde
127.0.0.1 localhost 127.0.1.1 ubuntu.ubuntu-domain ubuntusatırının altına 127.0.0.1 test satırını ekliyoruz ve kaydedip kapatıyoruz. Yapmamız gereken son bir işlem daha var. Yaptığımız sitenin domainini apache'ye bildiriyoruz. Ardından da apache'yi restart ediyoruz.
sudo a2ensite test sudo /etc/init.d/apache2 reloadArtık browserımızın adres satırına http://test/ yazdığımızda /home/khantunckale/sites/test/ klasörü, dolayısıyla onun içerisindeki index.html dosyası açılacak. Devamı için : linuxta virtual host ayarları (apache virtual hosts settings)
Uzman web yazılımcısı arıyoruz.
Ideasoft yazılım departmanında çalışmak üzere Uzman yazılımcı aranıyor. PHP ve Mysql konularında Uzman olması gerekmektedir, ancak Herhangi bir web programlama dilinde ve herhangi bir SQL veritabanında uzman olması da yeterlidir. Yazılım Ofisi Gebze Organize Sanayi Bölgesinde Teknopark bünyesindedir. Servis imkanı mevcuttur. Bilgisayar veya Matematik Mühendisi tercih sebebi olabilir. macitemre [at] gmail.com adresine cv lerinizi ve yaptığınız projeleri gönderebilirsiniz. Detaylı olarak ilk önce mail yoluyla daha sonra yüzyüze görüşülecektir. Devamı için : Uzman web yazılımcısı arıyoruz.
19 Mayıs 2012 Cumartesi
Java Immutable (Değişmez) Sınıflar
Immutable (değişmez) sınıflar, nesneleri bir kez oluşturulduktan sonra nesne içeriği değiştirilemeyen sınıflardır. Bir nevi sabit sınıflardır diyebiliriz. Örneğin, Java'da String sınıfı değişmez sınıflardan bir tanesidir. Diğer bilinen değişmez sınıflardan bazıları, Integer, Double, Boolean, BigDecimal sınıflarıdır. Gelin şimdi hem değişmez sınıfların özelliklerini görmek adına hem de değişmez bir sınıf nasıl yaratılır onu görmek adına bir sınıf yazalım.
public final class ImmutableMutant { private final String name; private final int numberOfArms; private final int numberOfLegs; public ImmutableMutant(final String name, final int numberOfArms, final int numberOfLegs) { this.name = name; this.numberOfArms = numberOfArms; this.numberOfLegs = numberOfLegs; } public String getName() { return name; } public int getNumberOfArms() { return numberOfArms; } public int getNumberOfLegs() { return numberOfLegs; } } Kodu incelediğimizde sınıfın final bir sınıf olduğunu görüyoruz. Sınıfı final olarak tanımlamanın amacı, sınıfın başka sınıflar tarafından extend edilmesini (türetilmesini) engellemek. Yani, final sınıfların alt sınıfları olmaz. Dolayısıyla değişmez sınıflardan herhangi bir şekilde başka sınıflar türetilemez. İkinci olarak, sınıfın tüm elemanları private ve final'dır. Yani, sınıf içinden veya dışından herhangi bir şekilde değiştirilemez. Üçüncü olarak, sınıfın tüm elemanları sadece constructor vasıtasıyla ilklendirilebilir. Ve son olarak, sınıf elemanlarını dışardan değiştirebilecek metodlar (setter metodları) yoktur. Şimdi de değişmez sınıfların özellikleri ve avantajlarından bahsedelim. Değişmez sınıf nesneleri kesinlikle thread korumalıdır (thread-safe). Çünkü, bir kez oluşturulduktan sonra içeriği değiştirilemez bu da threadlerde kullanımda ortaya çıkabilecek senkronizasyon sorunlarını ortadan kaldırır. Değişmez sınıf nesnelerinin içerikleri değişmeyeceği için program akışı içerisinde içerikte istenmeyen değişikliklerin olmasının önüne geçilebilecektir. Değişmez sınıf nesnelerini gönül rahatlığıyla başka referanslara atayabilirsiniz. Örneğin, bir metoda yolladığınızda o metod içerisinde nesnenin değişmeyeceğini garanti etmiş olursunuz. Devamı için : Java Immutable (Değişmez) Sınıflar
18 Mayıs 2012 Cuma
linux process sonlandırma
Ubuntu'da çalışırken ilk defa bir program kilitlendi, Firefox. Çok fazla sekme açtığım ve aynı anda firefox üzerinden bir kaç şey download ettiğim için olduğunu düşünsem de, kilitlendiği zaman ne yapacağımı bilmiyordum. Windows kullanırken herhangi bir program yanıt vermediğinde ctrl+alt+delete (ctrl+shift+esc) yaparak görev yöneticisine ulaşıp oradan programı sonlandırmak ilk olarak yaptığımız iştir. Linux'ta ne yapacağız peki? İlk önce terminali açıyoruz ve ps aux yazarak çalışan processleri buluyoruz.
ps auxÇıkan listeden sonlandırmak istediğimiz processi buluyoruz.
khantunckale 5609 0.0 3.8 713568 151400 ? Sl 18:03 0:05 /usr/lib/firefoxSonlandıracağımız processin olduğu satırın başında, o processin numarası bulunmaktadır. (Burada 5609) Sonlandırmak için yapmamız gereken işlem ise sudo kill -9 proccessNumarası yazmak. Yani örneğimizde;
sudo kill -9 5609Devamı için : linux process sonlandırma
Kaydol:
Kayıtlar (Atom)