15 April 2014

upstart


Linux ‘ta sistem açılışında birtakım servisleri çalıştırmak için senelerdir init scriptler yazmak alışkanlığından sıyrılamadığımdan aslında upstart ‘ın ne kadar keyifli olduğunu hep gözardı ettim.

Geçen zamanların ardından, System-V init scriptleri yerini almaya başlayan upstart’a artık geçmenin artık tam sırası. Birçok linux dağıtımı tarafından açılış yöneticisi olarak kullanılmaya başlayan upstartın ‘ın birkaç örneğini bu günlük girdisinde sizlerle paylaşmaya çalışacağım

Upstart kendi web sitesinde /sbin/init servisinin yerine geçen bir olay tabanlı bir servis yöneticisi. Sistemin başlangıçından durana kadar servislerin çalışması, durdurulması ve kontrol edilmesinden sorumlu.

Ubuntu dağıtımları ile popüler olan bu servis artık RHEL/ Centos 6.5 ile de öntanımlı geliyor ve eski System-V init scriptlerinin yerini almış durumda.

Upstart’ınSystem-V ‘den farklı olarak öne çıkan özellikleri aşağıda Türkçeye çevirmeye çalıştım.

  • Süreçler ve servisler birbirine bağımlı paralel başlatılıp durdurulabilir
  • Süreçler ve servisler başlatılıp durdurulduğu an olay günlükleri yaratılabilir
  • Olay günlükleri sistem üzerinden herhangi bir uygulamadan gönderilebilir
  • Upstart ile çalışan servisler istenmeden durduğu an otomatik tekrar çalıştırılabilir
  • fork() edip ana sürecinden ayrılan alt süreçler kontrol edilebilir, yeniden çalıştırılabilir
  • D-Bus sistemi ile init süreci üzerinden haberleşme sağlanır.
  • Kullanıcılar kendilerine ait servisleri başlatıp durdurabilir.

Daha ayrıntılı bilgiyi upstart ‘ın kendi web sitesinden  alabilirsiniz.

Basit olarak bir php betiğini upstart ile yönetmek, sistemin başlangıcında otomatik çalıştırmak için yapılacak basit konfigurasyon aşağıdadır. php-worker.conf dosyasını aşağıdaki gibi yaratıp /etc/init dizinine kopyalamanız yeterlidir.

# php worker service

start on runlevel [2345]
stop on runlevel [!2345]

kill timeout 30
env PATH=/usr/bin:/bin

exec  /usr/local/bin/worker.php > /tmp/worker.log 2>&1

respawn
respawn limit 10 5

Bu işlemden sonra initctl list komutunu çalıştırarak upstarta kayıtlı servisleri ve durumları görebilirsiniz

[root@server02 init]# initctl list
rc stop/waiting
php-worker stop/waiting
plymouth-shutdown stop/waiting
satellite start/running, process 4205

php-worker servisinin upstart ‘a kaydedilmiş ve stop/waiting konumunda beklemektedir. Servisi başlatmak için initctl start php-worker / yada sadece start php-worker komutu kullanılabilir.

[root@server02 init]# start php-worker
php-worker start/running, process 28472

php-worker servisimiz artık 28472 nolu id ile çalışmaya başlamıştır. Tek farkı rc.local ve klasik SystemV init scriptleri dışında bu servis upstart tarafından kontrol edilmektedir.

Konfigurasyon dosyasındaki respawn direktifi php-worker sürecimizi aktif olarak kontrol etmekte keza durursa otomatik yeniden başlatmaktadır. Deneyelim:

[root@server02 init]# ps -ef |grep worker
root     28496     1  0 20:07 ?        00:00:00 /usr/local/bin/worker.php
[root@server02 init]# kill -9 28496
[root@secim02 init]# ps -ef |grep worker
root     28521     1  6 20:15 ?        00:00:00 /usr/local/bin/worker.php

Evet süreç ötnekte olduğu gibi öldürüldükten sonra yeni süreç id ‘si ile yeniden başlıyor. Uygulamayı durdurmak için stop php-worker komutunu kullanmamız gerekli.

Aşağıda nginx ve php-fpm servisleri için geliştirdiğim iki örnek scripti görebilirsiniz. Basit ihtiyaçlarımız:

  • Servisin sistem init seviyeleri 345 te başlaması,
  • Servis kendi kendine ölürse yeniden başlaması,
  • Başlamadan önce konfigurasyon hatası varsa kontrol etmesi ve bilgi vermesi.
  • Ölmeden önce çalışan nginx sürecine bilgi vermesi ve bağlantıları doğru kapatması

# nginx

# desctiption ve author servisin tanımı ve kimin tarafından 
# yerleştirildiğini belirtiyor
description "nginx http daemon"
author "Sinan Alyuruk <sinan.alyuruk [at] gmail.com>"

# start on ve stop on hangi init seviyelerinde servisin 
# başlayacağını söylüyor
start on runlevel [345]
stop on runlevel [!2345]

# servisin ortam değişkenleri ve pid dosyasını burada belirtiyoruz
env DAEMON=/usr/sbin/nginx
env PID=/var/run/nginx.pid

# servis başladıktan sonra fork() edeceğini ve alt (child) 
# süreçte devam edeceğini ve stdio output vermesini 
# beklediğimizi söylüyoruz
expect fork
console output

# respawn süreç ölürse yeniden başlamasını
# respawn 'ınde 10 kere 5 saniye ara ile yapılmasını belirtiyor
# oom eğer linux işletim sisteminde hafıza kalmaz ise hangi öncelikte 
# servisin öldürüleceğini belirtmek için kullanılıyor
respawn
respawn limit 10 5
#oom never

# burada pre-start scripti servisi çalıştırmadan önce konfigurasyon 
# dosyalarını test etmemize yarıyor.
pre-start script
        $DAEMON -t
        if [ $? -ne 0 ]
                then exit $?
        fi
end script

# Bu script ise süreclerin düzgün kapanması için nginx 'e komut veriyor
pre-stop exec $DAEMON -s stop

# nihayetinde servisimiz burada çalışmaya başlıyor.
exec $DAEMON -c /etc/nginx/nginx.conf

Bunlar dışında servisinizi kontrol etmek için post-start ve post-stop scriptleri de yazmanıza olanak sağlıyor.

php-fpm servisi için kullandığım başka bir betiği de aşağıda görebilirsiniz.

# php-fpm

description "PHP FastCGI Process Manager"
author "Sinan Alyuruk <sinan.alyuruk [at] gmail.com>"

start on runlevel [234]
stop on runlevel [!2345]

env DAEMON=/usr/local/sbin/php-fpm
env PID=/var/run/php-fpm.pid

expect fork
console output
respawn

# Test the php-fpm configuration (Upstart will not proceed if this fails)
pre-start script
        $DAEMON -t
        if [ $? -ne 0 ]
                then exit $?
        fi
end script

exec $DAEMON --fpm-config /etc/php-fpm.conf --pid $PID

Hepinize bol upstartlı günler.



10 April 2014

SSH nasıl 2-faktörlü doğrulama ile korunur? (Two-Factor Authentication)


authenticatorBu yazımda, Ubuntu SSH bağlantılarımızda Google Authenticator PAM modülü ile nasıl 2-faktörlü (2-step verification) hesap doğurlaması yapılır bunu inceleyeceğiz.

Kullanıcı adı ve şifrelerin güvenliğini sağlamak bilişim uzmanları için bile zaman zaman pek mümkün olmuyor. Ele geçirilen sunucu sistemlerinde kayıtlı binlerce hesap tek seferde çalınabiliyor. Zararlı yazılım yüklü bilgisayarlardan giriş yapmak, kötü niyetli yazılımlara hesap bilgilerini girmeniz hesabınızın çalınması ile sonuçlanabilir. İşin kötü tarafı, yıllarca hesabınızın çalındığından haberdar olmadan hesabınızı kullanmaya devam ediyor olabilirsiniz.

Hesap güvenliğimizi bir adım ileri götürerek SSH bağlantılarımıza 2 adımlı giriş nasıl entegre edilir inceleyelim;

Google Authenticator uygulamasını akıllı telefonunuza yükledikten sonra yapılacak basit bir aktivasyon işleminin ardından, ssh bağlantısı kurarken önce doğrulama kodunu telefonunuzdan öğrenerek kullanmanız gerekecek. DİKKAT; Authenticator hangi kullanıcı için aktif edildiyse sonraki işlemlerde sadece o kullanıcı SSH ile erişim sağlayabilir.

1.Adım;

Öncelikle akıllı telefonunuza Google Authenticator’ü yükleyin. Sonrasında sunucunuza bağlanarak aşağıdaki adımları tamamlayın;

sudo apt-get install libpam-google-authenticator

libqrencode3 otomatik olarak yüklenecek ve qr-code üreterek aktivasyon işlemini kolaylaştıracak.

2.Adım;

auth required pam_google_authenticator.so

yukarıdaki satırı aşağıdaki dosyanın başına ekleyin.

nano /etc/pam.d/sshd

aşağıdaki dosyada;

nano /etc/ssh/sshd_config

ilgili satırı bulup aşağıdaki gibi değiştirin,

ChallengeResponseAuthentication yes

3.Adım;

Şimdi cep telefonundaki uygulamayı aktifleştirelim; 2-faktör doğrulamalı kullanacağınız hesaba geçin ve aşağıdaki komutu çalıştırın,

google-authenticator

sorulan sorulara ihtiyaçlarınıza göre yanıt verdikten sonra ekranda kocaman bir qr-code oluşacak. Buradaki qr-code’u okutarak yada “secret key” yardımıyla cep telefonuzdaki Authenticator uygulamasını etkinleştirin.

Oluşabilecek terslikler için “emergency scratch codes” satırlarını biryere not edin. Buradaki kodlar tek kullanımlıktır. Console erişiminde tüm kullanıcılar 2-faktöre gerek kalmadan giriş yapabiliyor, bu yüzden bu kodları kaybetseniz dahi sorun değil.

sudo services ssh restart

İşlemi tamamladık, SSH sunucunuz 2-faktör doğrulamaya sahip. Public-key ile bağlantılarda ek doğrulama gerekmeyecek, bu da güzel yönlerinden.



08 April 2014

OpenSSL kalbimde derin yara


 

heartbleedGünlüğümüzün arabesk başlığı, dün akşam saatlerinde ortaya çıkan ve Internet üzerinde herkesi ciddi tehdit eden bir güvenlik açığına ithafen bu şekilde oldu. Dün yayınlanan bu güvenlik açığı openssl heartbleed ismini aldı.

Bildiğiniz gibi sistemci.co günlüğünün amacı, teknik terimlerden uzakta, IT çalışanları dışında arkadaşlara, olan biteni olabildiğince basit anlatma çabasını taşıyor.

SSL konusunda daha önceki yazımda bilgi vermeye çalışmıştım. Bugün karşılaştığımız bu güvenlik açığı, dünya üzerinde birçok sistemi ve kullanıcıyı etkilecek çok kritik bir hata.

