Category Archives: çalışmak

Hadi gul

Gulumse be guzel kardesim. O kadar vakit harcayip gelmissin, izdirap cekmissin yollarda, sira beklemissin. Ufacicik bir tatilin hayali ile ne kadar calistin bi sen bilirsin. Gelmissin cennet gibi yere(bknz akyaka/mugla). Az biraz gul be guzel kardesim. Az bi gul, az biraz mutlu ol. Kaslarin biraz yumusasin ki buyuk resmi gor. Catmissin ki kaslarini yapmissin gorus alanini 16:9. Gunesi goremiyorsun, gokyuzunu goremiyorsun. Ah bi gorsen, omuzlarini geriye esnetip guzel havayi cigerlerinin derinliklerine ceksen. Bak bu bayrami bayram gibi yasasan. Ha geldi gelecek derken geldi gidiyor. Hala listendeki 12345 maddeyi yapmanin derdindesin biliyorum. O kadar parayi/zamani bir araya getirip koymussun gelmissin. Gerginligin denizin dalgalarinin sana ulasmasina izin vermiyor. Elindeki telefonu da sok cebine. Begenilme arzunu biraz azat. Bak begenilmeyi bu kadar arzulamadiginda, gokyuzunun mavi oldugunu goreceksin eminim(tabi ki biliyorsun gokyuzu mavi, bulutlar deterjanin oranina gore beyaz ile siyah arasinda giriyor hayatina).

Ben sana unut dertlerini demiyorum. Bi kac gunlugune geldigin deniz kenarinda bak denize, baliga bak(hemen mangali dusunme be arkadas) sakinles, bu gerginlik seni yoruyor. Ha iste o sirtindaki agri var ya o bu kadar gergin kumasindan oluyor. Diyeceksin ki donucez geri karmasaya. Ne para var cepte, ne haz var iste. Uc kurusa bes kofte pesindeyiz insanlar olarak. Kofte yok aslinda, kofte sensin. Kizariyorsun orada biri de gelip yiyecek seni.

Peki peki sustum. Gece gece rahatsiz ettiysem de ozrum kabahatimden buyuk olacak, okumasaydin 🙂 Saygi ve sevgi cercevesinde gevezeligi okudun bir tesekkuru borc bilir sevgilerimi kisa mesaj olarak gonderirim.

 

 

2012’den 2013’e geçerken alınan notlar ve değerlendirmeleri

Genel olarak ufacıcık kağıt parçalarına aldığım notları aktaracağım bakalım neler düşünüp neler yapmışım.

– Neydim, ne oldum? – Kim olmak istiyordum? Kim oldum?

– Neleri başardım? Neleri kaybettim?

–  Geleceğime nasıl yön verdim?

Ana sorular olarak bunlar vardı 2012 bitiminde. Peki ya hedeflerim?

– Konusunda başarılı bir sysadmin olmak,

– Dans öğrenmek, (niyet önemli şimdilik hala askıda)

– Yüzmeye yeniden başlamak, (bir kaç yerle görüştüm ancak zor iş istanbulda)

– Konu ile alakalı sertifika almak, (lpi sınavına girildi.)

– Yurt dışı eğitim olanakları, (ieft fuarına katıldım. Bir iki üniversite aklıma yattı ancak 2014 ve ya sonrasına bırakıyorum şimdilik)

– Yabancı bir dil eğitimi (italyanca, fransızca ya da almanca)(Kendi çabam ile fransızcaya başladım ancak yine rafa kalktı kısa sürede.)

– Yurt dışı gezileri (İngiltere-londra, Almanya-düsseldorf, Japonya-osaka, Yunan adaları- mikonos, Tayland, İtalya-venedik-roma, Rusya) (Şimdilik vize olamamsı ve ufak bir tatil olarak tayland-Bangkok,pattaya gezisine gittim)

– Yeni bir iş, (Symturk ailesine katıldım.)

– Opera, sinema, tiyatro’ya daha önem vermek, (hala yeterince zaman ayıramadım utanıyorum.)

– Klasik bir amaç daha tabi ki yüksek lisans’a başlanacak. (yurt içinde tabi ki ales gibi bir sınava katılmak gerektiği için her seferinde kaçırıyorum başvuruyu başka bahara kaldı bu da)

 

