Bilmek istediğin her şeye ulaş

Açık Kaynak (Open Source)

Yazılım

Üretim ve geliştirmede açık kaynak (Open Source), son ürünün tasarımı ve uygulama detayları için erişimi ve ücretsiz yeniden dağıtımı teşvik eden bir Felsefe ya da Pragmatik Yöntem Bilimdir. Açık kaynak deyiminin yaygın olarak kabul edilmesinden önce, geliştiriciler ve üreticiler bu kavram için bir takım terimler kullandılar. İnternet'in yükselişi ve görevlilerin bilgisayar kaynak kodunda büyük bir reforma ihtiyaç duymaları sonucuyla açık kaynak kabul gördü. Bu sayede, üretim modellerinin kendinden arttırıcı çeşitliliğine, iletişim yollarına ve interaktif toplulukların oluşmasına olanak sağlandı. Açık kaynak yazılım hareketi yeni telif hakları, lisans verme, alan adı ve oluşan tüketici sorunlarına netlik kazandırmak için ortaya çıktı. Açık kaynak kodlu program, kullanımı ücretsizdir ve düzenlenmesini herkes için açık tutar. Açık kaynaklı yazılımlar içinde özgür bir yazılım lisansı ile lisanslanmış olan yazılımlar, Özgür yazılım (Free software) sınıfına girerler. Tüm özgür yazılımlar, aynı zamanda açık kaynaklı yazılımlardır. Ancak her açık kaynak yazılım bir özgür yazılım olmayabilir. Açık kaynak kod, genellikle programcının kodu geliştirerek ve değişiklikleri topluma paylaşarak ortak çabayla oluşturulur. Açık kaynak teknolojik toplum içinde şirketlerin sahipli yazılımlarına karşı oluşturulmuştur.

Ocak 2015

Necmettin Begiter, bir soruya yanıt verdi.

PostgreSQL'nin MySQL'e göre dezavantajları ve avantajları nelerdir?

  1. Oracle MySQL'i satın aldı, gelişimi 'artık geliştirilmiyor' denebilecek kadar yavaş. Oysa Postgres halen özgür bir yazılım.
  2. PostgreSQL'de depolama motoru seçme diye birşey yoktur, tek motor vardır. MySQL'de ise seçtiğiniz depolama motoru veritabanının yeteneklerini belirler/kısıtlar.
  3. MySQL upsert mantığını uzun süredir destekliyor, Postgres'e ise yakın zamanda geldi.
  4. Her ikisi de çoklama (replication), parçalama (sharding) destekler.
  5. Performans olarak karşılaştırmak istersek. Etrafta çok sayıda karşılaştırma var. ayrıca Postgres'in bazı konularda daha yavaş olduğunu düşünenler var (kulaktan kulağa yayılan bir yanlış). Fakat ne karşılaştırma testleri, ne de kulaktan dolma bilgisiz yaklaşımlar gerçeği yansıtmıyor. Biri diğerinden daha hızlı diye birşey yok. Kim kesin konuşursa yanlış biliyordur, emin olabilirsin.
  6. MySQL'i kurup yapılandırmak ve yönetmenin daha kolay olduğu yönünde bir kanı vardır. Postgres ise biraz daha emek ister denir. Oysa ne yapmak istediğini ve Google kullanmayı biliyorsan ikisinde de kurup yapılandırmak ve yönetmek aynı derecede kolaydır.
  7. MySQL karmaşık sorgular için çoğu zaman geçici tablolar oluşturarak çalışır.
  8. Postgres MySQL'in desteklemediği bazı veri yapılarını destekler. Konum, dizi (array), JSON gibi.
  9. Postgres'de INSERT/UPDATE sorgusunun sonucunda değişen veriyi almak MySQL'den daha kolaydır. MySQL'de last_insert_id() çağrısı gerekir. Postgres'de ise INSERT sorgusunun sonuna RETURNING * (veya hangi alanları istiyorsan: 'id, ordr') yazmak yeterlidir. UPDATE sorgusu bir anda UPDATE/SELECT sorgusuna dönüşür.
  10. Arkada, kod tarafındaki farklarından bahsetmiyorum, ama özde çalışma mantıkları arasında farklar var.

Eğer bu soruyu ikisi arasında bir karar vermek için soruyorsan, şu iki soruya vereceğin cevaba göre hareket et:
  1. ORM kullanacak mısın? O zaman hangisini tercih ettiğin çok önemli değil.
  2. Hangisini daha iyi biliyorsun? Onu tercih edersen daha hızlı çalışabilirsin.
  3. Daha az bildiğini öğrenmek istiyor musun, şartlar buna uygun mu? Öyleyse, daha az bildiğini tercih et. (Proje hemen bitmeli ve ORM kullanmayacağız: daha iyi bildiğini tercih et. ORM kullanacağız: pek farketmez. Proje çok acil değil, öğrenmek istiyorum: daha az bildiğini tercih et.)
Ocak 2015

Irfan Bahadır, bir soruya yanıt verdi.

