Dubluve.net » Murat Saç http://dubluve.net Biz de yazılımcıyız Sat, 21 Jun 2014 00:00:05 +0000 tr-TR hourly 1 http://wordpress.org/?v=3.5.2 Git ile birden fazla RSA key tanımlamak http://dubluve.net/2013/08/17/git-ile-birden-fazla-rsa-key-tanimlamak/ http://dubluve.net/2013/08/17/git-ile-birden-fazla-rsa-key-tanimlamak/#comments Sat, 17 Aug 2013 18:06:23 +0000 Murat Saç http://dubluve.net/?p=2735 Merhaba,

Github.com veya bitbucket.org üzerinde farklı farklı email adresleriyle oluşturduğunuz  projeleriniz olabilir ve tek bilgisayarda hepsine RSA key tanımlayarak çalışmak istiyor olabilirsininiz. Burada yapmamız gereken işlem hangi projenin hangi RSA key ile haberleşeceğini belirlemektir. Eğer bunu belirlemezsek sonradan eklediğimiz projelerde ilk eklenen projenin RSA keyi ile güvenli bağlantı kurmaya çalışır ve hata alırsınız.

Eğer 2. bir proje için RSA key tanımlamak istiyorsanız zaten daha önceden RSA key tanımlamayı öğrenmişsinizdir diye düşündüm. Yine de bilmeyenler bu linkteki adımları izleyerek kolayca RSA key oluşturabilirler.

İlk olarak RSA key dosyalarımızın bulunduğu dizine gidelim :

cd ~/.ssh

Şimdi bahsettiğim hangi projenin hangi RSA dosyasını kullanacağı bilgilerini tanımayacağımız ayar dosyamızı oluşturalım :

touch config

Şimdi bu dosyamızın içine şu ayarları ekleyelim :

# ilk projemizin ayarları.
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

# ikinci projemiz
Host github-second-account
HostName github.com
User git
IdentityFile ~/.ssh/ikinci_projemizin_rsa_key_dosya_adi

Burada hangi dosyamızın hangi projeye ait olduğunu belirttik. IdentityFile alanında ilgili RSA dosyasının tam pathini veriyoruz. Host alanında bir maske oluşturuyoruz. Örneğin 2. projemizde github.com adresinde. Bu sebeple aynı yerlere bağlanıyorlar. O yüzden bağlanırken hangi RSA dosyasını alacağını bulmak için bir maske oluşturuyoruz ve farklı bir ad veriyoruz.

Maske şu şekilde kullanılıyor. 2. projeyi çekerken :

git clone git@github-second-account:user/project.git

Şeklinde kullanıyoruz ve proje çekildikten sonra RSA key aktif olmuş bir şekilde kullanmaya başlıyoruz. Afiyet olsun :)

 

 

 

]]>
http://dubluve.net/2013/08/17/git-ile-birden-fazla-rsa-key-tanimlamak/feed/ 4
Ubuntu çalışan hizmet ile programları listelemek ve sonlandırmak http://dubluve.net/2013/03/25/ubuntu-calisan-hizmet-ile-programlari-listelemek-ve-sonlandirmak/ http://dubluve.net/2013/03/25/ubuntu-calisan-hizmet-ile-programlari-listelemek-ve-sonlandirmak/#comments Mon, 25 Mar 2013 11:35:17 +0000 Murat Saç http://dubluve.net/?p=2561 Ubuntu makinenizde çalışan bir yığın servis, program v.s. olabilir. Örneğin ngnix, örneğin PHP, örneğin Filezilla. O an çalışanları listelemek için aşağıdaki komutu kullanabiliriz.

top

Burada liste oldukça kabarık olabilir. Bir programı sonlandırmak için ilgili programın PID bilgisine sahip olmalıyız. Eğer listemiz kabarık ve PID‘i göremediysek aşağıdaki komutu çalıştırdığımızda aradığımız programın PID değerini bize verir.

pidoff program_name (örnek pidoff filezilla) - (örnek sonuç 1744)

Çalışan bir hizmet veya programı kapatmak içinde aşağıdaki komutu kullanıyoruz.

kill PID (örnek kill 1744)

Umarım faydalı olmuştur.

]]>
http://dubluve.net/2013/03/25/ubuntu-calisan-hizmet-ile-programlari-listelemek-ve-sonlandirmak/feed/ 0
Ubuntu Yüklenmiş Paketleri Listelemek http://dubluve.net/2013/02/27/ubuntu-yuklenmis-paketleri-listelemek/ http://dubluve.net/2013/02/27/ubuntu-yuklenmis-paketleri-listelemek/#comments Wed, 27 Feb 2013 13:20:58 +0000 Murat Saç http://dubluve.net/?p=2505 Merhaba,