Bu yazıyı yazdığım an itibari ile hata ortaya çıkalı ve çözümü yayınlanalı 24 saatten biraz daha fazla bir zaman oldu. Aslında son kullanıcı iseniz bu hata karşısında hemen önemli web sitelerindeki parolararınız değiştirmek, kredi kartlarınızı iptal etmek dışında  yapabileceğiniz pek birşey yok.

Ancak bir eticaret sistemi ve bunun gibi SSL güvenliği ile erişim sağlayan bir web sitesi, VPN sağlayıcısı iseniz ve bu yazıyı okuyana kadar bir önlem almadıysanız hala, boku yemiş durumdasınız çok afedersiniz.

Elbet kabalığın lüzümü yok, insan hali kul yapısı programlarda sistemlerde bu gibi hatalar kaçınılmaz, çözümü de var ancak burada ifade etmeye çalıştığım bu hatanın ciddiyeti ile ilgili çevremi bilgilendirmek elbette.

Kısaca bu vahim duruma yol açan yazılım hatasına değinecek olursak; herşey OpenSSL adında senelerdir, açık kaynaklı web sitelerinin SSL motoru olan bir yazılımın zaafiyetinden kaynaklı ortaya çıktı.

Netcraft ‘ın raporuna göre dünya üzerinde yarım milyondan fazla sistem bu açıktan etkilendi ve kullanıcı verileri, parolalar ve kişisel veriler 3. şahıslar tarafından erişilebilir vaziyete geldi.

Web sunucu dağılımı

Netcraft 2013 verilerini göre dünya üzerinde web sunucuları dağılımı kabaca yandaki gibi

  • Apache
  • Microsoft IIS 
  • Nginx
  • Other (google vs)

Dünya üzerinde Apache ve Nginx web sunucuları yaklaşık % 70 ‘lik bir paya sahip. Bu sunucuların çok büyük bir bölümünün SSL işlemleri için OpenSSL motorunu barındırdığını düşünecek olursak, durumun vehameti karşımıza çıkıyor.

Hata SSL işlemlerinde heartbeat (kalp atışı) protokolune bir saldırı sonucu, web sunucusunun hafızasında bulunan  bir bölümün saldırganın eline geçmesine sebebiyet veriyor. Bu hafiza birimi içine o web sitesinde çalışan uygulamadaki parolalar,kredi kartı bilgileri ve hatta erişim şifrelemekte kullanılan anahtar olması elbet muhtemel. CNET’te habere göre, 5 dakika boyunca zaafiyet altındaki Yahoo eposta sunucularına yapılan bir saldırı ile, 200 kişinin eposta erişim bilgileri açığa çıkartılmış bile.

Neyse çok karamsar olmak istemiyorum. Ama siz tedbirinizi almadıysanız alın. Biz Türküz abi bize bişi olmaz diye gelmeyin

Bu arada bug ile ilgili teknik detay isteyen buraya bakabilir.

Cin Ali cizimleri ile XKCD versiyonu ise burada.

 



Sunum Dosyası – Puppet ile Linux Sistem Yönetimi Otomasyonu


Özgür Yazılım ve Linux Günleri 2014 kapsamında yaptığım konuşmaya ait sunum dosyasına aşağıdaki linkten ulaşabilirsiniz. Aslında bu dosyayı daha önceden paylaşmıştım ama ilgili postu silivermişim. Bu nedenle yeniden ekleyeyim dedim.

Puppet ile Linux Sistem Yönetimi Otomasyonu

Etkinliğe katılan ve seminer hakkında güzel yorumları ile katkı veren herkese tekrar teşekkürler.


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler:



03 April 2014

2014 Yerel Seçimlerinde Partilerin Birbirleriyle Olan Rekabetinin Görselleştirilmesi


Her seçim sonrası boy boy görmeye alıştığımız renklendirilmiş haritalarda şehirler hangi parti en fazla oyu almışsa o partinin rengine boyanmış oluyor. Bu tür bir renklendirme o şehirdeki yarışın nasıl bir rekabet ile geçtiğini görmemizi engelliyor. Örneğin İzmir’de birinci parti CHP ise, İzmir kırmızı renge boyanıyor oysa ki orada AKP de ciddi bir oy oranına sahip. Rekabeti daha iyi görselleştireceğini düşündüğüm bir çalışma yaptım. Bu çalışmada; Devamını Oku […]

02 April 2014

Zpanel'da Roundcube WebMail Kullanıcı Şifre Değiştirme Plugin ayarları


Açık kaynaklı sunucu panelleri arasında zpanel en çok hoşuma giden oldu. Bir dostuma kurduğum sunucuda açılan maillerin kullanıcılarının WebMail üzerinde şifrelerini değiştiremediklerini öğrendim. Küçük bir araştırmadan sonra bir plugin aktifleştirmem gerektiğini anladım. Panelden panele epeyce farklı çözümler var ancak en güzel çözüm doğrudan sql çözümünü kullanmak.

Öncelikle /etc/zpanel/panel/etc/apps/webmail/config altında main.inc.php dosyasını editörümüzle açıyoruz.
$rcmail_config['plugins'] = satırını bulup aşağıdaki gibi düzeltiyoruz.

$rcmail_config['plugins'] = array('password');

daha sonra /etc/zpanel/panel/etc/apps/webmail/config altında db.inc.php dosyasını editörle açıp aşağıdaki satırı bulup tırnak işaretleri arasındaki bağlantı cümleciğini kopyalıyoruz.


$rcmail_config['db_dsnw'] = 'mysql://root:<şifreniz>@localhost/zpanel_roundcube';


sonra  /etc/zpanel/panel/etc/apps/webmail/plugins/password altında config.inc.php.dist dosyasını bulup 

#cp config.inc.php.dist config.inc.php

komutu ile kopyalıyoruz ve editörle açıyoruz.

1- Driver olarak sql kullanacağız.

$rcmail_config['password_driver'] = 'sql';

2. db.inc.php dosyasından kopyaladığımız cümleciği aşağıdaki kısma yapıştırıyoruz ancak sonunu zpanel_postfix olarak değiştiriyoruz. !önemli

$rcmail_config['password_db_dsn'] = 'mysql://root:<şifreniz>@localhost/zpanel_postfix';

3.query kısmınıda aşağıdaki gibi düzenliyoruz

$rcmail_config['password_query'] = 'UPDATE `mailbox` SET `password` = %c WHERE `username` = %u';

Kullanıcılar Kişisel ayarlar kısmında parolalarını değiştirebilirler.




01 April 2014

Seçtim, Seçmez Olaydım!


“Seçimde yenilenlerin seçim sistemini eleştirmesi adettendir.”

2 saat bekleyip OY verdim ama, nereye nasıl oy verdiğimi ve verdiğim oyun hangi partiye nasıl gittiğini 32 yaşındayım hala bilmiyorum.

Sevgili babacığım (memleketimiz) Giresun’u kim aldı diye sorunca CHP deyip geçtim ama neredeyse tüm belediyeleri AKP adayları almış, Giresun’u CHP nasıl almış diye merak etmeden de duramadım.

Giresunda AKP/CHP kaç oy almış, hangi belediyeyi kazanmış diye oturup hesap yaptım. *

giresun akp chp kazanan akp-chp_farkı  notlarım
alucra 1.030 31 akp 999 chp’den 34 kat fazla oy almış
bulancak 11.041 8.947 akp 2.094
çamoluk 817 akp 817 chp 0 oy almış
çanakçı 567 18 akp 549 chp’den 31 kat fazla oy almış
dereli 1.570 183 akp 1.387
doğankent 567 28 mhp 1074 oyla mhp, akp’den 2 kat fazla oy almış
espiye 5.376 539 akp 4.837 chp’den 10 kat fazla oy almış
eynesil 1.811 1.508 akp 303
görele 3.078 2.468 akp 610
güce 1.484 666 akp 818
keşap 2.373 1.233 akp 1.140 chp’den 2 kat fazla oy almış
piraziz 1.503 2.032 chp -529
şebinkarahisar 2.855 1.674 akp 1.181
tirebolu 3.902 2.816 akp 1.086
yağlıdere 869 66 akp 803
merkez 22.666 27.076 chp -4.410
61.509 49.285 sonuç 12.224 akp fazla oy almasına rağmen CHP WIN!

Dediğim gibi Hala ANLAMIYORUM! 12.200 fazla oy almasına rağmen Giresun’u nasıl CHP almış oluyor.

Sevgili Siyasiler; Lütfen
* Merkez Belediye kavramını kaldırın. Şehir belediye başkanları tüm İlin oylarıyla seçilsin.
* 2. Mahmut’tan kalma ve her seçimlerde cinayet işleten muhtarlık kurumuna son verin.
* Asker er/erbaşların oy kullanmasının önündeki engelleri kaldırın.
* Sandığa gitmeden E-Devlet şifresiyle oy kullanmanın önünü açın.

18 Yaşında Oy kullanmaya başlayıp, 32 Yaşında hala “Belediye Başkanı Nasıl Seçilir” bilmeyen bu edepsizin de (yani benim) oy kullanma hakkını iptal edin!

Bu arada, Giresun dedik; Bir Giresun Türküsü çalmadan konuyu kapatmak olmaz.



AKP’li Olup Twitter’a, CHP’li Olup Seçime Girememek!


İster benim gibi AKP’ye oy veren %45 içinde olun, ister diğer herhangi bir fikirden insan olun; Twitter ve Youtube’a girmek istediğinizde karşınızda Kapı gibi bir yasak tabelası çıkıyor…

Biz ise

sudo nano /etc/hosts

deyip

199.59.150.7 twitter.com www.twitter.com
199.59.148.12 t.co www.t.co
199.59.150.7 twitter.com www.twitter.com
199.59.148.12 t.co www.t.co
199.16.156.107 mobile.twitter.com
199.59.148.84 pic.twitter.com s.twitter.com
199.59.149.199 api.twitter.com
199.59.148.11 translate.twitter.com
199.59.150.39 translate.twttr.com
74.125.224.225 youtube.com www.youtube.com
74.125.224.225 youtube.com
74.125.224.225 www.youtube.com
74.125.224.71 m.youtube.com
74.125.224.136 gdata.youtube.com

değerlerini host dosyamıza ekleyip Twitter ve Youtube’a sıkıntısız giriyoruz.

Hepi topu bu kadar sürecek bir işlem için(!) açıklama üstüne açıklama yapmaya; yasak koyduk diye ahkam kesmeye; dünyanın gerisinin girebildiği bir platforma erişimi engellemeye çalışmaya ne gerek var.

Siyasiler artık İNTERNET’in engellenemez bir İNSAN HAKKI olduğunu KABUL ETMELİDİR!

Kaynakça:

http://unblocksit.es/tr/unblock/youtube.com/

http://unblocksit.es/tr/unblock/twitter.com/

http://unblocksit.es/tr/unblock/facebook.com/

http://unblocksit.es/tr/unblock/reddit.com/

http://unblocksit.es/tr/unblock/imgur.com/



26 March 2014

Seminer – Puppet ile Linux Sistem Yönetimi Otomasyonu