Sonuç olarak yıl içinde daka fazla çabalamak gerekiyor. Önümüzdeki günlerde de 2014 için bir liste yayınlayacağım inşallah.

Mutlu olmak hakkında

NOT: Bu yazıyı ne zaman yazdığımı bile hatırlamıyorum ama taslakları temizlemek lazım. Hepsi eski ilişkiler gibidir.

 

Mutlu olmak hakkında bir siteye girdiğinde(ki genelde girilmez) aradığın şeyleri ilk başta görmek istersin.

Nedir insanlara mutluluğu anımsatan?

– Sadelik
– Sıcak renk tonları
– Orada güvende olduğunu hissedebileceği bir yörünge.

Peki biz ne yapıyoruz?

İnsanları bir alışveriş merkezindeymişcesine binlerce renk cümbüşü, reklam ve karmaşık yönergeler içerisinde kaybolmasını sağlıyoruz. Burada temel sorun insanların buradaki her şeye ilgisini çekebilmek ve olabildiğince sitede zaman geçirmesini sağlamaktır. Bu kısa bir süre için akıllıca gözükebilir. Sürümden kazanmak diye bahsedeceğim sanırım bu durumdan. Sürümden kazanma mantığında olabildiğince çok ürünü göz önüne sunar ve olabildiğince ilgi görmesini beklenir. Kafa karıştırır, kavga çıkartır, bazen de göz çıkartır.

Peki bunun devamlılığı için ne yapılması gerekir? Sürekli yeni ürünler ile değişken yapıda bir tasarım. Gelinen her seferinde taze ürün görmek isteyenlere hitap edilir. Peki buradaki büyük sorunu görebiliyor musunuz? Özellikle bir sitede dinamik bir içerik gerçekten çok büyük bir yük oluşturur. İçeriğin olduğu gibi tasarımında belirli aralıklarla değişmesi gerekir. Bu kadar büyük iş yükü üzerinde bulunan bir kuruluş/site gerekli çalışan kadrosu yok ise üzerindeki yük ile kalitesiz iş çıkartmaya ve müşterisini kaybetmeye başlar.

Ancak buradaki temel alınan kitle genel itibarda günlük olarak gelmez. İnsanlar hayatlarının ufak bir parçasında bu kadar hareketliliği severler(Televizyon işini hala anlamış değilim kabul). İnsanlar belirli bir zamanını geçirdikten sonra oturup dinlenirler. Bunu bir kitap okuyarak, müzik dinleyerek ya da ev işi yaparak geçirirler. Burada dikkatin çekilmesi gerektiği yer ise insanlar belirli kalıpları olan düzenliliği seven ve yaptığı işe odaklanabileceği bir görüntüyü sever.

Kitabı ele alırsak; belirli bir sayfa yapısına sahiptir. Belirli bir yaprak türüne sahiptir. Okunabilir olanlar genel olarak mat yüzeyli ve biraz olsun pürüzlü yüzlüdür. Dokunabildiğini hissedebildiğin bir yapı ile hem görme hem dokunma duyuları ile insanlara o güveni verebilmekte yatıyor sanıyorum. Usulca 2 duyuya hitap etmek. Ama bunu saldırı yapmamak lazım. İnsanların işi yapmalarını sağlamak istiyorsak bu işi nazikçe yapılması gerekir.

>Pardus günleri iyiye gidiy…

>

Pek çok arkadaş bu iyiye gidiy muhabbetini merak ediyor(Saçma buluyor olabilir). Şu video linki ile muhabbeti bilmeyenleri bilgilendirmek isterim.

http://www.youtube.com/watch?v=Eciwebcba48

Peki pardus günlerinde ilk gün geçti. Güzel bir kalabalık vardı, Pardus standı etrafında kalabalık yogun olarak gözledim(Bir grup şeker ve katalog alarak geçti).

Stand etrafında gezindim, birilerin fotoğraf makinasını ele geçirdiğimde bir kaç poz çektim. Kendi adıma zevkli bir gündü. Seminerlerde gözlemlediğim birşey ise sorular sorulmasıydı. Bu da daha ilgili bir topluluk olduğunu gözlemledim.