Ubuntu makinanıza kurmuş olduğunuz tüm paketleri listelemek isterseniz aşağıdaki komutu terminal (komut satırı) aracılığıyla çalıştırınız. Burada sadece sizin yüklediğiniz değil işletim sisteminizle beraber yüklü olarak gelen paketleri de göreceksiniz :

dpkg --get-selections

Selamlar.

]]>
http://dubluve.net/2013/02/27/ubuntu-yuklenmis-paketleri-listelemek/feed/ 4
Webrazzi E-Ticaret’2013 http://dubluve.net/2013/02/20/webrazzi-e-ticaret2013/ http://dubluve.net/2013/02/20/webrazzi-e-ticaret2013/#comments Wed, 20 Feb 2013 19:24:36 +0000 Murat Saç http://dubluve.net/?p=2491 Merhaba,

Her yıl Webrazzi tarafından düzenlenen E-Ticaret konferansı bu yıl İstanbul Point Hotel Barbaros’da gerçekleşti. Sabah 9:30 da başlayan etkinlik saat 17:00 de sonlandı. Bende katılımcılar arasındaydım.

Bu sektörün bir parçası olarak her ne kadar önemli işler yapıyor olsak da çoğu zaman biz yazılımcılar yaptığımız işin ne kadar önemli olduğundan bihaber durumda oluyoruz. Bize çok normal gelen çalışmaların aslında önemli kilometre taşları olduğunu bu gibi etkinliklerde bu ortamın havasını koklayarak anlamak mümkün. Etkinliklere pek çok önemli firma katıldı. Bunlardan bazıları :

- IdeaSoft
- Hepsiburada.com
- Yemeksepeti.com
- BKM
- Gittigidiyor.com
- Turkcell
- Limango

Önemli firma yöneticilerinin ortak görüşleri e-ticaretin önümüzdeki yıllarda hızla büyüyecek olması. Bu bağlamda her ne kadar detaylı bilgi verilmesede bu pastadan pay kapmak için tüm firmaların yeni projeleri ve pazarlama stratejileri olduğunu söylemek isterim. Tüm firmalar yine kendi sektörleriyle alakalı geçmiş yılların istatistikleri ve tahmini gelecekle ilgili beklentilerini anlattılar.

BDiCC1KCAAAo-Qc

Etkinlik için firmalara ayrılan sürenin kısıtlı olması yüzeysel bilgi verilmesine yol açtı diyebilirim. Genellemeler üzerinden hızlı bir sunum yapıldı. Ben sunumların sonunda internette bu firmalar hakkında arama yaparak ulaşabileceklerimden daha fazlasını alamadım. Sunum gerçekleştirecek olan firma isimleri ve onları temsilen sahnede olacak isimler her ne kadar heyecan uyandırsada pek doyurucu olmadığını düşünüyorum.

Yine sahne alan firma yöneticilerinin kendinden önceki yada sonraki firmalara kılçık attığını ve üstünlük kurma çabalarının olduğunu kendi gözlemlerime dayanarak söyleyebilirim. Biraz gövde gösterisi gibi oldu diyebiliriz.

BKM Genel Müdürü Soner Canko’nun diğer sunum yapan firma rakamlarını yalanlaması, Yemeksepeti.com’un Genel Müdürü Nevzat Aydın’ın kendinden emin ve “bizden büyüğü yok çok firma rakip olmaya çalıştı ama çoğunuz ismini bile bilmezsiniz” şeklinde rahat tavırlarıyla çoğu kez Yemeksepeti’ni övmesi, Evim.net Genel Müdürü Ali Özen’in esprili ve samimi cevapları konferansa damgasını vurdu.

Genel gözlemlerim firmaların bu kadar büyük şirketler haline gelmesinin 2 ana sebebi var. Birincisi 2000′li yıllarda henüz Türkiye’de internet sektörü çok yeni gelişmeye başlarken Avrupada ki başarılı projelerin ülkemize getirilmesi (Yemeksepeti.com, Mynet.com) sonucu rakipsizleşmek ve ikincisi dev firmaların internet sektöründe ki pazardan pay almak için dev yatırımları. O yüzden kendi çabalarınızla internette bir yerlere gelmek istiyorsanız özgün şeyler üretmeniz gerekiyor diye düşünüyorum. Ne şuan 2000 yılındayız nede arkanızda dev bir yatırım var. O zaman özgün birşeyler üreterek bir yerlere gelmek hala mümkün gibi gözüküyor.