PostgreSQL'nin MySQL'e göre dezavantajları ve avantajları nelerdir?

  • Daha az yaygın (Her yerde hazır olarak karşınıza çıkmayabilir, sunucu için ek konfigürasyon yapmanız gerekebilir vs. vs.)
  • Daha yavaş (Her işlemde olmasada büyük veriler işlerken daha yavaş olduğunu duydum)
  • İleride replikasyon ihtiyacınız olursa MySQL bu işte daha iyi olacaktır.
  • Daha az kaynak (MySQL için çok daha fazla örnek ve dökümantasyona rahatlıkla ulaşabilirsiniz, fakat bu Postgresql için kaynak yok demek değil yeterince var.)
Veritabanındaki işlemleriniz sadece ekle, güncelle, getir, sil ise hangisini kullandığınızın çok bir önemi yok. Performans, güvenlik ve kaynak önemli. Daha ileri seviyede veritabanı kullanacaksanız diğer alternatifleri de gözden geçirip (Oracle, MsSql vb.) ihtiyaçlarınız en iyi karşılayanı seçmek daha iyi bir yol olabilir.
Ocak 2015

Hikmet Yumaklı, bir soruya yanıt verdi.

PostgreSQL'nin MySQL'e göre dezavantajları ve avantajları nelerdir?

Açık kaynak yazılımların avantajları neyse odur PostgreSQL içinde. Kullanmasını bilen için herzaman açık kaynak en güzelidir uzun vadeli düşünüldüğünde.
Eylül 2014

Omer Ayverdi, bir soruya yanıt verdi.

Ağ güvenliği raporlaması nasıl yapılır?

Log dosyasi olusturmaniz gerek rapor almak icin. Acik kaynaktan ne kastettiniz bilmiyorum ama linuxte pythoni kullanarak bir port listener yapilabilir mesela. Yaptiginiz program size log dosyasida yazabilir. Burada basit bir port-listener yapimini gostermisler ilab.cs.byu.edu/python/socket/echoserve...
Haziran 2014

Gizli Kullanıcı,  yeni bir soru sordu.

Ocak 2014

Eski Inploider, bir soruya yanıt verdi.

Yazılımda web olsun masaüstü olsun sürekli açık kaynak açık kaynak diye överler ama ben bu açık kaynakları çok az yerde görüyorum. Nerelerde paylaşıyorlar bu açık kaynakları?

Open Source denilip de kaynağına ulaşmadığın bir proje bulamazsın bence.
Her open source projenin ilgili sayfasında yönlendirmeler var.
Git son yılların en popüler versionlama sistemlerinden.
GitHub da Git'i kullanan bir sistem.
Git dışında SVN en bilinen versionlama sistemlerinden ve yanılmıyorsam Google Code SVN'i kullanıyor. Microsoft'un CodePlex'i de hem Git hem SVN kullanıyor.

Geliştirici olarak yaptığınız araştırmalar zaten sizi hep açık kaynak kodlu projelerden yardım almaya yönlendiriyor.

Benim bir hocamın sözü vardı açık kaynak derdi kitapların açık olarak yapıldığı sınavlara benzer. Soru bellidir ama cevabını bulamazsın kitapta derdi.

Kaynak kodun her zaman açık olması bir anlam ifade etmeyebilir. Önemli olan açık kaynak kodun gelişimini yönetebilmektir. Bu yüzden SVN, Git kullanılır.

Örnek : Twitter Bootstrap frameworkü kaynak kodları
Ocak 2014

Necmettin Begiter, bir soruya yanıt verdi.

Yazılımda web olsun masaüstü olsun sürekli açık kaynak açık kaynak diye överler ama ben bu açık kaynakları çok az yerde görüyorum. Nerelerde paylaşıyorlar bu açık kaynakları?

Acik kaynakli yazilim demek, tum kaynak kodlari herkes tarafindan erisilebilir olan demek. Acik kaynak olup da kaynak kodlarina erisemeyecegin bir yazilim, proje, teknoloji bulamazsin. Bulursan o projenin acik kaynak oldugunu iddia edenler ya acik kaynagin ne demek oldugunu bilmiyorlardir, ya da bilincli olarak 'puan toplamak icin' acik kaynak yalanini soyluyorlardir.

Butun acik kaynak kodlarin toplandigi ortak bir havuz yok. Proje yoneticileri kaynak kodlari kendi ekosistemlerinde (sitelerinde diyeyim) de tutabilirler, github gibi servislerde de barindirabilirler. Ama kimlik denetimi olmadan erisilebilir bir yerde tutmalidirlar.

Bu kadar acik kaynak var diyorsun ya... Binlerce projeden bahsediyoruz. Sen nasil ulasamadin? Kaynak kodunu arayip da bulamadigin bir acik kaynak yazilim mi var?
Butun dunya GitHub degil. Hatta cogu acik kaynak yazilim projesine baslandiginda, birak Github'i, Git bile yoktu.

Kullandigin modemin bile cekirdegini olusturan Linux cekirdegini ornek olarak vereyim: code.woboq.org/linux/linux/
Ocak 2014

Taha Gür, bir soruya yanıt verdi.

Açık kaynak kod çalışmaların kodları nerelerde paylaşılıyor?

Birde ne aradığına bağlı olarak değişir tabi ki bu. Github evet acık kaynaklı kod paylaşım yeridir ama githubdan haberi olmayan açık kaynak kodlu yazılımlar mevcut. Araştırma yapmanız tavsiye ederim.
Daha fazla