Yarın 12.40 sunumumuz var herkesi bekleriz. Umarım terletecek sorular sorulmaz 🙂

>Lib64 sorunsalı…

>

Linux bilgisi olan mutlaka lib dizinleri ile karşılaşmıştır iyi ya da kötü şekilde. Burada paylaşımlı olarak kullanılan kütüphanelerin derlenmiş halleri bulunur. Programlar çalışırken de bunları isterler ararlar. Kendi içerisinde bir linklenme vardır yani…


Peki nedir bu lib64 muhabbeti?

x86_64 işlemciler kendi üzerinden x86 mimarisine de destek verdikleri için, x86_64 bir işletim sisteminde 32bitlik kod çalıştırılabilir.(Tabi ki çekirdeğin bu çevirme işi için açık olması gerekmektedir.) 32 Bit derlenmiş programlar için dizin hiyerarşisinde ise lib32 dizinleri oluşmuştur. 64 bit derlenen kütüphaneler içinse (programın derlenme şekline göre değişebiliyor tabi) lib64 dizinine konuluyor. Sonuçta elimizde 3×2 lib dizinimiz olur. Biri kökte, diğeri ise /usr altında. Peki ya elimizde hiç 32 bitlik paylaşımlı kütüphane olmayacaksa (şu anki kurumsal 2 x86_64 gibi)?

Burada bir çözüm olarak lib64 dizinlerini lib dizinine linklemek en basit ve en mantıklı çözüm gibi geldi bize. Neden bu linke ihtiyacımız var sorusuna gelecek olursak; belirli programların lib64 e ihtiyaç duyması ve araması. Hatta bu lib64 sorunu yüzünden bir süre kurulan cd hazırlayamadık.


Peki bu linki kaldırmak mümkün değil mi?

Tabi ki mümkün, tool chain’i düzenlemek gerekiyordu. Burada yapılanlar tabi ki 32bit’lik halini etkilemeyecek şekilde olması gerekiyor. Bunu Onur Küçük bir hafta sonunda yaptı. Diyecek bir söz bırakmadı 🙂 Ancak her paket bu yöntem izlenemiyor. Çünkü ati’nin ekran kartı gibi sürücüleri istediği gibi at koşturabiliyor hala…

>fPIC…

>

Sanki uzun zaman oldu blog girdisi yapmayalı diyerek bir giriş yapmış bulunayım 🙂 Bir süredir Necdet Yücel tarafından sıkça “Blog yazın….” çağrılarına cevap vermek istedim.

Girdi konusu olarak da bir süre önce Gökmen Görgen ile konuştuğumuz bir konu olan fPIC olmasını tercih ettim. Neden olduğunu ise not olarak koyacağım. Konuyu daha çok dağıtmadan bi giriş yapayım konuya,

Nereden geldi bu fPIC?