Konferansa ilişkin detaylı bilgiler Webrazzi sayfasında bulunuyor, inceleyebilirsiniz. Bu yazı tümüyle benim naçizane görüşlerimi barındırıyor. Sürç-i lisan ettiysek affola. Selamlar.

]]>
http://dubluve.net/2013/02/20/webrazzi-e-ticaret2013/feed/ 5
PHP Namesapace Autoload http://dubluve.net/2013/02/15/php-namesapace-autoload/ http://dubluve.net/2013/02/15/php-namesapace-autoload/#comments Thu, 14 Feb 2013 22:04:51 +0000 Murat Saç http://dubluve.net/?p=2475 Merhaba,

PHP 5.3.x ile beraber gelen namespace konusuna bu yazımda değinmiştim. Şimdi namespace autoload konusuna değinerek sizlere bilgilerimi paylaşmak istiyorum.

Koskoca bir proje tek bir include ile olur mu demeyin oluyor. Kullanmak istediğimiz namespace’yi use diyerek çağırmak ve ilgili sınıfın otomatik olarak include edilmesi için autoload mekanizması var. Şimdi bu yapıyı kurmak için proje dizinimize composer.json dosyası oluşturarak içine şu jsonu ekleyelim :

{

   "autoload":{
      "psr-0":{
         "" : "library" // sınıflarımın bulunduğu path (index.php ile aynı seviyede)
      }
   }
}

Not : composer işletim sisteminizde yüklü olmalıdır (ubuntu için curl -s https://getcomposer.org/installer | php)

Şimdi komut satırından proje dizinine gelerek şu komutu çalıştıralım ve ilgili dosyalarımızı oluşturalım :

composer install

Bu komutu çalıştırdıktan sonra vendor isminde bir klasör ve içerisine iligli dosyalar gelmiş olacak.Aynı zamanda composer ile uğraşmak istemiyorsanız internetten çeşitli kaynaklardan bu vendor içindeki dosyaları edinebilir veya kendiniz yazabilirsiniz. Nihayetinde PHP dosyaları ve composer sadece bu işi kolaylaştıran bir yapı.

Şimdi kullanımına gelecek olursak index.php dosyamıza vendor klasörü içindeki autoloader.php dosyamızı include etmek dışında hiçbirşey kalmıyor :)

]]>
http://dubluve.net/2013/02/15/php-namesapace-autoload/feed/ 3
PHP Namespace http://dubluve.net/2013/02/14/php-namespace/ http://dubluve.net/2013/02/14/php-namespace/#comments Thu, 14 Feb 2013 20:11:16 +0000 Murat Saç http://dubluve.net/?p=2471 Merhaba,

Nedir bu namespace diyerek Google’nin başına geçmiş, araştırmalar yapmış ve tam olarak kafanıza oturmadan çalışmaları sonlandırmış olabilirsiniz. Biraz gerçekçi senaryolar üzerinden giderek sonuca ulaşmaya çalışalım.

- library

- Form

- Data.php (class Data)

- Database

- Data.php (class Data)

Şeklinde iki adet Data.php dosyalarına tanımlanmış Data isimli sınıflarımız var. Buraya kadar sorun yok. Şimdi bunları aynı sayfa üzerinde çalıştırmaya çalışalım.

<?php

require_once('library/Form/Data.php');

require_once('library/Database/Data.php');

$object1 = new Data();

$object2 = new Data();

?>

İşte burada işler karıştı ve fatalı yediniz. PHP size kızdı. Muhtemelen kullandığınız IDE bile size kızdı. Yazıklar olsun dedi. PHP 5.3.x ile beraber gelen namepsace bu konuda bize çözüm sağlıyor.

library/Database/Data.php :

<?php

namespace Database;

class Data{

}

?>

library/Form/Data.php

<?php

namespace Form;

class Data{

}

?>

Şimdi namepsace ile doğru kullanımına geçelim

<?php

require_once("library/Database/Data.php");

require_once("library/Form/Data.php");

$object1 = new \Database\Data();

$object2 = new \Form\Data();

?>