Her yıl LKD tarafından düzenlenen Özgür Yazılım ve Linux Günleri etkinliğine elimden geldiğince katkıda bulunmaya çalışıyorum. Bu kapsamda, bu sene 28-29 Mart tarihlerinde, İstanbul Bahçeşehir Üniversitesi Beşiktaş Kampüsü’nde gerçekleştirilecek olan Özgür Yazılım ve Linux Günleri 2014′de  ben de “Puppet ile Linux Sistem Yönetimi Otomasyonu” başlıklı bir konuşma yapıp Sistem Yönetimi, Otomasyon, Standardizasyon kavramlarından ve Puppet kullanarak sunucu yönetiminin nasıl otomatize edilebileceğinden bahsedeceğim.

Etkinlik sayfası şurada: http://www.ozguryazilimgunleri.org.tr/2014/
Etkinlik programı ise şurada: http://www.ozguryazilimgunleri.org.tr/2014/etkinlik-programi-2/


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,



24 March 2014

OpenVPN için ovpn profil dosyası hazırlama


Vpn seçenekleri içerisinde ücretli, ücretsiz bir çok vpn seçeneği bulunmakta. Bunlardan ücretsiz olanlar insanın gözünde bilgilerimi ( şifre vb. ) kaydediyor mu acaba endişesi yaratırken, ücretli olanlar da ücretsizler gibi aynı endişeleri yaratabilir. Ek olarak bu hizmetler de bir çok müşteriye hizmet verdikleri için trafik vb. limitlemeler mevcut.

Bu tür endişeleri taşımamak ve herhangi bir limitlemeden etkilenmemek için, 5 dolara alacağınız bir sanal sunucuya ( vds ) openvpn kurarak, akıllı telefonunuzdan, bilgisayarınızdan farklı sertifikalar ile endişe duymadan bağlanabilirsiniz. Sunucu kiralarken dikkat etmeniz gereken aylık trafik hakkı  yüksek olan bir sunucu tercih etmek.

OpenVPN kurulumunu önceki yazılarımda bahsetmiştim. Burada oluşturduğumuz sertifika ve client özelliklerine göre android, iphone ve windows bilgisayarınızda kullanacağınız openvpn connect programı için .ovpn uzantılı openvpn profil dosyası hazırlamayı inceleyeceğiz.

CentOS sunucusuna openvpn kurulumu anlatırken kullanıcı adı ve şifre ile bağlantı gerektirmeden sadece sertifikaları kullanılarak fedora ( openvpn connect programı ile windows için de geçerlidir. ) üzerinden vpn bağlantısını anlatmıştım. Burada ek olarak android akıllı telefonundan bağlanırken ovpn dosyasına kullanıcı adı ve şifreyi de ekleyeceğim. Siz isterseniz bu satırı silerek kullanıcı adı ve şifre istemeden bağlanmasını sağlayabilirsiniz.

Telefonunuz için sertifika oluşturma

Bir client ve server için easy-rsa 2.x ile sertifika oluşturmayı openvpn kurulumu sırasında anlatmış idim. Burada kurulum sırasında kullandığımız vars dosyasındaki seçenekler ile telefon için ayrı bir sertifika oluşturacağız.

# cd /etc/openvpn/easy-rsa
# source ./vars
# ./pkitool android

pkitool scriptini çalıştırdıktan sonra aşağıdaki şekilde satırın en sonunda bir hata alırsanız,

failed to update database
TXT_DB error number 2

Bunun sebebi her oluşturduğunuz ssl sertifikası aşağıdaki konumda kayıt altına alınıyor ve unique bir CN sertifika olabilmesi için sertifika oluşturuyor gibi gözüksede android.crt dosyasının içeriği boş oluyor.

/etc/ssl/certs

Böle bir durumda vars dosyasının KEY_CN satırını ” export KEY_CN=android ” şeklinde düzenleyerek source ve pkitool komutunu tekrar çalıştırın.

android isminde client sertifikasını vars dosyasını baz alarak oluşturduk. keys dosyası içerisine android.crt, andoid.csr ve android.key adında sertifikaları içeren dosya oluşturdu. Bu dosyalardan android.crt ve android.key dosyalarının içindeki sertifikaları kullanacağız.

VPN için kullanıcı adı ve şifre oluşturma

Ek olarak kullanıcı adı ve şifre bağlantısınıda aktif edecek iseniz, sunucuda bir kullanıcı oluşturmanız gerekiyor. Burada PAM kimlik doğrulama sistemi ile yapacağız. Bunun için sunucuda android isminde kullanıcı oluşturup, şifre koymanız yeterlidir.

# adduser -M -s /sbin/nologin android
# passwd android

Ovpn dosyasının hazırlanması

Örnek bir .ovpn dosyası aşağıdaki gibidir. <ca> </ca>, <cert> </cert> ve <key> </key> aralarına kurulum sırasında oluşturduğunuz ca.crt, client.crt ve client.key dosyalarının içinde yazan sertifikaları BEGIN CERTIFICATE ve END CERTIFICATE satırlarınıda içerecek şekilde kopyalayıp, yapıştırın.  Bu dosyayı .ovpn formatında kaydederek, android telefonunuzun SD kartına kaydediyoruz.

client
proto udp
remote 10.10.10.10
port 1194
dev tun
comp-lzo adaptive
persist-key
persist-tun
auth-user-pass  # bağlantıdan önce kullanıcı adı ve şifre sor
route-metric 1
resolv-retry infinite
nobind
ns-cert-type server

<ca>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----
</key>

android.ovpn dosyasını telefonumuzun SD kartına yükledikten sonra aşağıdaki resimdeki gibi ekliyoruz.

.ovpn dosyasını yüklediğiniz konumdan seçtikten sonra eğer kullanıcı adı ve şifre aktif ise kullanıcı adı ve şifreyi girdikten sonra connect demeniz yeterlidir.



20 March 2014

Mısır İletişim Bakanlığı Açık Kaynak Yazılım Stratejisini Benimsedi


Atef Helmy
Mısır İletişim ve Bilgi Teknolojileri Bakanı Atef Helmy bakanlığın özgür ve açık kaynaklı  yazılımları (FOSS) destekleme stratejisini benimsediğini duyurdu.


Helmy, yayınlanan strateji belgesinde “Özgür yazılım, temelinde yazılım kodları özgürce erişilebilen, değiştirilebilen ve dağıtılabilen bir yazılımdır” diyor ve ekliyor; Mısır’daki açık kaynak yazılım endüstrisinin gelişimi bağımsız teknolojilerin başarısına, yeni iş alanları sağlanmasına ve kamu ve özel sektör tüketicilerinin internet ve iletişim teknolojilerinden faydalanmasına yardım edecek.

Mısır’daki Açık Bilgi Vakfı (OKF) gönüllüsü Tarek Amr ise iş ve devlet kuruluşlarının açık kaynak yazılımları kullanma stratejisinin  bireylerin bu yazılımları denemesini sağlayacağını bu yolla onları cesaretlendireceğini söylüyor.

Amr bir yazılım mühendisi, ayrıca bu stratejinin devletin özgür yazılımlar sağlayan firmalardan teknoloji hizmeti satın almasına yardım edeceğini ve bunun yazılım lisansı masraflarını kısacağını ekliyor. “Açık kaynak Mısır için çok uygun, GSYH’nın büyümesini hızlandıracak, ulusal güvenlik seviyesini yükseltecek ve bireysel sermayenin gelişmesine yardım edecek ” diyor.

Bakanın açıklamasına göre, özgür yazılım stratejisini harekete geçirecek olan strateji uygulama komitesi, bakanlık danışmanları, kamu kurumları ve sivil organizasyonlar arasında süreç koordinasyonunu sağlamak üzere  Yazılım Mühendisliği Yeterlilik Merkezi (SECC) görevlendirildi.

Süreç SECC yönetiminin FOSS komitesinden uzmanları da kapsayacak ve ilgili girişim ve programları izleyecek şekilde yeniden yapılanmasını da içeriyor.

Bakanın belirttiğine göre bu stratejinin hedefleri vatandaşlara ucuz bilgi hizmetleri sunmak, kamu sektörünün şeffaflığını arttırmak, internet ve bilgi teknolojileri sektörünün gelişimini desteklemek, teknoloji çözümlerinin maliyetini düşürmek ve küçük-orta işletmeleri desteklemek olarak sıralanıyor.

2012 Yılı başlarında bir grup eylemci  hükümetin Microsoft ile 44 Milyon Dolar’lık bir anlaşma imzalamasının ardından Mısır’da açık kaynaklı yazılım kullanılması için çağrı yapmıştı.