fPIC ile karşılaşmam ilk olarak 64bit için paketleri hazır hale getirirken karşılaştım. Derleme sırasında aldığım hata ise;
“relocation R_X86_64_32 against `a local symbol’ can not be used
when making a shared object; recompile with -fPIC .libs/assert.o: could not
read symbols: Bad value”

Oradaki 32’yi görünce kıllanıyor tabi insan. Güzelce derle şunu diyesi geliyor insanın, yoksa hata GCC de mi diye düşünebiliyor insan 😉 Peki ufak bir araştırmadan sonra sorunu gördük ki paylaşımlı kütüphaneler için oluşturulan nesnelerin düzgün şekilde linklenebilmesi için -fPIC parametresi ile derlenmesi gerekiyormuş. Tabi ki sorunun çözülmüş oldu.

Kendisi bi gcc bayrağıdır. “Position-Independent Code”un kısaltılmasıdır. Türkçe’ye çevirdiğimizde konum bağımsız kod oluyor herhalde 🙂 PIC, çıkan ikilik dosyanın belirli bir taban adresine yüklenmesini beklemez, bellekteki herhangi bir yerde mutlu olmayı bilir anlamına geliyor 😉
Kendisi i686 mimarisinde kullanıldığında bir fark oluşturmadığı söyleniyor. Bilemiyorum nedir, ne değildir. Ancak x86_64 mimarisi için daha yavaş çalıştığına dair rivayetler dolaşıyor. Alpha, SPARC64 ve iirc HP-PA mimarileri içinde gerekli olduğundan bahsi geçiyor.

Daha ayrıntılı bakmak isteyenler için :

http://www.technovelty.org/code/c/amd64-pic.html
http://en.wikipedia.org/wiki/Position-independent_code
http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=3
http://www.redhat.com/archives/fedora-maintainers/2005-August/msg00094.html

Not: Herhangi bir yerde hata görürseniz bildirmekten çekinmeyin. Herkes herşeyi bilemez sonuçta 😉

>1 şubat

>

Uzun çalışmamız ürünü olan pardus kurumsal 2 64 bit pardus alfa sürümü çıktı. Uzun günler boyunca çalıştık, sorun çözdük hep beraber(Pardus ekibine yardımları için çok teşekkür ederiz) ve ilk kurulan cd’miz artık hazır. Tabi ki içerisinde hatalar olabilir sonuçta alfa sürümü 😉 Hataları bildirmekten çekinmeyiniz, yardım etmekten ise hiç çekinmenize gerek yok tabi ki.

Bu sürüm’ü kuracak ve kullanacak olan tüm arkadaşlara sesleniyorum, güle güle kullanın. Çalışmaya devam edeceğiz yakından takip ediniz;)

ps: bir iki link vermeden bu yazıyı sonlandırmak gereksiz olacağı için,

Şurada ilk alfa sürümümüz : http://members.comu.edu.tr/nyucel/Pardus-C2-x86_64-alfa.iso
Burada da depomuz : http://x86-64.comu.edu.tr/pisi-index.xml.bz2
Bu da sha1sum’ı tabiki : http://members.comu.edu.tr/nyucel/Pardus-C2-x86_64-alfa.iso.SHA1SUM

>BuildFarm

>

Build farm hakkında bir ufak çaplı bir yazmıştım ancak kaza sonucu yok olunca kısa ve öz bir şekilde build farmdan bahsetmeyi daha doğru buldum.

Buildfarm bizim elimizle yaptığımız paket derlemeyi otomatikleştirmeye yarayan bir buluş diye adlandırabiliriz. Kendisini doğru yapılandırınca, verilen xml’lerin paketlerini yapıyor, svn’de paketlerde bir değişiklik oluştuğunda haberdar olup onların paketlerini yapıyor, şu paketleri yapmaya başlıyorum, şu paketleri bitirdim ve şu paketlerde sorunlar yaşadım diye mail atıyor. Yapamadığı paketleri de bekletiyor…

Peki çalışır hale nasıl getirilir?

Başlangıçta svndeki son revizyonunda bir takım sorunlar var. Pardus ekibinden yeniden yazıldığı hakkında bilgi aldım. O yüzden sayın Türker Sezer ile konuşmamdan sonra açıklayıcı bilgilerinin ışında revizyon 24480 kullanmaya başladım(Ve onu anlatacağım).

Teknik olarak buildfarm pisinin yapacağı birşeyi yapmıyor. Bizim ile pisi arasında duruyor diyebilirim. Biz buildfarm’a toplu görevler veriyoruz, o da pisiye sırası ile iletiyor, oluşan paketleri bir yere topluyor ve index oluşturuyor(wrapper olarak kullanılıyor yani). Hayat kurtarıyor bile diyebilirim.

İki şeye ihtiyacımız olacak başlangıç olarak;
– buildfarm kaynak kodlarına,
– Buildfarm’a verilecek olan paketlerin pspec.xml ve actions.py içeren havuzu(repository).(Birde pardus’a tabiki)

İlk olarak /root un içerisine indirmemenizi tavsiye ediyorum. Çünkü disk dolsa bile root için ufak bir alanın kalması gerektiği ve böylece sisteme müdahale edebilme imkiyanının bulunabilmesi için…

Örnek olsun diye ben /hede diye bir dizin açtım kabul edelim.

ilk olarak;

# cd /hede
# svn co -r 24480 http://svn.pardus.org.tr/uludag/trunk/buildfarm

Bu sayede build farm kaynak kodlarını sistemimize indirmiş bulunuyoruz.

# svn co http://svn.pardus.org.tr/pardus/2009/devel

Bu sayede havuzu /hede dizinimize indirmiş bulunuyoruz. Bu havuzun svn yapısı ile tutulması buildfarm içinde gereklidir çünkü kendisi bu havuzdaki güncellemeleri kontrol edebiliyor. Böylece kendisine bunları ekledim, bi zahmet yapı ver dememize gerek kalmıyor.

# cd /hede/buildfarm

Bu dizinde bulunan config.py python kodunu düzenleyerek buildfarm’ı çalışır hale getireceğiz(python bilmenize gerek yok bunun için).

localPspecRepo = “/hede/2009/devel” -> Burada indirmiş olduğumuz paket havuzumuzun yolunu gösteriyoruz. Böylece buildfarm ne üzerinde çalışacağını öğreniyor.

logFile = “/var/cache/pisi/buildfarm.log” -> Buildfarm’ın temel loglarının bulunacağı dosyayı belirtiyoruz.

outputDir = “/var/cache/pisi/buildlogs/” -> Yapılmaya çalışılan paketler ile ilgili logların tutulacağı dizini belirtiyoruz.

binaryPath = “/var/cache/pisi/packages/” -> Oluşan paketlerin koyulacağı dizin

testPath = “/var/cache/pisi/packages-test/” -> Build farm’ın kendi oluşturduğu paketlerin dizini

debugSupport = False

debugPath = “/var/cache/pisi/packages-debug/”

ignoreCheck = True -> Actions.py’lerde check kısımlarının geçilmesini sağlar. Pek çok pakette bu testler düzgün yapılamadığı için ön tanımlu true gelir.

sendEmail = True -> Yaptıklarını bize haber verecek olan güzel teknoloji.

mailFrom = “buildfarm@pardus.org.tr” -> Gönderilecek mail’de kimden gelmiş kısmı

announceAddr = “buildfarm@pardus.org.tr” ->

ccList = [“buildfarm@pardus.org.tr”] -> Kime ek olarak gönderilecek

smtpServer = “mail.pardus.org.tr” -> Smtp servisi veren ve mail’in gönderileceği sunucu

useSmtpAuth = True -> Smtp gönderirken kimlik kanıtlaması yapılacağını belirtiyor.

generateDelta = True -> Hayatı kolaylaştıran delta paketlerin yapılacağını belirtiyor.

deltaBlacklist = [] -> Bu liste ise delta paketlerinin yapılmaması gereken paketlerin isimleri yazılması gerekiyor.

Şimdi bir adet mailauth.py diye dosya oluşturuyoruz. Çünkü mail gönderirken hangi kullanıcı ve parolası ile göndereceğini buraya bakarak söyleyecek. İçerisine

username = “hede@hodu.org.tr”
password = “xxxxxxxxxxxxxxxx”

yazılması yeterli. Çalıştırırken ilk olarak repomanager.py çalıştırılması daha sonra ise main.py çalıştırılması gerekmektededir.

Buildfarm çalıştıktan sonra /var/pisi altında iki tane dosya oluşacak;

workQueue, -> Burada yapılacak olan paketlerin pspec.xml’lerinin tam yolları yazılıyor,
waitQueue -> Burada ise yapılmasında bir sorun oluşmuş paketlerin bir sonraki çalışmada yeniden yapılabilmesi için sırada beklemeleri için tam yolları yazılı.

Ek olarak da /etc/pisi/pisi.conf’da bir kaç düzenlemeyle daha hızlı bir buildfarm elde edebiliriz;

[build]
buildhelper = ccache -> Bu seçenek derleme yaparken ccache paketinden yardım alır. Daha hızlı bir derleme oluşur.

buildno = True -> Bu seçenek ile aynı sürümden iki paketin çakışması engellenir.

cflags = -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2 -g3 -ggdb -> Sona gelen -g3 -ggdb ile debug parametresi verilmiş olur. Oluşan hatalarda daha anlaşışır çıktılar gözlemlenebilir.

compressionlevel = 9 -> Paketlerdeki sıkıştırma oranını arttırır. Ancak sistemin canına okur.

cxxflags = -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2 -g3 -ggdb -> Sona gelen -g3 -ggdb ile debug parametresi verilmiş olur. Oluşan hatalarda daha anlaşı
şır çıktılar gözlemlenebilir

enableSandbox = True -> Paket derlenirken temel sisteme erişim kontorlü yapmasını sağlar.

fallback = ftp://ftp.pardus.org.tr/pub/source/2009 -> Paketin kaynak kodunun adresi cevap vermiyorsa buradan indirmeye çalış.

generateDebug = True ->

host = i686-pc-linux-gnu -> Üzerinde bulunan gcc’nin hangi mimari için derlendiği(biraz karışık oldu galiba 🙂

jobs = -j5 -> Yapılan derleme işleminin paralelleştirilme sayısı(çekirdek sayısı +1 diye hesaplayabiliriz.)

ldflags = -Wl,-O1 -Wl,-z,relro -Wl,–hash-style=gnu -Wl,–as-needed -Wl,–sort-common -> Dinamik kütüphaneler için gerekli bayraklar.

Not: Buildfarm kurarken kullandığınız dağıtımın o sürümünün havuzunu almaya dikkat ediniz(2008 üzerinde 2009 buildfarm’ı mantıklı değil;)

>Dayanılmaz sona yaklaşırken…

>

Başlıktan pek bir şey anlaşılmasa da son gelişmeler hakkında ekipteki herkes bir şeyler yazdı.[0][1][2] Bu konu hakkında bir iki satır karalama ihtiyacı hissettim bende.

Uzun bir süredir sıkı çalıştığımızı bilmeyen kalmadı herhalde ancak meyvelerini toplamaya başladık. İlk meyve olarak chroot olduğumuz zaman aldık(Ekip dışında bulunanları pek az tat veren ilk meyveydi. Ekip içinde ise ufak bir kutlama havası esmişti). Daha sonra pisi’yi ayağa kaldırdığımızda aldığımız meyve çok tatlıydı(özellikle pisinin yapması gereken her şeyi ellerimizle yapan bizler için. Ekip dışına da tat veren bir meyveydi bu). Daha sonra boot edebilmemiz, şimdi bir masa üstü ortamımız var (en çok sevinen de herhalde links ile pek haşır neşir olan metin oldu diye biliyorum.) Şimdi ise kurulan bir cd için çabalıyoruz. Onu yaptığımızda öncekiler gibi yine çok çalışmanın bir meyvesi ancak hem ekibe hemde Pardus’a gönül verenlere de tat vereceğini düşünüyorum. Bu meyveyi paylaşmaya açığız… Çünkü paylaştıkça artar diye düşünüyoruz.

ps: Daha teknik konularda yazıları [3] wiki sayfamızda bulabilirsiniz…

[0] http://m-akdere.blogspot.com/2009/12/ve-pardus64-uzerinde-masaustu-ortam.html
[1] http://nyucel.blogspot.com/2009/12/64-bit-kurulan-cd-icin-eksik-paket.html
[2] http://meltemparmaksiz.blogspot.com/2010/01/kurulan-cdye-bir-adm-kala.html
[3] http://tr.pardus-wiki.org/Pardus%27un_X86_64-64_Mimarisine_Port_Edilmesi

>Hayat?

>

Uzun bir süredir sadece yaşamaya devam ettiğimi fark ettim birden. Eee başka ne yapacaktın ki diyenler olabilir… Ancak hayat sadece nefes almak(vermek), yemek yemek, okula gidip gelmek olmadığını düşünüyorum. Biraz müzik dinlemek(anlamlı şekilde, tabiri caiz ise hissederek…), eğlenmek, düşünmek, düşünce yürütmek, problem çözmek, kitap okumak vs…

Hayatta olduğunu fark etmek ve az da olsa bir farklılık yaratmak gereği hissediyorum son zamanlarda… Yoksa bu tembelliğin içerisinde boğulup gideceğim ve bu arzularımı kaybedeceğim.

En azından artık daha fazla hayat ile alakalı şeyler okumaya çalışıyorum. Bir kaç tane blog takip ediyorum mesleğim ile alakalı olmayan… Hayata bakış, insanlara bakış… Ancak hayatta sadece okul yada iş olmadığını ve insanın düşünen ve devamlı düşünmeyi isteyen bir varlık olduğu düşünüyorum….

Takip ettiğim bloglar:
http://herbokubilenadam.blogspot.com/
http://sokratesya.blogspot.com/