Evet şimdi işlet tıkırında giti ve PHP’de IDE’de kızmadı bize. Çalıştı. Eğer namespace kullanmamış olsaydık 2. Data classımız için Data yerine başka belkide anlamsız bir isim vermek zorunda kalacaktık. Özellikle büyük çaplı projelerde iç içe klasör yapıları ve classlar ile daha anlamsız class isimleri oluşturmak durumunda kalacaktık. Buda kod okunurluğunu ve OOP yapısına uygun olmayan sonuçlar doğurabilirdi.

Umarım faydalı olmuştur.

]]>
http://dubluve.net/2013/02/14/php-namespace/feed/ 2
Twig Kurulumu ve Kullanımı http://dubluve.net/2013/02/14/twig-kurulumu-ve-kullanimi/ http://dubluve.net/2013/02/14/twig-kurulumu-ve-kullanimi/#comments Thu, 14 Feb 2013 19:22:54 +0000 Murat Saç http://dubluve.net/?p=2467 Merhaba,

Profesyonel yazılım projelerinde yazılım tasarımdan ayrı tutularak tasarlanır ve geliştirilir. Özellikle özel şirketlerde yazılım, tasarım ve arayüz için farklı departmanlar bulunmaktadır. Konusunda uzman kişiler çalışmalarını birbirlerine ayak bağı olmadan ilerletir. Ne arayüz geliştiricilerin her iş için yazılımcılara ihtiyacı olur ne de yazılımcıların her iş için tasarımcılara ihtiyacı. Bu bağlamda basit bir yazılım dili gibi HTML değişkenler ile birçok çalışma yapmak mümkün.

Önemli template motorlarından Twig kurulumu ve birkaç basit çalışmayı sizlerle paylaşmak istiyorum.

Twig 1.12.2 sürümünü indirmek için buraya diğer sürümlere erişmek için buraya tıklayınız. İndirmiş olduğunuz dosyayı çalışmak istediğiniz dizine çıkarmanız gerekiyor. Aslında kurulumdan kastımız buydu :) Sadece çalışır duruma gelmesi için birkaç düzenleme daha yapacağız. Cache ve template dosyalarımızın bulunacağı 2 klasör daha isteyecek bizden. Oluşturmanız gereken klasörleri aşağıda listeliyorum

- compilation_cache

- templates

Templates klasörümüzün içine index.html ekleyelim. Basit bir sayfa olacak

<!DOCTYPE html>
<html>
    <head>
        <title>My Webpage</title>
    </head>
    <body>
        <h1>My Webpage</h1>
        {{ message }}
    </body>
</html>

Proje dizinimize index.php oluşturup içine şu kodları ekleyelim :

<?php
require_once 'lib/Twig/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader, array('message' => "Hello Word!"));
echo $twig->render('index.html');

Twigi oluşturup template dizinimizi belirttik. index.html ile haberleşecek olan verileri array olarak gönderiyoruz. message değişkenimiz var şuan sadece. En son olarak index.html’i render ederek çalıştırmış olduk. Ekrana “Hello Word” yazıldığını görürseniz başardınız demektir :)

]]>
http://dubluve.net/2013/02/14/twig-kurulumu-ve-kullanimi/feed/ 2
Ubuntu PHP 5.4′den 5.3′e Geçiş (Downgrade) http://dubluve.net/2013/02/14/ubuntu-php-5-4den-5-3e-gecis-downgrade/ http://dubluve.net/2013/02/14/ubuntu-php-5-4den-5-3e-gecis-downgrade/#comments Thu, 14 Feb 2013 18:30:02 +0000 Murat Saç http://dubluve.net/?p=2463 Merhaba,

Ubuntu ile pek çok şeyin kurulumu oldukça basittir. Bunlardan biride PHP. Tabi sudo apt-get install php5 diyerek en güncel PHP sürümüne erişmiş oluyoruz. Yazıyı yazmış olduğum tarihte ki en güncel versiyon PHP 5.4.6.

Tabi ki geliştiriciler olarak en güncel versiyonları takip etmek ve ayak uydurmak durumundayız. Oldukça hızlı gelişen bir platform üzerinde çalışmalar yapmaktayız. Ancak mevcut projeleriniz veya araştırma geliştirme çalışmalarımız için PHP 5.3 sürümüne ihtiyaç duyabiliriz. Bunun için derlenmiş durumda olan PHP 5.3.3 sürümünü makinamıza kuracak olan bir bash script dosyamız mevcut.