(Çeviridir, yazının kaynağı: http://www.dailynewsegypt.com/2014/03/19/ministry-communication-adopts-open-source-software-strategy/)


19 March 2014

Fırat Üniversitesi Java Günü


21 Mart 2014 Cuma günü Fırat Üniversitesi Yazılım Kulübü‘nün düzenlediği Java gününde hep birlikte Java, Java EE üzerine konuşacağız hatta akşamında birlikte kod yazacağız. Herkes davetlidir.firat_acm_java_day2



17 March 2014

LG G2 telefonda radyo


Türkiye ‘ye ithal edilen LG G2 (D802) telefonlarda donanımsal radyo özelliği olmasına rağmen -sanırım- TRT bandrol har(a)çları ve vergilendirme nedeniyle bu özellik yazılımsal olarak kapatılmış durumda. Stock LG yazılımı kullanan telefonlara radyo uygulaması kursanız dahi radyo çalışmıyor. Telefondaki android işletim sistemine rooting işlemi uygulayarak donanımsal radyoyu kullanmak mümkün olabiliyor. Root işlemi için konuyla ilgili yazımı …

16 March 2014

Linux ile LG G2 root işlemi


Rooting (cihaz üzerinde root [yönetici] yetkilerini kazanma) işlemi ile cihazınız üzerindeki üretici programlarını kaldırabilir, root yetkileri isteyen ve cihaza doğrudan erişim isteyen uygulamaları kurabilir, üreticinin sizden gizlediği özellikleri (örneğin LG G2′de radyo var ama bandrol lisanslama maliyetleri yüzünden Türkiye’de radyo özelliği kapalı satılıyor) kullanabilirsiniz.

Yine rooting işlemi ile telefonuzun batarya ömrünü uzatacak işlemler yapabilir veya CPU performansını arttırabilirsiniz. (overclocking)

Ayrıca rooting işlemi ile telefonunuza özel ROM kurabilir, telefonunuzun üreticisi dışındaki android versiyonlarını kullanabilirsiniz.

Başlamadan önce bazı uyarılar:

- Rooting işlemi sonucunda cihazınız garanti dışı kalabilir.
- Rooting işlemi riskli bir işlemdir. Telefondan, USB kablodan veya elektrikten kaynaklanan sorunlar sebebiyle işlem yarıda kalırsa cihazınız kullanılmaz hale gelebilir.
- Root edilmiş LG G2 cihazlar, LG tarafından yayınlanan otomatik güncellemeleri (OTA-On The Air updates) alamaz, manuel olarak yapmalısınız.

Not : Bu sayfada anlatılanlar bilgi amaçlı olup, yazar bu işlemlerin yapılmasını önermemektedir. Yapılan işlemlerden kaynaklanabilecek teknik arıza ve olası yasal yaptırımlardan dolayı oluşacak sorunlardan yazar sorumluluk kabul etmeyecektir.

Linux kullanarak LG G2 root için aşağıdakiler yapılmalıdır.

- http://downloads.codefi.re/autoprime/LG/LG_G2/ioroot19.zip dosyasını indirin ve açın.
- Telefonda Settings-> General-> About Phone-> Software Information menüsüne girin.
- “Build number” üzerine 7 kez tıklayarak “Developer Options” seçeneğinin açılmasını sağlayın.
- Settings-> General -> Developer Options menüsüne girin.
- Developer Options -> Debugging altındaki “USB Debugging” ve “Allow mock locations” seçeneklerini aktif hale getirin.
(USB Debugging açılmaz ise, Developer Options yanındaki On/Off butonuyla kapatıp açabilirsiniz.)
- Telefonunuzu USB kablonuzla linux bilgisayarınıza bağlayın ve “dmesg |grep “Product:” komutuyla cihazınızın tanındığından emin olun.
- Bir terminal emulatoründe daha önce indirdiğiniz ioroot19.zip içindeki root.sh dosyasını çalıştırın.
- Script sizden cihaza USB bağlantıyı kesmenizi, daha önce açtığınız “USB Debugging” ‘i kapatıp, 2-3 sn sonra tekrar açmanızı isteyecektir.
- Daha sonra cihazı tekrar USB porta bağlayın.
- Cihaz tekrar algılandıktan sonra, script cihaz üzerine bir patch atarak, superuser adlı bir uygulama kuracaktır.
- Scriptin çalışması bittikten sonra, cihazınızın ekranında “SuperUser” adlı bir uygulama görüyorsanız root işlemi başarıyla tamamlanmış demektir.



14 March 2014

Nvidia ile Başım Dertte, İntel İle Devam


Askerde olmak yeni bir iş bulmak için çok güzel bir fırsat doğurdu. Artık yeni işyerim Mersus Prodüksiyon.

Bana sağladıkları dizüstü bilgisayar’a (Asus X550L) müsadeleriyle ilk iş olarak Ubuntu 13.10 kurdum.

Nvidia 740M Ekran Kartı var ve ekran sürücülerini her yüklemeye çalıştığımda siyah ekranda kalıp tüm bilgisayarı yeniden kuruyordum.

Bu kadar uğraşmaya gerek olmadığını farketmem 5 defa kurmaktan sonra oldu.

Siyah ekranda takılınca ctrl + f1 ile terminale gelip

sudo dpkg-reconfigure xserver-common

komutunu vermek, XServer ayarlarının sıfırlanması için yetiyor.

Ubuntu 13.10 altında Nvidia Ekran Kartını gösteremedim. Fazla da zorlamayacağım, Ubuntu 14.04 çıkmasına 1 ay gibi bir zaman kaldı. LTS sürüm olacağı için hem Nvidia cephesinden, hem Ubunctu cephesinden daha geniş bir destek bekliyoruz.

Bu arada, şu güzel parmak efsanesini de hatırlamadan geçmeyelim.



Redmine smtp mail sorunsalı


Remdine 2.3.1 sürümünde bilgilendirme maillerini smtp ile almaya çalıştığınızda aşağıdakine benzer hatalar alabilirsiniz: wrong argument (NilClass)! (Expected kind of OpenSSL::SSL::SSLContext)) Bu sorunun 2.5.4 sürümlü mail gem’inden kaynaklı. Bu sorunu gem’in 2.5.3 sürümünü kurup redmine’ı bu sürümü kullanacak şekilde ayarlayarak çözebilirsiniz: gem install mail -v 2.5.3 İlgili versiyonu kurduktan sonra Redmine’ın home dizininde bulunan “Gemfile.lock” dosyasında […]

05 March 2014

Bir SYN-FLOOD Hikayesi


Syn FloodYönetmekte olduğum bir sisteme sürekli olarak SYN paketleri gönderildiğini farketmemin üzerine çalışmalara başladım. Paketlerin gönderilme hızı değişkenlik gösteriyordu; çoğunlukla 1 paket/saniye hızında seyreden trafik zaman zaman saniyede 100 SYN paketi geçiyordu. Yavaş ulaşan paketler gerçek IP’lerden gelirken, hızlı gönderilenler değiştirilmiş kaynak IP sine (IP Spoofing) sahipti -ulaşan paketlerin TTL Time To Live değerlerindeki farklılıktan bunu tespit etmek mümkün-.

Evvelce etkinleştirdiğim SYNCookie özelliği sayesinde kaynak israfı çok artmıyor, sistemim cevap veremez hale gelmiyordu. (yoğun bir saldırıda SYNCookie CPU kullanımını sature edebilir)

netstat -ant|grep SYN_REC

SYNCookie özelliği sayesinde yukarıdaki komutu çalıştırdığımda SYN_REC durumunda bağlantı görmüyordum. Fakat SYNCookie gelen her SYN paketine SYN+ACK cevabı dönüyordu. Bunun önüne geçmeliydim. SYNCookie önlemine ek olarak, aynı IP’den gelen çok fazla SYN paketi olduğunda, bu IP lere SYN+ACK cevabı dönülmeyerek kara listeye alınmasının uygun olacağına karar verdim.

iptables -N SYNFLOOD
iptables -A INPUT -p tcp --syn -j SYNFLOOD
iptables -A SYNFLOOD -m recent --set --name KARALISTE
iptables -A SYNFLOOD -m recent --update --seconds 10 --hitcount 20 --name KARALISTE -j DROP

İki günlük çabanın ve trafik incelemesinin ardından yukarıdaki satırları iptables üzerine tanımladım. Bu satırlar sayesinde dışarıdan sunucuya doğru gelen, 20paket/10saniye oranı aşan tüm tekil IP adresleri kara listeye alınacak ve bu oranın üzerinde kaldıkları süre boyunca gönderdiği SYN paketleri DROP edilecek. Bu orana karar verirken sunucunun trafiğini bir süre incelemem ve ona göre karar vermem gerekti. Bazı sistemler için bu oran agresif sayılabilir

İşlem tamamlandı, öncesinde sunucuyu sürekli meşgul edenler, bu çalışma sonrasında kısa süreli ziyaretler dışında uğramaz oldular.

Bana gelen saldırının odaklı bir saldırı olduğunu düşünmüyorum. Büyük bir bütünün, bir parçası olarak sistemin üzerinden trafik geçiriliyor olma ihtimali yüksek. Daha odaklı bir saldırı karşısında farklı savunma yöntemleri geliştirmek gerekeceği açık.

Gelelim izleme kısmına. Kimler bu filtreye takılıyor, anlık takılanların paket akışı, filtre kuralına takılan paket sayısı gibi bilgileri alalım şimdide;

cat /proc/net/xt_recent/KARALISTE

Ubuntu tabanlı sistemlerde yukarıdaki komut ile iptables filtresinde tanımladığımız isme göre oluşan dosyayı görüntülüyoruz. Bu dosyanın içinde, belirtilen hitcount oranın üzerine çıkan kaynak IP adresleri listeleniyor ve istenmeyen davranışı tekrarladıklarında zaman bilgisi güncelleniyor. Ayrıca TTL bilgisi gibi ek bilgiler de yeralıyor.

tcpdump -nni eth0 'tcp[13] = 2'

Yukarıdaki komut ile saldırı anında veya normal izleme sırasında sadece SYN bayraklı TCP paketlerini izleyebiliyoruz.

watch -n 0.5 'iptables -vL'

Yukarıdaki komut ile iptables üzerinde tanımladığımız kurallardan geçen trafik bilgisi anlık olarak izlenebiliyor.

Eklemek istedikleriniz veya farklı önerileriniz için çekinmeden yorum bırakabilirsiniz.



03 March 2014

Linux'ta zamanlanmış görevlerde (cronjob) iş çakışmasını önlemek


Bir crontab girdisi belirli zaman diliminde çalışması için ayarlanmışsa (örneğin dakikada bir) ve bir sebepten yapılan işlemin belirtilen zaman diliminden fazla sürme ihtimali var ise, aynı komut bir öncekinin bitmesini beklemeden, zamanı geldiğinde tekrar çalışmak isteyeceğinden çakışma gerçekleşebilir.

Örneğin dakikada bir belirtilen kaynaktaki dosyaları işleyip veritabanına atan ve sonrasında kaynak dizini boşaltan bir uygulamamız için zamanlanmış görevimiz var. Diyelim ki gün için de öyle bir dakikaya geldik ki, o an tahmin edemediğimiz, öncesinde kestiremediğimiz şekilde, kaynağımıza fazladan dosyalar geldi. Yani o dakikada çalışan zamanlanmış görevin dosyaları işleyip veritabanına yollama işlemi 1 dakikadan fazla sürecek. Henüz program işlemini bitirmemişken 1. dakikanın sonunda aynı zamanlanmış görev, zamanı geldiği için tekrar çalışacak. Bu da veritabanında aynı verilerin tekrar etmesine sebep olacak.

Bu durumdan sakınmak için flock komutundan yararlanabiliriz.

flock'un basitçe kullanımı şu şekilde
flock -w 5 /herhangi/bir/yol komut
-w 5: eğer komut kullanımdaysa, belirtilen saniye kadar bekle. belirtilen sürede komut boşa çıkar ise, komutunu çalıştır.
/herhangi/bir/yol: Var olan herhangi bir dizinin altına belirleyeceğiniz yol. flock belirttiğiniz yola boş dosya oluşturacak.
komut: Çalıştırmak istediğiniz komut. mv, cp, wget, rm vs gibi.

flock kullanımını bir örnek ile göstereyim.

Görevimiz /dizin/kaynak/ yolu altındaki tüm dosyaları /dizin/hedef/ yoluna kopyalamak olsun.

Bunun için komut satırına şu şekilde bir girdi giriyoruz.