İndirmek için https://www.box.com/s/utzf230qwdt1i5ifvmiu adresini kullanabilirsiniz. İndirdikten sonra yapmanız gerekenleri aşağıda yazıyorum. Sonrasında PHP 5.3.3 versiyonuna sahip olmuş olacaksınız.

sudo sh php5_4_downgrade_5.3.sh

 

]]>
http://dubluve.net/2013/02/14/ubuntu-php-5-4den-5-3e-gecis-downgrade/feed/ 2
Ubuntu DNS Ayarlarını Değiştirmek http://dubluve.net/2013/02/03/ubuntu-dns-ayarlarini-degistirmek%ef%bb%bf%ef%bb%bf/ http://dubluve.net/2013/02/03/ubuntu-dns-ayarlarini-degistirmek%ef%bb%bf%ef%bb%bf/#comments Sun, 03 Feb 2013 14:15:38 +0000 Murat Saç http://dubluve.net/?p=2434 Merhaba,

Ubuntu işletim sistemi üzerinde DNS ayarlarımızı nasıl güncelleyebileceğimizden bahsedeceğim. Çeşitli sebeplerden ötürü DNS ayarlarınızı değiştirme ihtiyacı duyabilirsiniz. Yaygın olarak kullanılan Google DNSlerini kullanarak ben bu işlemi size anlatacağım. Sizler ihtiyaçlarınıza göre farklı DNS bilgilerini kullanarak işlem yapabilirsiniz.

İlk işimiz /etc/dhcp/dhclient.conf dosyasını açarak prepend domain-name-servers yazan satırı bulalım (CTRL+W ile arama yapabilirsiniz.) Muhtemelen bu satırın başında # işareti olacaktır. Bu işareti kaldırarak satırı şu şekilde düzenleyelim ve kaydedelim :

prepend domain-name servers 8.8.8.8 8.8.4.4

Son olarak bir işlemimiz daha kaldı. /etc/network/interfaces dosyamızı açarak düzenleme moduna geçelim. Aşağıdaki gibi düzenleyelim ve kaydedelim :

auto lo
iface lo inet loopback
dns-nameservers 8.8.8.8 8.8.4.4

An itibari ile DNS ayarlarımızı güncellemiş olduk. Yukarıda da bahsettiğim gibi Google DNS bilgilerini kullandım (8.8.8.8 8.8.4.4) Siz başka DNS de tercih edebilirsiniz. Umarım faydalı olmuştur.

]]>
http://dubluve.net/2013/02/03/ubuntu-dns-ayarlarini-degistirmek%ef%bb%bf%ef%bb%bf/feed/ 10
Gömülü Sistemler http://dubluve.net/2013/01/19/gomulu-sistemler/ http://dubluve.net/2013/01/19/gomulu-sistemler/#comments Sat, 19 Jan 2013 12:00:47 +0000 Murat Saç http://dubluve.net/?p=2416 Merhaba,

Pek çok kez adını duyduğumuz (yazılım dünyasında) gömülü sistemler(embedded system) ne işe yarar diye biraz araştırmaya koyuldum. Evimde bulunan çeşitli kaynaklardan edindiğim bilgileri özette olsa sizle paylaşarak bilmeyenler için fikir sahibi olmanıza yardımcı olacağım.

Gömülü sistemleri mini bilgisayarlar olarak adlandırabiliriz. Bir kişisel bilgisayardan ziyade daha önceden tanımlanmış işleri dışarıdan tetikleyerek veya otomatik olarak gerçekleştiren sistemlerdir. Belirli sistemleri kontrol ederler ve bazı durumlarda kendilerini de kontrol ederler. Bu sistemler genellikle salt-okunur (read-only) bir bellek üzerinde bulunur.

Hayatımızın pek çok yanına dağılmış olarak bu sistemleri kullanmaktayız. Örnek vermek gerekirse mikro dalga fırın, çamaşır makinesi, otomobillerde ki yol bilgisayarlarını örnek olarak verebiliriz.

Bu da demek oluyorki her eve bir bilgisayar kampanyasına gerek yok :) zaten her evde var.

Üniversitede bir projem çerçevesinde ışıklandırma amacıyla kullanılacak olan bir gömülü sistem projem vardı. PIC ile yazıyorduk (yazmaya çalışıyorduk) Hayatımızın her alanına dağılmış olan ve günlük yaşantımızı kolaylaştıran bu sistemlerden ufakta olsa bahsetmek istedim. Umarım fikir sahibi olmuşsunuzdur.

 

]]>
http://dubluve.net/2013/01/19/gomulu-sistemler/feed/ 7