flock -w 0 /space/deneme cp /dizin/kaynak/* /dizin/hedef/

/dizin/kaynak/ yolunun altına büyük dosyalar atarak, kopyalama işlemi gerçekleştiren komutu çalıştırın.
Kopyalama işlemi devam ederken, aynı komutu terminal'de başka bir sekmede girmeyi deneyerek neler olduğunu görebilirsiniz.

Kaynak: http://www.elevatedcode.com/2013/05/07/flock-for-cron-jobs.html

01 March 2014

Hızlandırılmış PING


Ping komutunun alışılagelmiş hızı içinizi baymaya başladıysa;

Linux tabanlı sistemlerde -i parametresi ile hız arttırılabiliyor. 0.2 saniyeden daha hızlı olsun istiyorsanız root yetkilerini kullanmanız gerekiyor.

sudo ping -i 0.1 localhost

Windows tabanlı sistemlerde üçüncü parti uygulamalar kullanılması gerekiyor. hrPING hızlı ping atabilme yeteneğine sahip.

hrping -s 100 -t localhost

Artık ping komutundan nasıl performans alınacağını biliyorsunuz, hızlı vızıldamalar.



24 February 2014

Centos – Ramdisk Oluşturma


Sunucularda ramdisk kullanım amacı, genel olarak yoğun disk kullanıma neden olan sistemlerde, sunucunun resetlenmesinde verilerin kaybolmasının önemli olmadığı dosyaların ( tmp dizinine yazılan mysql dosyaları vb. ) ram alanında tutularak sunucunun performansını arttırmak içindir.

Bir sunucunun en yavaş donanımı harddisktir. Özellikle yoğun kullanılan mysql sorgularında mysql, tmp dizinine yoğun şekilde okuma yazma yaptığından harddisk buna yetişemez ve sorguların birikmesine, sunucu loadlarının yükselmesine, swap alanının dolmasına, bir web sitesi barındırılıyor ise sitenin geç açılmasına varan sebeblerin önüne geçmek için mysql tmp dosyası ramdiskte tutulur. Bu sayede mysql sorguları birikmez ve daha hızlı sql sorgularına cevap verebilir.

Ram Disk Yapılandırması

Centos 6 üzerinden 512 Mb lık ramdisk nasıl yapıldığını bakacak olursak,

İlk önce grub.conf dosyasında bulunan kernel satırının en sonuna “ramdisk_size=524288″ ( KByte cinsinden değer ) eklememiz gerekiyor. Bu işlemden sonra sunucuyu resetlememiz gerekir ki grub.conf dosyasında yapmış olduğumuz değişiklik algılansın.

title CentOS (2.6.32-431.5.1.el6.x86_64)
	root (hd0,0)
	kernel /vmlinuz-2.6.32-431.5.1.el6.x86_64 ro root=/dev/mapper/vg_test-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=trq LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_test/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_DM rd_LVM_LV=vg_test/lv_root rhgb quiet ramdisk_size=524288
	initrd /initramfs-2.6.32-431.5.1.el6.x86_64.img

Bu satırı eklemememiz durumunda mkfs komutu sırasında aşağıdaki şekilde hata almanız yada işlem sonrası test etmek amacı ile sunucunun resetlenmesi sonrası ramdisk oluşmaması mümkün.

mkfs.ext2: Filesystem larger than apparent device size.

Sunucu resetledikten sonra aşağıdaki işlemleri gerçekleştiriyoruz,

# mkfs -t ext2 -m 0 -q /dev/ram1 524288
# mkdir -p /ramdisk
# mount /dev/ram1 /ramdisk
# chmod 777 /ramdisk
# df -H | grep ramdisk

Filesystem                   Size  Used Avail Use% Mounted on
/dev/ram1                    529M  406k  529M   1% /ramdisk

Ram üzerinde 512 Mb bir alan ayırarak ramdisk dizinine bağladık, bu  sayede mysql conf ( my.cnf ) dosyasında geçen tmp satırını “/ramdisk” olarak düzenlediğimizde artık mysql tmp dizini olarak ram üzerinde ayırdığımız alanı kullanacaktır. Bu sayede disk üzerinde i/o yükünü azaltarak, sunucudan daha iyi bir performans alabiliriz.

İnit Scripti

Eğer sunucuyu yeniden başlatırsak ne olacak? Yaptığımız ayarlar sıfırlanacaktır. Ayarların gitmemesi için bir init.d scripti oluşturarak, sunucunun yeniden başlaması sırasında bu script çalıştırıp, ramdisk ayarlarını tekrar yapılandırılmasını sağlayacağız.

# vi /etc/init.d/ramdisk.sh

ramdisk.sh dosyasına aşağıdaki scripti yazıyoruz.

#!/bin/sh
mkfs -t ext2 -m 0 -q /dev/ram1 524288
[ ! -d /ramdisk ] && mkdir -p /ramdisk
mount /dev/ram1 /ramdisk
chmod 777 /ramdisk

Daha sonra ramdisk.sh dosyasına çalıştırma izni verip, rc.local dosyasına sunucunun boot sırasında scriptin çalışması için ekliyoruz.

# chmod +x /etc/init.d/ramdisk.sh
# echo '/etc/init.d/ramdisk.sh' >> /etc/rc.local

 



İzmir İktisat Kongresinde Bilişim


V. İzmir İktisat Kongresinde Bilişim Politikaları Panelinde 31 ekim 2013 tarihinde yaptığım konuşma. izmir 5. iktisat kongresindeki sunumum

Bu tür önemli etkinlikler ülkenin Bilgi Toplumu, Bilişim, Ar-ge İnovasyon gibi politikaların geniş kitlelerin gündemine girmesi ve geniş kamoyunca tartışılması için iyi fırsattır. Ama, ülkemiz dar politik tartışmalar aşıp, ülkenin geleceği ilgilendiren önemli konuları konuşamadı. Cumhurbaşkanının konuşmasında “Bilgi” boyutuna değindi, ama köşe yazılarına bile yansımadı. Kıyaslama için, bir önceki seçimde Merkel’in ana teması Almanya’da inovasyon idi.

Bilişim ve İnterneti Nasıl Görüyorum

Önce Bilişim ve İnterneti nasıl görüyorum konusunda bir kaç şey söylemek istiyorum. İnterneti, Bilişim, bilgi toplumu, ar-ge, inovasyon gibi yeni gelişmeleri temsil eden bir sembol olarak alıyorum. Ve interneti sanayi devriminden daha önemli bir gelişme olarak görüyorum. İnsanlık şimdi Bilgi Toplumuna geçişin sancılarını yaşıyor. Bugün temel zenginlik kaynağı bilgi, ar-ge ve inovasyondur. Dünyanın gündemi, emek ve doğal kaynak yoğun bir ekonomi ve toplumsal yapıdan, bilgi yoğun bir ekonomi ve topluma geçiştir. Tüm yaşamı kökten değiştiren bir sürecin içindeyiz. Bu değişim kendi kültürünü yaratıyor. Kısaca devrimsel bir gelişme ile karşı karşıyayız. Bunun için sistematik, bilimsel, bütünsel bir yaklaşım gerekli.

Bardağın Boş Tarafı

Türkiye’de Bilgi Toplumu ve Bilişim konularında önemli gelişmeler oluyor. Ama, ben bardağın boş tarafına bakacağım, ve onu doldurma konusunda bazı öneriler getireceğim. Kısa vadede değil, uzun vadede nereden nereye geldiğimize bakmaya çalışacağım.

– 2003 Bilişim Zirvesine Başbakanımız Almanyadan telekonferansla başladı ve özetle “Yazılımda Türkiye Geliyor!” mesajını verdi. Bugün, Türkiye dünya yazılım piyasasında önemli bir oyuncu değil.

– 9. planda ar-ge’ye ayrılan payın ulusal gelir içindeki payın %1.5′e cikması hedeflendi. Ama, TUIK rakamları %0.86 olduğunu gösteriyor. (simdi %0.96)

– 2005 Yılında Bill Gates gelince ülkenin gündemine silicon vadisinden esinlenen “Bilişim Vadisi” girdi. 9. planda yer aldı. Araştırmalar yapıldı, Bakanlar Kurulundan bu yönde bir karar da alındı. Şu anda benim bildiğim raflarda bekliyor. (MAM’da minyatör olarak başladı.)

– Ülkemizin 2006-2010 yılını kapsayan Bilgi Toplu Strateji ve Eylem Planı yapıldı. DPT’nin değerlendirmesine göre zamanında %50 kadarı bitti. Bu güne kadar %63′ü bitti. Fakat, devamı olan Strateji ve Eylem Planı yapım sürecinde. Bu ikinci Strateji katılımcı bir şekilde hazırlanıyor, geniş bir paydaş kesiminden görüş alındı. Ama, bunun 2011 başında hazır olması anlamlıydı. Avrupa Birliğinde benzeri bir proje bittiginde yenisi hazır oluyor ve bir değerlendirme raporu yayınlanıyor.

Uluslarası İndekslerde Türkiye

Uluslarası indekslerde ve dünyadaki konumuza bakarsak; kabaca dünya ortalaması yakaladık, bazı konularda öne geçiyor olsakta genelde Avrupa ve OECD’nin arka sıralarındayız.

İnternet kullanımında henüz %50′yi bulamadık. Bu TUIK’in Ağustos 2013′te açıkladığı, 2013 nisanında yaptığı anket sonuçları, ve 15-74 yaş aralığını kapsıyor. Şehir-Kırsal ve Erkek-kadın arasında ciddi bir fark var. Türkiye genelinde ortalama %49, Erkek %60, Kadın %39. Kent’te bu (58,68,48) Kırsalda ise (27, 39, 19). İnterneti devamlı kullanma (en az haftada bir) oranı ise %40. İnsani gelişme indeksinde 90/192, sosyal kapitalde ise 60/122, İnovasyon indeksinde 68/142, internet kullanımında ise 62/142 sırada. Birleşmis Milletlerin e-devlet indeksinde epey salınımdan sonra 80., e-katılımda ise 111. sıradayız. ITU’nun fiyat sepetinde 157 ülke arasında 61, ICT gelişme indeksinde ise 69/142 konumdayız. Dünya Genişbant raporunda sabit hatlarda %10.5 ile 70/173′teyiz. Dünya ekonomik Forumunda indeks girdileri ve hesaplama yöntemini değişiyor ve bizde epey bir salındık: son yıllarda 52, 55, 69, 76, 55, 52 sıradaydık. World Wide Web vakfı webindex’in 81 ülke arasında 58 olduk. Detaylara bakınca, erişim hız, kalite ve fiyatını ve ilgili eğitimi ölçen Erişim İndeksinde 54., özgürlük ve açıklık indeksinde 58, paydaşlara kendi dillerindeki içeriğin kalitesi ölçen İçerik indekinde 59. ve toplum, ekonomi, siyaset ve çevrede olumlu gelişmeleri ölçen katkı/güçlendirme indeksinde ise 57. sıradayız.

Bazı Temel Sorunlar

Sektörde rekabet eksikliği.

Kağıt üzerinde rekabet konusunda eksik yok ama gerçek öyle gözükmüyor. Kamuda bir yandan TT’ye iç güdüsel olarak koruma alışkanlığı sürüyor. TT hukuki olarak artık bir özel kuruluş olmasına rağmen, bir kamu şirketi gibi davranılıyor. Örneğin, merkezi hükümet telefon hizmetini ihaleyle almıyor; yani doğrudan TT’den almaya devam ediyor. Bir kaç ay önce bakanlık ve BTK’ya geçiş hakkı konusunda çabaları için STK’lar teşekkür bildirgesi yayınladık. Ama, fiber yatırımı yapmak isteyen oparatörler hala şikayetçi. Kablo-TV de yapılan devleştirme sonucunda kablo TV üzerinden internet dünyaya kıyasla gelişmedi. Hukuki anlaşmazlık yıllardır sürüyor. Son zamanlarda şirketlerden biriyle olan sorun çözülmüş ama büyük oyuncularla mahkeme devam ediyor. Sonuç olarak, kablo TV ve kablo TV üzeriden telekom ve internet hizmetlerinde önemli bir gelişme yok. Rekabet Kurumunun TT’yi özelleştirmesine onay vermesinin önemli gerekçesi kablo-TV altyapısının hakim operatöre karşı alternatif oluşturma potansiyeli idi. Tübitak ve Türksat’in kamudan bilişim işlerini ihale yapılmadan alması, pek çok projenin kamu ihale yasası kapsamından çıkartılması ciddi bir şikayet konusu. Kamu ihale yasası daha çok inşaat ve benzeri işlere uygun tasarlandığı, bilişim projelere uygun olmadığı bilişim sektörü tarafından yıllardır dile getiriliyor. Yasaya yeterli esneklik getirmek yerine, projeler yasa kapsamı dışına alınıyor.

Yetki/Görev Dağınıklığı

Başbakanlık, Ulaştırma, Kalkınma ve Sanayi Bakanlığı birinci derecede ilgililer. Bakanları, İlgili Kamu Kurumlarını, Sektör temsilcilerini kapsayan e-dönüşüm icra kurulu koordinasyon görevini üstlemişti, ama epeydir toplanmıyor. Tübitak, BTK ve Türksat’da ikincil derecede Bilgi Toplumu, Ar-Ge ve İnternet projeleriyle ilgili. Ana işi bu olan, temel yetkili ve görevli bir birim gözükmüyor. Ulaştırma Bakanı en fazla bilgili ve ilgili Bakan olarak öne çıkıyor. Ama, bakanlık bünyesinde uygun bir yapılanma yok. Ülkenin Bilgi Toplumu Politikalarına yön veren bir bakanlıkta ana işi bu olan birimlere, bilişim, ekonomi, sosyoloji, kamu yönetimi, iletişim gibi konularda doktoralı uzmanları da kapsayan kadrolar bekler. Hic bir bakanlığımızda böyle bir yapılanma yok.

Yönetişim Yapıları Yok

Politika ve uygulamalar konusunda tüm paydaşların görüş, öneri ve eleştirilerini alan, onları karar süreçlerine katan yapılar yok. İnternet Kurulu bu amaçla başlamıştı, önce yeniden yapılandırılarak aykırı sesler kısıldı, sonra küçük ve paydaşları temsil etmeyen güvenilir bir yapıya dönüştürüldü. E-dönüşüm Danışma Kurulu hemen hiç çalışmadı. E-dönüşüm icra kurulu zaten toplanmıyor. Bakanlık, sektör temsilcileri ile arada bir görüşüyor ama bu düzenli, yasal ve temsile dayalı bir yönetişim yapısı olmuyor ve olması istenmiyor. Sektör ve STK’lardan gelen önerilerin tartışılması, irdelenmesi ve sonuçların gerekçeleri il açıklanması, bir diyalog oluşması gerekir.

Özgürlük Boyutu Sorunlu

Yöneticilerimizden Bil Gates, Steve Jobs, Zuckerman örnekleri gündeme gelir. Bunların özgürlük ortamında ortaya cıktığının farkında değiliz. Buluş yapan insanlar farklı düşünebilen, aykırı sorular sorabilen, sorgulayan, inisiyatif alan insanlar arasından çıkar. “Başımıza icat çıkartma”, “soru sorma”, “su küçüğün söz büyüğün” kültüründe, yasakların yoğun olduğunda bir ortamda yaratıcı bireyler yetiştirmek zor olur. Bu konularda topluma önderlik etmek, merakı, soru sormayı, girişimi teşvik eden toplum önderleri yok.

Politikalarda süreklik ve uyum eksikliği

Konunun bütünlüğünden sorumlu ve görevli bir birimin olmayışı, bunu kaçınılmaz olarak ortaya çıkartıyor. Youtube yasağının uzun süre çözülememesi, ve çözümün palyetif oluşu bunun örneklerinden biridir. Bir taraftan her ilde Üniversite açarken, öğretim üyesi yetiştirme için uygun politikların olmayışı bunun bir başka örneği. Kaldıkı 2006-2010 Bilgi Toplumu Strateji ve Eylem planunda bu konuda bir eylem vardı. Sorumlusu YÖK idi, ilk toplantı bile yapılmadı. Bir taraftan Fatih Projesini başlatmak, öte yandan temel bilişim dersini kredisiz ve seçmeli hale getirmek açıkça çelişkili bir duurm yaratıyor.

Geri Besleme Yapıları Yok

Yönetişim eksikliğine paralel olarak geri besleme mekanizmaları yok. web2.0 araçlarını kamu weblerinde göremiyoruz. Projeleri henüz tasarım aşamasında iken görüş alma, farklı bakış açılarını dinlemek yönünde bir çaba söz konusu değil. 2006-2010 Eylem Planı içinde toplumu bilgilendirme ve geri besleme için eylem vardı, yani para ayrılmıştı ama bu yönde bir çaba olmadı. UYAP’ta avukatlar, Fatih’de öğretmenler, veliler büyük ölçüde devre dışı kaldılar. İlk Strateji raporu büyük ölçüde, kamuoyunun bilgisi dışında, sadece kamudan görüş alarak oluşturulmuştu, ama geçikmiş olarak yapılan yenisi kamuoyu ile birlikte, etkileşim içinde, en azından Sektör, STK ve uzmanlarla diyalog içinde oluşturuluyor. Basit, yurttaş memnuniyeti ölçen çabalar pek gözükmüyor. Facebook ve Twitter, çok az kurumda var; onlarda bile Bakanın hesabı var ama Bakanlığın yok. Kamu kurumlarında, kamu oyunu bilgilendiren Blog, bildiğim kadarıyla, yok. Kamuoyunun görüşleri webten yayınlamak sanırım uzun zaman göremiyeceğimiz bir şey. Yeni anayasa için alınan görüşler bile yayınlanmadı.

Kültür Boyutu

İnternet katılım, saydamlık ve paylaşım ortamı olarak öne çıkıyor. Web 2.0 ile sosyal ağlar ve yeni medya ile geniş kitleler meraklarını, birikimlerini, görüşlerini internet taşıyor ve paylaşıyor. Kitleler bu ağlarda üretiyor, eğleniyor, örgütleniyor, öğreniyor. Bilgi Toplumunun bireylerinin bağımsız hareket edebilen, inisitif alabilen, girişimci, farklı bakabilen, yaratıcı bireyler olduğunu öngörebiliriz. Yaratıcılığın gelişmesi için farklı düşünebilen, aykırı sorular sorabilen, hoş görülü davranabilen bireyler gerekir. Tüm bunlar için hem ortam hemde bu ortamı geliştirecek, destekliyecek kurumlar olması gerekir.

Tüm dünyada geniş kitleler sosyal ağlarda örgütleniyor ve bilgilenme, yönetime katılma, saydamlık, bilgiye erişim ve refahtan pay istiyorlar.

Ne Yapılmalı ?

Ne yapılması konusundaki görüşlerimi bir kaç alt başlıkta toplamak istiyorum. Bunu siyasal sahiplenme, strateji, kurumsal yapılanma, insan gücü, sayısal bölünme, özgür yazılım, sayısal bölünme, sektörler için bilişimin ve özgürlük boyutunda özetliyeceğim.

Kurumsal Yapılanma

En başta toplum olarak işin önemini kavramış ve stratejik bir hedef olarak Bilgi Toplumu seçmemiz gerekir. Bunu söylem düzeninde yaptık, 2006-2010 Bilgi Toplumu Stratejisi ve Eylem Planımız vardı. 2003 sonunda e-dönüşüm İcra Kurulunun kurulmuş olması sevindirici ama yeterli değil. Benim gördüğüm en temel eksikliklerden biri ana işi Bilgi Toplumu ve Bilişim olan bir siyasetçinin olmayışı. Kamuda bu işten doğrudan sorumlu kişi DPT-Kalkınma Bakanlığında Bilgi Toplumu Dairesi Başkanı. Daireyi bir Genel Müdürlüğüne bile çıkaramadık. İcra kurulunda en az 3 bakan vardı. Kurul başkanlarının vaktinin çok azı e-dönüşüm, e-türkiye yada Bilgi Toplumu konusuna ayrılmıştı. Kanımca siyasi geleceğini bu konuya bağlı bir siyasetçi olması çok önemli. Bilgi Toplumu çalışmalarını koordine edecek, paydaşlarla diyalog içinde, kamuoyu ile etkileşimi olan kapsamlı bir örgütlenme gerekir. Bu müsteşarlık, bakanlık yada Bilgi Toplumu Kurumu gibi bir yapı olabilir. Bu yapının esnek, saydam ve katılımcı olması, icinde farklı sektörlere ilişkin bağımsız yapılar içermesi gerekir. Gelişmeleri ölçen, talep ve görüşleri tespit eden araştırmaları destekleyen, yıllık değerlendirme konferanslarını düzenleyen, İnternet Enstitüleri gibi yapıları destekleyen bir örgütlenme olmasında yarar. Bunun bir de parlamento ayağı olmalı, sadece Bilgi Toplumu ve Bilişim konularına odaklanmalı.

İnsan Gücü ve Eğitim

Bilişimde sabit sermaye yatırımın düşük oluşu, bilişime yatırımın kolay ve karlı olacağı sanısını uyandırdı. Hindistanın yazılım ve cağrı merkezindeki başarısı bu yönde beklentileri artırdı. Bir masa ve bir bilgisayar yatırımıyla büyük başarılar elde edileceği düşünüldü. Asıl sermayenin yetişmiş insan olduğunu pek algılayamadık. Özel sektör, düşük ücretle çalışacak yazılımcı peşinde. Ülkenin Bilişim ve Bilgi Toplumu Stratejilerinde insan gücü yetiştirmesine ciddi bir yer ayrılmadı. 2006-2010 Bilgi Toplumu Stratejisinde Bilgisayar Mühendisliği için öğretim üyesi yetiştirme eylemi vardı. Sorumlusu YÖK idi; hiç bir şey yapılmadı, bir toplantı bile. Ülke olarak insan gücü planlaması yapmamız, teknikyenden doktoralıya her kademede binlerce bilişimci yetiştirmemiz lazım. Bu ülkeyi Bilgi Toplumuna taşımamız, bir başka deyişle tüm ekonomiyi, tüm kamu hizmetlerini, toplıumu emek yoğun bir yapıdan bilgi yoğun bir yapıya dönüştürmemiz gerekiyor. Bunun için de insan gücü çok önemlidir. İlk ve orta öğretimi bilişim eğitimi açısından yeniden tasarlamak lazım. Bütün dünya programlama kavramlarını ilk fırsatta tanıştırmanın yollarını arıyor. RaspberyPie ortaokul öğrencileri 25$/35$ ile bütün yetenekleri olan bir bilgisayara kavuşabilsinler diye tasarlandı. Üzerinde bir Linux dağtımıyla geliyor, sadece çevre birimlerini bağlamak gerekiyor. ABD’de meslek örgütü ACM (Association of Computing Machinary) lise fen bölümünü biitiren bir öğrencinin 6 bilgisayar dersi alması gerektiğini söylüyor. Kanımca, bizim her öğrenciye temel bilişim/bilgi okur yazarı olmanın yanında konunun etik, estetik, mahremiyet, güvenlik boyutlarını, limitlerini ve olanaklarını öğrenmesi gerekir. Temel programlama, ağ, veritabanı ve güvenlik kavramlarıyle tanışmalıdır. Bunları sadece bilişimcilere değil, her meslekten insana öğretmemiz gerekir: iş dünyası, tarım, sosyal bilimler vs. Olanaklar, limitleri ve temel kavramlar herkes için önemli.

Bilgisayarla ilk tanışma ve ilk eğitimlerin, marka temelli değil kavram temelli olmalı ve alternatif işletim sistemleiryle tanışmalıdır. Önemli olan, öğrencinin öğrenmeyi öğrenmesi, farklı ortamlarda rahatça çalışabilmesidir.

Özgür Yazılım

Özgür yazılımlarla ve açık kaynak yazılım kavramlarıyla her öğrencinin tanışmasında yarar var. Özgür yazılım ülkeler için tasarruf, güvenlik, verimlik ve istihdam için önemlidir. Dünyada 1 milyona yakın özgür yazılım projesi ve 10 milyona yakın özgür yazılım geliştiricisi var. Kamunun, üniversitelerin bu nedenlerle özgür yazılımdan yararlanması önemlidir. Daha önemlisi, bilişimci olmak isteyen bir kişinin özgür yazılımla ellerini kirletmesi, yazılım örneklerini incelemesi, özgür yazılımları kütüphane olarak kullanması, onları geliştirek kendi ürünlerini oluşturması önerilir. Özellikle güvenliğin kritik olduğu uygulamaları özgür yazılım temelli yapma olanağının araştırılması önemlidir. Pardus projesi böyle bir amaçla başlamış ama maalesef sönümsemeye bırakılmıştır. Özgür yazılımın güçlü olduğu bir diğer alan ise gömülü sistemlerdir. Ülkemizin bir özgür yazılım stratejisi olmalıdır. Özgür yazılım konusunda bir ulusal konsey ve ulusal eylem planının katılımcı bir şekilde hazırlanmasını öneririm.

Bilişimin Yatay Rolü

Bilişim yatay olarak tüm sektörler için dönüştürücüdür. Bu dönüşümü hızlandırmak için bilinçli, örgütlü koordineli çaba gerekir. Savunma sanayinde bu yönde kapsamlı çalışmalar yapılıyor. Bunu bütün sektörler için yapmak gerekir. Meslek örgütleri ile birlikte çalışılmalı, yarışmalar yapılmalı, araştırma enstitüleri kurulmalıdır. Devlet her sektör için prototip özgür yazılımları ürettirmeli ve herkesin kullanımına sunmalıdır. Bilişim sektörünün dikey olarak gelişmesi için çalışmalar yapılmalı, bu kapsamda üniversitelerde uzmanlaşma, kapsamlı araştırma enstitüleri/merkezleri ve doktora programları oluşturulmalıdır. Farklı disiplinleri bir araya getiren araştırma programları oluşturmalıdır. Çok disiplnli çalışamaları da bir kültür olarak topluma kazandırmalıyız.

Sayısal Bölünme

Ülkemizi Bilgi Toplumuna dönüştürmek için tüm yurttaşlarımızı bilişim kültürü ile tanıştırmalı, onu bilgi okuryazarı, yeni medya okur yazarı yapmalıyız. İnternernete güvenle dolaşabilir, işini internete uyumlu hale getirebilir, güvenlik, mahremiyet, etik gibi kavramları özümsemiş hale getirmeliyiz. Evrensel Hizmet Fonunu bu amaçla kullanabilmeliyiz. TV’leri bu amaçla kullanabilmeliyiz, en azınaan kamu spotları ile başlayabiliriz. STK’lar bu yönd katkıda bulunabilirler. Fatih projesi bu yönde katkı yapabilir, ama yeniden tasarlanmalı. Konuya bir seferberlik ruhuyla yaklaşabilmeliyiz.

Özgürlük Boyutu

Ulus olarak İnternetden toplumsal yarar sağlamak için özgürlük boyutuna özen göstermeliyiz. İnternetin marjinal sorunlarından çok ana sorunlarına ve katkılarına odaklanmalıyız. İçerik sorunlarının çözümüne ifade özgürlüğünü esas alarak çözmeliyiz. Devlet yurttaşı eğitmeli, onu yetkin kılmalı, ona gerekli yazılımları sağlamalı ama neyin iyi neyin kötü olduğu kararını yurttaşa bırakmalıdır.

Sonuç olarak, İnterneti, Bilgi Toplumu Hedefini ciddiye almalı, kuvvetli bir siyasal sahiplenme, katılımcı, saydam bir yapılanma ile oluşturulacak kapsamlı eylem planını el birliği ile hayat geçirmeliyiz.

İnternet Yaşamdır !



23 February 2014

Bir işletim sisteminden daha ötesi: Her(Aşk)


Geleceği düşündüğümde aklıma hep teknolojinin insanlığı yuvası olan Dünya’dan ileriye taşıyıp gezegenler arası yolculukların yapıldığı, sosyal düzenin değiştiği ve yemyeşil ve barışçıl bir resim çiziyorum hep.

1990′lı yılların başlarında çocukken 2000′li yılları, 2010′u 2015′i hep büyük değişiklikler getirecek diye beklemiştim… Ne yazık ki uçan arabalar hiç gelmedi. Neredeyse 2015 senesinde geldiğimiz nokta basit bir küresel veri alış verişi ağı olan İnternet ve dokunmatik ekrana sahip akıllı(ki akıllı değiller) cep telefonları oldu.  Her an büyük bir bilimsel kırılma olacakmışçasına verike haberlerin hayal kırıklığı bu belkide. Ama şahit olduğum 30 yıllık ömrümde hiçbir insan başka bir gezegene veya gök cismine ayak basmadı.

1990 sendormu bir yana 2000 senromundaki büyük umutlar beklenen İnsan genomu çözüldü denildi fakat hiçbir büyük hastalığa çare bulunmadı…

Gelecek hep hayal edilenden daha, geride, daha ticari ve daha bireysel eğlenceye yani tüketim talebine odaklı oldu. Düşünsenize 1991 yılında geliyor biri size diyor ki 2012 senesinde el içi kadar bir tetriste sapandan fırlatılan kuşlarla domuzları vuracağınız bir atari(o zamanki el oyuncakları) dünyayı kasıp kavuracak insanlar milyonlarca saatini bu oyunda harcayacak… Ne derdiniz, ya bırak allasen 2012 senesinden bahsediyorsun arkadaşım koskoca 21 yılda insanoğlu nerelere gider nerelere… Sen kalkmış el atarisindeki saçma bir oyundan bahsediyorsun…

Velhasıl-ı kelam, teknolojik gelişmenin hayal kırıklığını başka bir yazıya bırakıp başlığımıza geri dönelim…

Her(Aşk)

Her(Aşk) - Afiş boyu için resme tıklayabilirsiniz

Her(Aşk) – Afiş boyu için resme tıklayabilirsiniz

Her filmi, benim yukarıdaki hayal kırıklığım paralelinde bir gelecekte geçiyor. Filmimizin kahramanı Thedore(Joaquin Phoenix) bir mektup şirketinde çalışıyor. Mektup şirketi demişsem, eposta falan değl, bilindik profillerin üye olduğu ve sevdiklerine mektuplar yazdıran bir şirket, kahramanımız da yazıcı, müşterilerin ağzından dokunaklı mektuplar yazıyor ve bu şekilde geçimini idare ediyor.

Bu gelecek biraz garip doğrusu, en çok dikkatimi çeken 80′li yılların saç-bıyık ve elbise modasının hakim olması. Diğer taraftan da gelişmiş olan teknolojinin yine iletişim teknolojisi üzerinden ilerlediği.

Boşanmış ve hayal kırıklığı içerisindeki kahramanımızın depresyon halleri bir gün gezdiği bir mağazada tanıştığı bir işletim sistemi(Operating System – OS) ile değişiyor.

Bu işletim sistemi, bilindik komut işleyip emir alan bir yapıdan çok öte, semantiğin de ilerisinde öğrenebiliyor, düşünebiliyor tam anlamıyla bir yapay zeka ürünü. İlk kurulumunda işletim sisteminin kullanıcısı analiz edilerek onun kişiliğine göre bir karakter olarak kurulan bu işletim sistemi, kullanıcının tam anlamıyla sanal bir arkadaşı oluyor.

İşletim sistemi kurulum öncesinde sorduğu sorularla bir kadın kendini yapılandırıyor ve ismini de kendi seçerek(Samantha) bilgisayara kuruluyor.

İleri düzey ses tanıma, düşünebilme ve değerlendirme gibi özellikleriyle tıpkı bir insan gibi iletişim kurabilen ve etkileşebilen bu işletim sistemi kısa zamanda zaten depresyonda olan kullanıcısını kendisine aşık ediyor ve aralarında bir birliktelik yaşanmaya başlıyor.

Tıpkı sanal bir sevgili benzeri bu ilişki, işletim sisteminin internetten bulduğu bir insan vekil(human proxy) aracılığıyla ilişkinin insan tarafını biraz canlandırma niyetine kadar çok iyi gitmekte. Daha sonrasında başlayan iletişim, kıskançlık ve ihanet gibi insansı durumlara işletim sisteminin evrilmesi ve sonrasında yaşananlarla sorgulayıcı bir seyir izleyerek film sona eriyor.

Elimden geldiğince spoiler vermeden filmi anlatmaya çalıştım. Fakat filmle ilgili bir kaç hususa da değinmeden geçemeyeceğim.

Filmde yapay zekanın evrilmesi işlenmiş, düşünüp kendisini ve insanlardan farklarını ortaya koyabilen ve kendiliğinden eylemler yapabilen bir işletim sistemi deyince aklıma 2001: A Space Odyssey  filmi ve HAL 9000(IBM’in harflerinden birer sıra geriye kayın, anladınız siz) geliyor. Ayrıca Terminatör filminden SkyNET’i de örnek verebiliriz. Düşünebilen bir işletim sistemi için nihai tehdit insanoğlunun onu kapatması ve bu durumda potansiyel olarak en büyük düşman insanoğlu olması en basit matematikle kaçınılmaz bir çıkarım.

Bu filmde ise, işletim sistemi komut almayı reddetmiyor ve varlığının devamını sürdürme amacı yok, neden HAŞ veya SkyNET gibi evrilmiyor peki diye sorunca, filmde arada işletim sistemine yapılan güncelleme sahnesi sanırım bu soruları kesmek için yapılmış…

Diğer taraftan, aynı anda birçok kişi ile etkileşime geçmesi ve insan zekası ve fiziğinin sınırlarının bu işletim sistemine yetmemesi de ayrı bir konuydu. Bu derece süper bir işletim sistemiyle dünyada çözülemeyen bir sorun kalmazdı doğrusu, sıradan ve ortalama geliri olan bir insanın bu işletim sistemini edinebilmesi ise çok garip geldi. Gerçi filmde işletim sistemine benzer olarak oyunlar ve oyun karakterleri de yapay zekaya yavaş yavaş dönüşüyordu, bu da sanırım bir öncü yenilik dönemi olduğunu anlatmak içindi.

Film güzel, işletim sistemlerin gelecekte nasıl olacağına dair fantastik bir tablo çiziyor. Yapay zeka, ve Asimov‘un Üç Robot Yasası gibi İşletim sistemleri ve ahlakı vb tartışmalar için ilgi çekici olabilir.

Ayrıca ileride bu derece sofistike yazılımların olup olmayacağı ve özgür yazılım ve yapay zeka gibi birçok konu da tartışılabilir. Gelecekten dönüp baktığımızda ilkel olan günümüz işletim sistemleri, özgür yazılım modelinde işlevsel olarak kodlanırken acaba yapay zeka işin içine girince kimin düşünce yapısına göre kodlanacak ve düşünmek öğretilecek, toplumun veya topluluğun ortak değerlerine göre mi, yoksa devrimsel bir örenim yolu izlemesi için mi kodlanacak?

Sanıyorum ki bunları tartışmaya daha çok zaman var…

Notum: 7/10, iMBD notu: 8,3

Peki bir işletim sistemine aşık olunabilir mi?

Evet olabiliyor. Japonya’da gençler bilgisayar karakterleriyle aşk yaşıyormuş. Bunlarla evlenenler bile olmuş. Şu haber ve benzerleri fikir verebilir: http://t24.com.tr/haber/japon-gencler-seksten-neden-uzaklasiyor/242599 

Bir İşletim sistemiyle arkadaş olunabilir mi?

Evet. Kesinlikle olunabilir. Çoğumuz şu aşağıda gördüğünüz işletim sistemiyle dost olmuştuk. Onu çok sevmiştik fakat gitti.

En sevdiğimiz arkadaşlarımızdan biriydi Pardus

En sevdiğimiz arkadaşlarımızdan biriydi Pardus



22 February 2014

i3


i3 modern bir döşeme pencere yöneticisidir (tiling window manager). Başıma gelen en güzel şey ne diye sorsalar, i3 derim heralde. Peki nedir i3'ü benim için bu kadar çekici kılan ona bakalım.

i3 kullandığım ilk tiling window manager. Gelişmiş kullanıcılar (power users) için hazırlanmış bu pencere yöneticisi, pencereleri ekranınızda hiç boşluk kalmayacak şekilde döşüyor. Bu da size, özellikle her işinizi klavyeden yapmaya alışkınsanız inanılmaz bir verimlilik sağlıyor.

Gündelik kullandığım örnek bir masaüstüm aşağıda yer alıyor:

Gördüğünüz gibi i3 monitörümdeki tüm alanı en verimli şekilde kullanmamı sağlıyor. Herşey klavyeden kontrol edildiğinden (isterseniz mouse ile de kontrol edebilirsiniz); başlık çubuğu ve pencere yönetim düğmeleri (simge durumuna getirme, tam ekran vs.) bulunmamakta.

i3 pencereleri yatay ve dikey döşemenin yanında, yığın ve sekme olarak da döşeyebiliyor. Bu da size iç içe geçmiş kullanılabilir sınırsız sayıda pencere oluşturabilme imkânı tanıyor.

Ekran görüntüşünü büyütmek için tıklayın

Yukarıdaki örnek çalışma alanında görebildiğiniz gibi, pencereleri istediğiniz gibi açalabilirsiniz. Sağ tarafta 2 sekme altında açılmış 3 sekme ve 3. sekmede açılmış yine onlarca terminal penceresi yer alıyor. Bu resmi sekmeli kısımdan ikiye ayırıp bakacak olursak, sağ tarafta aslında yepyeni bir masaüstü kullandığımızı bile düşünebiliriz. Pencereleri nasıl döşeyeceğinize karar vermek hayal gücünüze kalmış.

i3 aynı zamanda sınırsız sayıda çalışma ortamı (workspace) oluşturmaya da imkân tanıyor. Yeni çalışma ortamı geçis yaptığınızda oluşturuluyor ve eğer içerisinde bir pencere varsa hayatta kalıyor.

i3 pencere eylemlerini gerçekleştirmek için JSON tabanlı IPC arabirimi kullanıyor. Yani bir örnek ile açıklamak gerekirse, siz bir pencereyi sola taşımak için (benim kullandığım) $mod+Shift+j tuş kombinasyonunu kullandığınızda aslında i3 pencere yöneticisine move left mesajını göndermiş oluyorsunuz. Bu yapı da size inanılmaz bir özelleştirme imkanı tanıyor. Pencere yöneticinizi istediğiniz programlama diliyle istediğiniz gibi kontrol edebilirsiniz.

i3 aynı zamanda vi gibi farklı modları da destekliyor. Örneğin vi de komut modundayken tuşlar farklı eylemler gerçekleştirirken INSERT veya VISUAL modlarında farklı eylemler gerçekleştiriyor. Aynı şey i3 için de sağlanmış. Normalde pencereler arası geçis yapmak için kullandığınız HJKL tuş takımını, $mod+r tuşlarına bastığınızda resize moduna girerek pencereleri yeniden boyutlandırmak için kullanabilirsiniz. Üstelik bu özelliklerin hepsi özelleştirilebilir, istediğiniz kadar farklı mod tanımlayabilir, istediğiniz tuşlarla farklı eylemleri gerçekleştirebilirsiniz. Ve tüm bu eylemler inanılmaz hızlı gerçekleşiyor. i3'ün şuanki sürümü 859kb ve gücünü C'den alıyor. Şuan çalışan masaüstü oturumum ise sadece 27mb bellek kullanıyor.

Durum çubuğu (i3status) da kendisi gibi verimli ve istediğiniz programlama dilini kullanarak istediğiniz modülü yazmanıza olanak tanıyor.

Özelleştirilmiş bir durum çubuğunu aşağıdaki ekran görüntüsünde görebilirsiniz:

Fare kullanmaya alışkınsanız, i3 pencereleri fare yardımıyla da daha verimli kullanmanız mümkün. Örneğin standart bir pencere yöneticisinde bir pencereye odaklanmak için, pencereye tıklamanız gerekirken, i3'de tüm pencereler zaten önde olduğundan, imleci pencerenin üzerine getirdiğinizde pencere aktif hale geliyor. Yine de eğer her işinizi fare ile yapmaya alıştıysanız i3 sizin için uygun olmayabilir.

Eğer her işinizi terminalden yapıyor ve terminalinizde screen veya tmux kullanmaya alışkınsanız, i3'ü çok gelişmiş bir terminal çoklayıcı olarak kullanabilirsiniz. Haydi ne bekliyorsunuz, hemen favori paket yöneticiniz ile i3 denemeye başlayın :) Tüm sorularınızı ayrıntılı cevaplandıran kullanıcı rehberine buradan ulaşabilirsiniz.

Son olarak bir kaç ekran görüntüsü daha:

Bu yazıyı hazırlarken

Yazıyı hazırlarken chrome'a ihtiyaç duymadığımdan, hemen chrome penceresini sekmeler haline dönüştürüp, yeni bir sekmede vim ile bu yazıyı hazırladım. Diğer pencereler ise sürekli kontrol ettiğim pencereler olduğundan hepsi görüş alanım içerisinde.

Örnek bir geliştirme ortamı:

Masaüstünüzün büyük bir bölümüyle kod geliştirken, hemen sağda test edebilir git işlemlerinizi gerçekleştirebilirsiniz. Bu sadece çok basit bir örnek (git blame kullanımı çok yersiz olmuş farkındayım), daha önce de dediğim gibi i3 her türlü kullanım alanında size verimlilik sağlayacaktır.



21 February 2014

mailsend – Komut Satırından Posta Göndermek


https://github.com/muquit/mailsend adresinde, komut satırından (ve SMTP) üzerinden email göndermeye yarayan küçük bir uygulama var.  Normalde, nix sistemlerde default mail komutunu kullanarak iletmek istediğiniz postayı, sunucu üzerinde bulunan default MTA’ya vererek gönderilmesini sağlayabiliyorsunuz. Ancak bu işlemi yaptığınız sunucu bir posta sunucusu değilse muhtemelen giden mail, alıcı tarafında Sarı Çizmeli Mehmet Ağa’dan gelen ne idüğü belirsiz bir email muamelesi görüp junk’a iletilecektir. İşte bu gibi bir probleminiz varsa mailsend kullanmak akıllıca olabilir. Zira, mailsend ile komut satırından örneğin gmail hesabınız üzerinden smtp ya da submission portundan mail gönderebiliyorsunuz.

Elbette bu yöntemi kullanmak için -mail komutu gibi sistemde default bulunan bir uygulama olmadığından dolayı- mailsend’i sisteminize kurmanız gerekiyor. Aşağıda bu kurulumu ve uzaktaki bir posta sunucusuna oturum açıp (örnek olarak gmail üzerinden) nasıl posta gönderilebileceğine değineceğim.


Devamini okuyun: mailsend – Komut Satırından Posta Göndermek


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,



20 February 2014

Saklı Dosyaların Geçmişine Dair…


Unix ve Unix benzeri işletim sistemlerinde adı nokta işaretiyle (.) başlayan dosya ve dizinler saklı olarak kabul görüyor. Yani örneğin Masaüstü, Belgeler gibi dizinler ile rapor.odt, tatil_fotoğrafı.jpg gibi dosyalar normal dosya ve dizin olarak kabul edilirken .config gibi dizin ve .bashrc gibi dosyalar adları nokta karakteri ile başladıkları için saklı olarak sayılıyorlar. Saklı dosya ve dizinler herhangi bir parametre olmadan ls komutu ile görüntülenemezken ls -a ile görüntülenebiliyorlar.

1-2 gün önce okuduğum bir yazıda bu dosyaların niçin saklı dosya sayıldıklarını açıklayan ilginç bir açıklama anlatılıyordu. Şöyle ki; Unix işletim sisteminin ilk çıktığı yıllarda Unix’te kullanılan dosya sistemi de henüz emekleme aşamasındaydı. İlk sürümlerde henüz dizin tanımı yer almıyorken (yani hiç bir dizin olmadan tüm dosyalar yanyana) ilerleyen sürümlerde hiyerarşik dosya sistemi yapısı geliştirilmiş ve dizin kavramı devreye girmiş. Tabi biliyoruz ki dizinlerle çalışırken iki tane de özel dizin karşımıza çıkıyor: . (nokta) şu an içinde bulunduğumuz dizine işaret ederken .. (nokta nokta) bir üst dizini işaret eder. Mesela içinde bulunduğumuz bir dizindeki programı çalıştırmak için ./program komutunu çalıştırırken bir üst dizine dönmek için cd .. komutunu çalıştırıyoruz.

. ve .. dizinlerini geliştirdikten sonra ls komutu çalıştırıldığında bunların görünmemesini istemişler ve bu amaç doğrultusunda şöyle bir C kodu yazmışlar:

if (name[0] == '.') continue;

C programlama dilini kullanan insanların rahatlıkla görebileceği gibi bu komut, bir dosya adının ilk karakterinin nokta olup olmadığını, eğer nokta ise işlem yapılmadan geçileceğini belirtiyor. Tabi bu kontrol sayesinde . ve .. dizinlerinin atlanması sağlanırken insanlar .dosya gibi isimler verebilecekleri dosyaların da ls tarafından atlanabileceğini keşfediyor; bu sayede de aslında bir bug nedeniyle (bkz: it’s not a bug, it’s a feature) saklı dosya kavramı doğmuş oluyor.

Aslında eğer yukarıdaki if kontrolü yerine aşağıdaki if kontrolü yapılmış olsaydı günümüzde Unix ve Unix benzeri işletim sistemlerinde saklı dosya tanımı nasıl yapılmış olurdu merak ediyorum :)

if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;

Kaynak: https://plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp