Jira’nın sunucusunu değiştirirken olan bitenler
Bir süredir şirkette kullandığımız jira’yı başka bir sunucuya taşımam gerekiyordu ve bugün girişme zamanı geldi
Yaptığım şeyler ve yaşadığım problemler kabaca şu şekilde:
Jira Kurulum ve Ev dizinlerini taşımak:
Jiranın kendisine müdahalelerimiz bulunduğundan ve kurulmuş birçok plugini kaybetmek istemediğimden yeni sunucuda sıfırdan kurulum yapıp eski sunucudan alınan export’u koymaktansa varolan ortamı komple taşımayı seçtim. Taşıma işlemine de jira’nın kurulum(install) ve ev(home) dizinlerinden başladım. Bu iki dizini taşıma işi için dizinlerin bulunduğu path’e geçip şu komutları verdim:
tar -zcvf jira-home-<date>.tar.gz jira-home/
scp jira-home-<date>.tar.gz your_new_server:.
tar -zcvf jira-install-<date>.tar.gz jira/
scp jira-install-<date>.tar.gz your_new_server:.
ssh your_new_server
tar -zxvf jira-install-<date>.tar.gz <your_jira_install_path>
tar -zxvf jira-home-<date>.tar.gz <your_jira_home_path>
Burada dikkat edilmesi gereken nokta özellikle jira-home dizinini sıkıştırmadan önce jira’yı kapatmak gerekiyor. Jira’nın çalışması biterken ev dizinine yazdığı bir takım şeyler var ve bunları kaybetmemek için gereken bir durum bu.
Veritabanını Taşımak:
Bizim düzende veritabanı MySql idi ve şu şekilde olaylar halloldu:
mysqldump -u root -p jira > jira-<date>.sql
scp jira-<date>.sql your_new_server:.
ssh your_new_server
mysql -u root -p jira < jira-<date>.sql
Jira Ayarları:
Jira’nın bir sorun olmadan çalışması için dikkat edilmesi gereken birkaç durum var:
- Yeni sunucuda Java kurulu olmalı ve java path’i düzgün ayarlı olmalı. Jira’nın setenv.sh dosyası üzerinde bununla alakalı bir tanım varsa o tanımı güncellemek gerekebilir. Aksi takdirde jira javaya ulaşamaz ve çalışmaz.
- Jira ev dizininizi eski sunucudan farklı bir yere koyuyorsanız, jira ayarlarında gidip bu dizini belirtmeniz gerekir. Bunun ayarı standart <jira_install>/atlassian-jira/WEB-INF/classes/jira-application.properties dosyasında.
- Mysql kullanıcılarınız ya da kullanıcıların şifreleri değiştiyse bunu da gidip <jira_home>/dbconfig.xml dosyasına anlatmak gerekiyor. Yoksa veritabanına bağlanamadığınız için işler yolunda gitmez.
- Yeni sunucuda farklı bir port üzerinden ya da farklı bir path’ten çalışacaksanız yine gidip server.xml dosyasına bunu anlatmanız lazım.
Jira’yı ayağa kaldırmak:
Taşıma ve ayarlama işleri bittiğine göre jira’yı standart bir şekilde ayağa kaldırabiliriz:
<jira_install>/bin/startup-jira.sh
Sonrasında loglara dalıp jira’nın ayağa kalktığını görmelisiniz
Bitti mi?
Bizim konfigürasyon’da her şey bu kadar kolayca bitmedi. Eğer Crowd/LDAP gibi bir merkezi kullanıcı yönetiminiz varsa işler biraz sarpa sarabiliyor. Kullanıcı yönetiminiz tamamen jira üzerindeyse bu aşamalara ihtiyaç duymamanız gerekiyor.
Crowd ile (tekrar) entegrasyon:
Jira çalışmasına çalıştı ancak sisteme giriş yapmaya çalıştığımda hata aldım. Loglara baktığımda CrowdAuthenticator’e ulaşılamadığını ve bunun tamamen network yüzünden olduğunu gördüm. Eski sunucuda jira ve crowd’un ikisi de localhost üzerinde çalışırken jira’yı yeni bir sisteme alınca artık localhost ile yapılmış ayarların çalışmadığını gördüm. Jira’nın kurulum belgesinde anlattığı adımlara bakıp kurcalamam gereken 2 dosya ve bir veritabanı satırı gördüm:
- seraph-config.xml: Crowd’un sso desteğini kullanıyorsanız burada bir ayar yapıyorsunuz ancak bunun crowd’un sunucu IP’si ile bir alakası yok. Dolayısıyla bu dosyada yapacağımız bir işlem yok.
- crowd.properties: Bu dosyaya baktığımızda ise düzenlememiz gereken 2 satır bulunuyor. crowd.server.url ve crowd.base.url tanımlamaları localhost’lu değerler içeriyordu ve her ikisini de IP içeren satırlar haline getirdim.
- Veritabanı değeri: İşin en zor kısmı veritabanı üzerindeki değer oldu. Normalde jira’nın arayüzünden tanımlanan bu işlem jira’ya giriş yapamadığımız için mysql üzerinden yapmak zorunda kaldım. Öncelikle Jira’nın oluşturduğu tablolardan aradığım değere nasıl ulaşabileceğimi aradım. Birkaç “select * from hede” komutundan sonra cwd_directory tablosunun user directory’lerini, cwd_directory_attribute tablosunun da bu directory’lerin değerlerini tuttuğunu gördüm. Sonrasında şu şekilde komutlar ile işimi hallettim:
DELETE FROM cwd_directory_attribute WHERE attribute_name=”crowd.server.url” and directory_id=<your_directory_id>;
INSERT INTO cwd_directory_attribute(directory_id, attribute_name, attribute_value) VALUES(<your_directory_id>, “crowd.server.url”, <your_crowd_ip>);
Bu işleri de hallettikten sonra her şey sorunsuz çalışmaya başladı
DNS tanımlamanızı güncelledikten sonra artık Jira’nızı yeni sunucusunda kullanabilirsiniz. Kolay gele
ehliyet denen şeyin saçmalığı
Geçtiğimiz yaz sonunda elfcanımla birlikte bir motorsiklet almaya karar verdik. Sonrasında gidip güzelinden bir tane aldık da
Ancak tabi motorsikleti almak motorsikleti kullanmak için tek başına yeterli olmadığından bir de ehliyet kurslarını araştırmaya başladık. Her zamanki bahtsızlığımızla ehliyet almaya karar verdiğimiz an bir sınav döneminin kayıtları bittiği bir ana denk gelmişti ve bu da uzun bir bekleme süreci demekti.
Uzun bir bekleme dönemi dedik ya biz ne kadar uzun olacağını bilmiyorduk. Motorlu taşıtlar sınav takvimi dediğimiz garip takvimi gördüğümüzde elfcanımın ehliyetini almak için 2 buçuk ay gibi bir süre, benimse (zamanında babamın sözünü dinlemeyip B sınıfı ehliyetimi alıp cebimin bir köşesine koymadığımdan) 4 buçuk ay gibi bir süre vardı.
Burada bu senenin sınav takvimi bulunuyor, genelde sınav tarihinden 1 ay sonra bir de direksiyon sınavı bulunuyor. Yazılı sınavın bir kısmından kalan bir kişi bir sonraki yazılı sınavı bekliyor, bunun da süreci 2 ay daha ileriye attığını söylememe gerek yok.
Buraya kadar bir şey yok. Hani sınav takvimi böyledir, ehliyet eğitimi gibi bir eğitim var ve alınması gerekmektedir gibi bir düzene eyvallah diyebiliriz. Sonuçta trafik, ilkyardım ve motor konularını hiç bilmeyen bir insanı eğitip eline trafiğe çıkıp araç kullanabileceğine dair bir belge veriyorsun. O insanın trafik denen şeyde nasıl davranması gerektiğini, nerede durup nerede geçmesi gerektiğini, nerede sinyal vermesi gerektiğini anlatman gerekiyor ki yarın öbür gün o adam dangalak şekillerde araç kullanmasın. Teorikte süper olan bu süreç pratiğe dönünce nasıl oluyor bir anlatayım:
- Kimse ehliyet kursunun verdiği derslere gitmiyor. Ben de gitmedim. Elfcanım bundan önce gittiğinde hocanın “Evet arkadaşlar bu motor, tekrar ediyoruz neymiş? motor” şeklinde ders anlattığını söylüyor. Bu komiklikte bir derse gitmeye gerçekten gerek yok.
- Sınav denilen şey 120 soru falan oluyordu yanlış hatırlamıyorsam ancak bu soruların yaklaşık 100 tanesi son 2 sınavda çıkmış sorular oluyor. Son 3 sınavı ezberleyip sınava giren birinin hiçbir şey bilmeden yazılı sınavı geçmemesi için bir sebep yok. Hatta öyle bir durum ki motorsiklet için(A2 sınıfı ehliyet) fark sınavına gireceksen sürücü kursu sana toplam 30 soru veriyor ve sınav bu 30 sorudan 20sini içeriyor.
- Fark sınavı demişken B sınıfı olup da A2 almak isteyenler sadece 20 soruluk motor sınavına giriyorlar. O 20 soru da söylediğim gibi zaten ezbere bildiğiniz sorular olduğundan çözmeniz maksimum 10 dakika sürüyor(Övünmek gibi olmasın benimki kodlaması dahil 4 dakikada bitti ve aldığım not 100 o_O). Bunun yanında 10 dakikada biten sınav için en az 60 dakika sınav salonunda durmak zorundasınız. Herhangi bir şekilde çıkma şansınız yok, yanınızda kitap gibi bir şey getirme şansınız yok, zaman geçirecek hiçbir şeyiniz yok. Hayatımın en anlamsız 50 dakikasını o sınavda harcadım diyebilirim.
- Sınavlarda bir de şöyle bir saçmalık var. En sona tek kişi kalamıyor sınav salonunda. Yani son 2 kişinin birlikte vermesi gerekiyor sınav kağıtlarını. Bu da en sona kalmış kişi üzerine yapılan bir baskı demek. Sınavını 70 dakikada bitiren sondan 2. kişi son kişinin de bitirmesi için geride kalan 50 dakikasını beklemek zorunda kalabiliyor, son kişi de bunun farkında olursa gerçekten zararlı bir durum ortaya çıkmış oluyor.
- Sınav sorularını ezberlemek dedim ya, A2 ehliyeti almış, sınavına girmiş herkes şu sorunun cevabını bilir: “Motorsiklet arka lastiği değiştirildiğinde hangi parçanın kontrol edilmesi gerekir?”. Bildiniz mi? Hani şu cevabı “Tedarik zinciri” olan soru. O sınavın sonunda bir kişi bana motorda tedarik zincirini göstersin. Eminim ki tedarik zinciri denen şeyin hangisi olduğunu ve nasıl kontrol edileceğini bilen 3 5 kişi ancak çıkar(ben hala bilmiyorum neresi olduğunu). Cevap anahtarına baksan herkes doğru işaretlemiştir.
- Sınav ile alakalı bir örnek daha. Soru şu şekilde:
Aşağıdakilerden hangisi motora giren havayı temizler?
a) Yağ filtresi
b) Su filtresi
c) Hava filtresi
d) Yakıt filtresiArkadaş ben hayatımda bilgiyi bu kadar az ölçen bir soru görmedim. Acaba hangisi doğru. Acaba bu sorunun motor ile ne alakası var? - Bir de yaya geçidinde geçen yaşlı bir amca görünce ne yapmalı tarzındaki bir sorunun şıkları korna çalıp uyarmalı, beklemeyip hızlıca geçmeli gibi şıklar koyuyorlar ki sadece şıklara bakıp soruları çözebilirsiniz.
Buraya kadarki süreç yazılı sınav saçmalıklarıydı. Yazılı sınavı geçenler bir de direksiyon sınavına giriyor ki beni benden alan bir süreç oluyor bu süreç. Direksiyon sınavına sadece tek bir bölgede(tahmin edebileceğiniz üzere sınavın yapılacağı bölge) çalıştık biz. Trafiğe hiç çıkmadık, ehliyet kursunun olmayan araçlarla tek tük karşılaştık. Sınav günü ise araca 2 tane müfettiş bindi ve toplam 4 defa sağa dönüp(kare çizdik) sınavı bitirdik. Aldığım 40 dakikalık direksiyon eğitimiyle 90 gibi bir not aldım ve geçtim. Sınav esnasında sola dönebiliyor muyum, öndeki araçla takip mesafem ne durumda, trafikte araç kullanabiliyor muyum, yokuş yukarı aracı kaydırmadan kaldırabiliyor muyum, yokuş aşağı aracı kaydırmadan durabiliyor muyum gibi tonlarca sorunun cevabını aramadılar bile. Sınav boyunca bakılan tek olay arabaya bindiğinde kemerini taktın mı, aynaları düzenledin mi, sinyalini verdin mi.
İnsanların trafiğe çıkabilmesini, araba kullanmasını sağlayan bir değerlendirme bu kadar yalan bir değerlendirme olmamalı. Çok daha akılcı sorularla, belki yazılı değil sözel sınavlarla, trafiğe çıkılan bir direksiyon sınavıyla, çok daha ciddi bir değerlendirmeyle verilmeli ehliyet. Öyle 2 yıl stajyer olacaksın, yanında birisi olmadan kullanamayacaksın demek de bir çözüm değil bu duruma. Yine düzgün bir eğitim verilmeden, iyi bir araç kullanım bilgisi olmadan kullanacak o adam arabayı. Bütün bunları yapamıyorsan trafik kazalarına direk göz yummuş oluyorsun.
Bunun yanında konu hakkında bilgisi olan, bir şekilde araba kullanma tecrübesi olan bir adamı da ehliyet alabilmesi için 2 ay bekletmek kadar saçma bir durum yok. Merkezi sınav yapacağım diye harcadığın parayla ehliyet kurslarını daha iyi denetip, sayısını azaltarak yerel sınavlarla bu işi çözmek çok daha akılcı bir yöntem. Tabi Türkiye’de işlemez o ayrı.
Bu dönem de bu olaylara kızdım ben işte…
beceriksiz gnome 3
Uzun zamandır masaüstü ortamı(DE) olarak gnome kullanıyorum. Awesome, Xfce, Openbox, Fluxbox, Gnome+Openbox gibi alternatifleri uzun süre deneyip kullandıktan sonra artık bir şeyleri kendim ayarlamaktan sıkılıp dağıtımın(Linux Mint Debian Edition) getirdiği standart masaüstünü kullanmaya başladım.
LMDE ve üzerindeki Gnome2 ile mutlu mesut hayatıma devam ederken, başıma geleceği bile bile debian depomu değiştirip testinge giren gnome 3′ü kurdum. Daha önceden Arch ile denemiştim aslında Gnome 3′ü ve beğenmeme rağmen bir takım temel şeylerin ayarlanamaması ve panel widget’larının uçması sebebiyle benim için standart olmamıştı. Aradan geçen zamanda bir gelişme göstermiştir diye düşündüm ancak yine değişen bir şey olmamış.
Benim için temel gereksinimler ve gnome 3′ün sağlamadıkları şu şekilde:
- En az 4 tane sanal masaüstüm olmalı. Genelde browser, terminal, mail, other diye gruplandırdığım uygulamalar farklı masaüstünde bulunuyor ve daha rahat erişim sağlıyor bana. Gnome 3 ise standart olarak içinde program bulunmayan sanal masaüstü sayısını 1de tutuyor. Bu da bir terminali kapattığımda o terminalin bulunduğu masaüstünde başka bir uygulama yoksa masaüstünün kapanmasına ve benim 3. masaüstümde bulunan mail clientının 2. masaüstüne gelmesine sebep oluyor. Her masaüstüne standart bir kısayol tuşu ile eriştiğimden benim için inanılmaz verimsiz hale geliyor.
- Gnome 3 ile beklediğim en büyük özellik tiling window manager olayıydı. Bu olay kısaca masaüstünde bulunan 2 uygulamanın ekranı ortadan bölüp eşit yer kaplaması ve bunu yapmak için mouse ile tut, boyutlandır, sürükle, bırak işlemleri yapmamak gerekmesiydi. Gnome 3 tiling olayını kde4 ile gelen pencereyi kenarlara sürükleme sonucu tiling ile yapmış. Tamam bu olay güzel ama en azından bir klavye kısayolu koysaydınız hayat daha güzel olacaktı bana. Alt+Shift+Sol ile sola tiling etmek isterdim ben
- Laptopumu evde kullanırken masaüstü bilgisayarımın monitörüne bağlayıp, çift monitör keyfi yapıyorum. Gnome tayfası burada masaüstü davranışını değiştirerek 2. monitörün ekranını ortak bir masaüstü haline getirmiş. Önceden 4 masaüstü x 2 ekrandan 8 tane ekranım varken, şimdi bu sayı 5 ile sınırlı.
Açıkcası Kde4′ün ilk çıktığı zamanki hatalarına karşı masaüstünde devrim yaptığını düşünüyordum. Kde 3.x serisini hiç sevememiş birisi olarak Kde 4.x li sürümleri oldukça uzun süre kullandım. Gnome 3′ün ise neden yapıldığını bilmiyorum. Bunu bilmediğim gibi nereye gideceğini de göremiyorum. Hani x ay sonra adam olacak, süper hale gelecek diye bir beklentim yok kendisinden.
Bu şartlar altında Gnome üç benim için gnome uç oldu
Bir de unity macerası mı yapsak
nerde o eski bloglar(a.k.a. sçtımının sosyal medyası)
Yazı yazmayı oldum olası sevmiş bir insan değilim ama önceden bir şeyler okumayı severdim. Küçükken hikaye, masal gibi kısa süren şeyler okuyordum. Öyle kalın kalın olan ve okuduğum roman sayısı ise baya sınırlıdır sanırım. Azıcık büyüyüp de üniversiteye girince o küçük kitapları okuma huyu blog okuma huyuna dönmüştü bende. Özellikle teknik içerikli bloglar benim kendimi geliştirmeme çok yardımcı oldu.
Upuzun bir makale okumaktan ya da bir sürü detayı olan bir manuel okumaktansa birisinin o konu hakkında yazdığı bir blog yazısını okumak çok daha keyifli oluyordu. Hem bilgiye daha çabuk ulaşmamı hem de o kişinin neyi neden yaptığını falan anlamamı sağlıyordu. Ancak zaman içinde facebook, friendfeed, twitter gibi saçmasapan sosyal medya şeyleri çıkınca takip ettiğim insanlar yazmayı bıraktı. Oturup bir şeyi, tecrübelerini uzun uzun yazmak yerine 2 satırla twitter üzerinden paylaşmaya ya da 5 satırla friendfeed’den #yaydırıp, milletin saçmalıklarıyla uğraşmaya başladılar.
Elbette bu bir tercih meselesi. Herkesin düşüncesine saygı duyuyorum ancak sosyal medya denen şeyin bir takım paylaşımları daha kötü hale getirdiğini düşünüyorum. En basitinden oralarda paylaşılan şeylerin bir arşivi olmuyor. 3 gün önce atılan ve süper bir bilgi içeren bir tweet’i, post’u tekrar arayıp bulma şansınız olmuyor. Yazılan şeyin bir kere okunduğunu içten içe bilmek yazan insanı da daha özensiz yazar hale getiriyor sanırım. Bunların yanında önceden blog yazan adamların zaman yok gibi şeyler söylemesi ayrıca bir komik geliyor ki zamanında o vakti çok rahat bir şekilde yazmaya ayırıyorlardı.
Amacım kimseye laf çarpmak, eleştirmek falan değil. En basit haliyle derdim şu: sıkıldım. Twitter’ı ilk gördüğüm zaman, ki o zamanlar anasayfasında “twitter nedir? aklınıza bir şey mi geldi hemen yazın, o an ne yaptığınızı herkes bilsin, tuvalette sıçarken fikriniz gelince orada bırakmayın” gibi saçma bir çizgi videosu vardı, bu ne biçim şey lan ne gerek var ki demiştim. Şimdi de kendisini uzunca bir süre kullanmış olmama rağmen çok farklı değil düşüncelerim. Twitter benim için para versen yapmazdım dediğim projelerden bir tanesi. Sıkılmama geri dönersek, insanların bilgi paylaşımı metodlarını değiştirmesi ve bunu çöp haline getirmesinden sıkıldım. Evet arkadaş oraya yazdığın şey o an için X kişi tarafından görülebilir, Y tane yorum alabilir, Z kişi like edebilir falan filan ama o bilgiye 2 gün sonra erişemedikten sonra sana ne faydası var, bana ne faydası var?
Ha bunları daha hiç mi kullanmayacaksanız derseniz, öyle bir amacım yok. Sadece bana ters gelen bir durumu yazmak istedim. Tabi bunları yazmak yerine “twitter çok saçma yeaaağğğ, yazıyon 2 gün sonra bulamıyon” diye bir tweet de atabilirdim ama olmadı işte
Konsoldan fare tıklaması tetiklemek
Zaman zaman çeşitli online oyunlara sarıyorum. Sardığım zaman da bir süre sonra sıkılıp bu işi daha kolay nasıl yaparım diye kendime iş çıkarıyorum. Son sardığım oyun php ile yazılmış basit bir rpg oyunu. Arada sırada girip 3-5 şeye tıklayıp sonra kapatıp hayatıma devam ediyorum. Oyunda flash ile yapılmış bir “slots” uygulaması var ve az biraz para ve tecrübe puanı(xp) kazandırıyor. Tabi bunun sıkıntısı jeton sayısı kadar ekrana tıklamak oluyor.
Giriş kısmını geçtikten sonra asıl meseleye gelelim. Linux sistemde mouse’u bir yere sabitledikten sonra oraya otomatik tıklama yapmak istiyordum. Mantık olarak X’e göndereceğim bir komut olmalı ve X de bu olayı benim yerime yapmalı diye düşünsem de başlangıçta C ile yazılmış Xlib.h ve Xutil.h gibi kütüphanelerin kullanıldığı bir yöntem çıktı. Çıktı çıkmasına da sadece basit bir click işlemi için olay kod yazma seviyesine girmemeli diye düşündüğümden biraz daha aramaya inanarak aradığım aracı buldum:
xdotool adında güzel bir konsol uygulaması bulunmakta(geek abiler sağolsun, konsol candır
). Bu uygulama benim istediğim şekilde fareyi yönetmekle birlikte(istediğiniz yönde hareket ettirme yeteneği falan da var) bütün klavye aksiyonlarını da yapabiliyor. Detaylı bilgisi için “man xdotool” komutu(rtfm) yeterli oluyor.
Başlıkta yazdığım olayı tamamlayayım. Konsoldan fareyi yönetip tıklama işlemini tetiklemek için:
xdotool click 1
komutu yeterli oluyor. Bu komut fare ile sol tık yapmışssınız gibi davranıyor. 1 yerine parametre olarak 2 verdiğinizde orta tuşu, 3 verdiğinizda sağ tuşu tetikleyebilirsiniz.
Tabi benim durumumda bir kere tıklamak yetmiyordu, tıkladıktan sonra biraz bekleyip aynı yere bir daha tıklamak gerekiyordu. Basit bir bash script döngüsü yetti bu işi halletmeme:
while [ "1" ]; do
sleep 7; #7 saniye beklemek için
echo "click";
xdotool click 1;
done;
Bu da böyle gereksiz bir bilgi oldu işte
Mühendis Kafası
Az önce kendimden korktum. Normalde bir yerlere e-posta atarken e-postanın altındaki imza formatım şu şekilde oluyor:
<Ad Soyad>
<Telefon>
Peki az önce ne yaptım?
<Ad Soyad>
<IP adresi>
Evet, oraya gittim bir adet IP adresi yazdım. Hem de 192.168.x.x formatında. Hani bana ulaşacak adam yerel ağdan ulaşsın dışarıdan istek yapamasın falan filan.
Beyin durdu sanırım ama hadi hayırlısı
yucomp’tan mezun oldum :)
Yazabileceğim, anlatabileceğim çok çok fazla şey var. Yucomp ya da açık adıyla Yeditepe Üniversitesi Bilgisayar Topluluğu’nda başkan, çalışan, teknik eleman, denetlemeci, muhalif adam gibi çeşitli durumlarda bulunarak son 4 senemi geçirdim.
Hikayenin giriş kısmından başlamak gerekirse üniversiteye geldikten sonra ilk senemin çoğunluğunu Atatürkçü Düşünce Kulübü, Dans Kulübü, Felsefe Kulübü, Müzik Kulübü gibi kulüplerin içinde geçirdikten sonra artık bölümümle alakalı bir şeylere bulaşmalıyım diyerek önce genel sekreter sonra da başkan olarak Mühendislik Kulübü’ne bulaşmış oldum. Mühendislik Kulübü son zamanlarını yaşadığından ve etkinlik yapacak bir ekip bulmanın imkansızlığı içinde olduğundan kulübü feshederek o zamanki başkan Erhan‘ın beni dürtmesiyle Bilgisayar Kulubü’ne(o zamanlar adı da kulüptü) dikey geçiş yapmış oldum ve hikaye başlamış oldu.
Kulüpte ilk dönemi ufak tefek 3 5 tane microsoft ve bilge adam etkinliği yaparak tamamladıktan sonra o zamanki yönetimin görevi bırakmasıyla Adil, Kadir, Aycan, Şerife ve ben kendimizi yönetim ilan edip ateşe attık. Ateşe attık dememin sebepleri kısaca o zamanlar yucomp çatısı altında aktif olarak çalışan kimsenin olmaması, çalışacak insanların ne yapacağını bilmemesi, bölümdeki insanların hatta hocaların kulübün varlığından haberdar olmamasıydı. Buna rağmen zaman zaman yönetimdeki 5 kişi olarak zaman zaman Engin‘in katılımıyla sayımızı bir arttırarak neredeyse her hafta düzenli toplantılar yaptık. Her seferinde bu sefer kısa yapalım, konularımız belli olsun hemencecik bitsin diye uğraşmamıza rağmen gerek benim cıvıklıklarım, gerek Kadir’in uykusuzlukları, gerek Adil’in prosedürleri gerekse başka bir takım etkenler o toplantıların bir şekilde bitmemesine sebep oluyordu
Şunu yaptık bunu yaptık bu geldi çok güzeldi diye yazmayacağım buraya uzun uzun. 10 kadar Özgür Yazılım ve Linux temalı seminer düzenledik. Elimizden geldiğince güzel bir şeyler yaptık, yapmaya çalıştık. Bir kısmını becerdik, bir kısmını elimize yüzümüze bulaştırdık ama sonuç olarak güldük, eğlendik, koşturduk, çalıştık, düşündük ve kocaman bir seneyi bitirdik.
Yönetimdeki ilk senenin sonunda o zamanki şartlara göre çok riskli bir hamle yaptık. Aynı ekip bir sene daha devam edip yine çekirdek kadro olarak devam etmektense yönetimi sorumluluk alıp elini taşın altına koyacak başka arkadaşlara(işin riskli olan kısmı burasıydı yeni gelecek ekibin nasıl bir performans sergileyeceğini bilmiyorduk) bırakıp biz dışarıdan destek verelim dedik. Bunu yapmaktaki tek amacımız toplantıya gelen kişi sayısını 6 kişinin üstüne çıkarmaktı. Bir işe yarayıp yaramayacağını biz de bilmiyorduk ama denedik. Ve sonuç olarak işe yaradı
Toplantıları artık Destan, Burak, Abdullah, Melda ve Ayberk yapıyordu. Biz de elimizden geldiğince katılıp destek oluyorduk. Arada Haktan, Barış ve Gizem’i de toplantı ekibine katınca 10 kişinin üzerine bile çıktığımız oluyordu ki bu sayı bir zamanlar hayaldi
Toplantıları daha fazla kişiyle yapmak hem daha fazla etkinlik fikri üretmemize hem de fikirlerimizi daha rahat uygulamamıza olanak sağladı. Bunun yanında sadece 1 2 saatlik seminerler düzenlemektense daha büyük çapta işler yapmak istedik. Aklımıza gelen ilk 2 fikir Bilgi Üniversitesi’nden başka bir yerde Linux Şenliği düzenlenmesini sağlamak ve Bilmök‘ü üniversitemizde düzenlemekti. Linux Şenliği için LKD ekibi ile oturup konuştuktan sonra Özgür Web Günleri gibi yeni bir organizasyon düzenlemenin daha mantıklı olduğuna karar verdik(buraya geri geleceğim). Bilmök içinse aday olmak ve kazanmak gerekiyordu. Adaylık başvurumuzu yaptık ve sunumu her ne kadar düşündüğümüz gibi bir ekip kurarak hazırlamak yerine 3-5 kişinin üzerine kalan bir şekilde hazırlasak da Adil, Kadir ve Destan’ın müthiş sunumuyla bu sene için ev sahipliği hakkını kazandık.
Son olarak büyük etkinlikler yapacağımız bir seneye girdik. Yönetimde ufak tefek bir iki değişiklik oldu(ismini yazmadığım bir Eren kaldı onu da yazayım da tam olsun:) ) Etkinlikler büyük olacağı için bizim de bir şekilde çekirdek ekipten çıkıp büyümemiz, iş gücünü arttırmamız gerekiyordu. Önceki iki seneden aktif olarak çalışan bir kulüp olmanın yanısıra 2 tane de yapılacak büyük etkinliğimiz olduğu için insanlar kulübe öcü gibi bakmaktan vazgeçip toplantılara gelmeye başladılar. Sene başında 30 kişinin katıldığı bir organizasyon ekibi toplantısı yaptık(evet, çocuklar gibi şendik. 30 kişi lan:)). Ben 2 3 toplantı sonra bu sayı yarıya iner diye karamsar bir düşünce haline girsem de işler o şekilde yürümedi. Özellikle Özgür Web Günleri’nde hiç tecrübesi olmamasına rağmen elinden gelenin en iyisini yapmaya çalışan ekip üyeleri kulübü hiç bırakmadan devam ettiler.
Bu süreç içerisinde kulüp olarak baya bir kurumsallaştık. yucomp.com uzantılı e-posta adreslerimiz oldu. İş takip sistemi kurduk. Web sayfamızı, logomuzu yeniledik. Her ne kadar aktif olarak kullanamasak da soru.yucomp.com, foto.yucomp.com, viki.yucomp.com gibi hizmetleri kullanıma açtık. Bunların hepsi önümüzdeki dönemlerde iş görecektir diye düşünüyorum
Ve son olarak kocaman bir ekip olarak yaklaşık 1500 kişiyi ağırlayarak Bilmök’ü düzenledik. En son saydığımızda 3 günlük etkinlikte 40 arkadaşımız çalışmıştı. Burada tek tek isim yazmasam da onlar kendilerini biliyor ve hepsine sabırları, özverileri, emekleri için kendi adıma teşekkür ederim
Şu anda topluluk içinde aktif olarak çalışan arkadaşlar eminim ki her şeyi daha iyi yapmak için ellerinden geleni yapacaklar. Benim için yolun sonu geldi ne yazık ki. Okuldaki derslere ağırlık vermem, bir işte çalışmam, kendime ve elfcanıma vakit ayırmak istemem ve son olarak 4 sene gibi uzun bir süredir işin içinde olmam gibi sebepler yüzünden yucomp çatısı altında çalışmalarıma bir son veriyorum. Bir nevi okulumdan mezun oluyorum. Okulda ne kadar eğitim alırsam alayım toplulukta yaptığım kadar farklı şeyler öğrenemeyeceğimi biliyorum bu yüzden yucomp’u gayet okulun üzerinde tutabiliyorum
Yucomp içinde geçirdiğim süre boyunca istemeden, farkında olmadan birilerini kırdıysam, üzdüysem affola. Bir sayfayı kapatmadan önce aklıma geldiği kadarıyla yucomp’un bana öğrettiklerini listelemek istiyorum
yucomp sayesinde
- Bireysel düşüncelerden sıyrılıp olaylara geniş açıdan bakabilmeyi,
- Benim düşündüğümün tam tersini düşünen insanlar olsa da onlarla tatlı dille kavga etmeyi,
- Topluluk içinde konuşabilmeyi, derdimi anlatabilmeyi,
- E-posta listelerini verimli bir şekilde kullanmayı, (Çok çok iyi yerlerde çalışıp da hala e-posta atmayı, cc, bcc kavramlarını bilmeyen insanları gördükçe gülüp geçiyorum)
- Sunucu üzerinde bir şeyler kurup yönetmenin zorluklarını,
öğrendim. Bunun yanında en son sayıma göre 2 yeğenim, 1 kardeşim, 1 eniştem olmuştu
Evet, biz bir aileyiz ve umarım hep öyle kalacağız:)
Sevgili yucomp, yeniden görüşene dek hoşçakal!
Vim’de çalıştığın dosyanın adını görmek
Sistemde farklı terminal ekranlarında birkaç tane vim açıkken bir süre sonra hangi ekranda hangi dosya vardı yanılgısına düşebiliyorum. Vim’de birden fazla dosya açınca dosya adını alt tarafda beyaz bir satır içinde yazıyordu. Ancak tek dosyayla çalışırken bu satır çıkmıyordu.
Biraz araştırdıktan sonra bu satırın ‘statusline’ satırı olduğunu ve varsayılan olarak birden fazla dosya varsa görünür duruma geldiğini öğrendim. Bu ayarı sürekli görünür konuma getirmek için Vim’de
:set laststatus=2
komutunu vermek yeterli oldu. Tabi bu komutu vimrc dosyama da ekleyip her zaman çalışacak hale getirmeyi de ihmal etmedim.
Bu da böyle bir bilgi oldu, afiyet olsun
Vim’de yapılacaklar listesi (a.k.a. todo list)
Konsolla tanıştıktan sonra vazgeçemediğim bir editör oldu benim için vim. Sadece dosyalarda ufak tefek şeyleri düzenlemek için değil, geliştirme yaparken kullandığım bir araç haline geldi. Öyle ki ‘IDE’ kullanmanın bir artısını göremiyorum bile(doğrudur, yanlıştır tartışmıyorum. belki de kendi sadistliğimden kaynaklanıyor bu davranış ama vim alışkanlık haline geleli çok oldu
). Vim kullanmaya alıştığım kadar alıştığım bir başka kavram da “tiling window manager” kavramı. Pencerelerin üstüste binmesindense her şeyin yanyana durması ve baktığım zaman hangi pencerede ne var görmemi sağlayan bir kavram bu. Alışkanlıktan dolayı screen veya tabbed-terminaller(bugün öğrendim ki vim’in 7 sürümü ile tab özelliği gelmiş. :tabnew komutuyla yeni tab açılıyormuş) ile başka vim dosyaları açmaktansa vim üzerinde :split <filename>, :vsplit <filename> gibi komutlarla birden fazla buffer kullanıyorum. Sonuç olarak şu şekilde bir vim ekranım oluyor:
Uzun zamandır rahatça kullanabileceğim bir todo list uygulaması arıyorum. Basit bir şey bulamadığım için kendim yazmaya bile niyetlendim(tabi tembelliğim yüzünden yalan oldu). Son zamanlarda bilgisayarımın bir yerlerinde bir todo dosyası tutup bu dosyayı conky ile masaüstüme bastırmak gibi bir düzene girdim. Bu yöntem unutkanlığımı azaltmamda ve işlerimi düzene koymamda baya etkili oldu. Bunun yanında geliştirme yaparken genelde masaüstüne değil terminalime ve vim’e bakıyorum. Bu yüzden todo dosyamı vim ekranımda göstermeye karar verdim. Dosyayı bufferlardan bir tanesinde göstermek sorun değildi. Kısaca :vsplit todo komutunu verince dosya görünür hale geliyordu. Ancak vsplit komutu ekranı ortadan ikiye böldüğünden ve ben dosya ekranın sağ tarafında küçük bir alan kaplasın istediğimden her seferinde Ctrl-w l tuş kombosunu bir kaç kere yapmak zorunda kalıyordum(bu işlemlerle alakalı detaylı bilgi burada var). Bugün biraz daha detaya inmek için kendimi RTFM moduna sokup vim’in manuallarını okudum. Yapmak istediğim şey :vsplit komutunun başına kaç harflik alan kaplamasını istiyorsam onu yazınca çözülüyormuş. Sonuçta :20vsplit ~/todo komutunu verip istediğim şeyi elde ettim.
İstediğim şeye kavuşmuştum. Yapılacak işlemi biraz daha kolaylaştırmak için .vimrc dosyama şu iki satırı da ekledim:
map <F6> :20vsplit ~/todo<CR>
map <F7> :bdelete ~/todo<CR>
Böylece vim kullanırken F6′ya basınca yapılacaklar listemin olduğu buffer açılacak F7′ye basınca o buffer silinecek hale geldi. Artık yapılacak işlere ulaşmak çok daha kolay
Farklı kullanıcı isimleri için ssh ayarlamak
Gerek şirket sunucularında çalışmak için gerek kendi sunucumu güncellemek için sıklıkla ssh kullanıyorum. Kullanırken kendi sunucularımdaki kullanıcı adımla şirket sunucularındaki kullanıcı adı birbirinden farklı olduğu için her seferinde
$ ssh <kullanıcı_adı>@<host_adı>
şeklinde bir komut girmem gerekiyordu ve bir şekilde gidip kullanıcı adını yazmayı unuttuğum için bir bağlantı yapmak için bayağı uğraşmış oluyordum.
Artık tembellik yapmayayım(bir şeyler araştırmaya üşendiğim için başka bir şey için daha fazla uğraşamam baya ironik o da ayrı bir konu) da şu olayı nasıl daha kolay hale getireyim araştırayım dedim. İlk aklıma gelen çözüm .bashrc dosyama sunuculara bağlanmak için kullandığım komutları alias olarak atamak oldu ancak bunun daha uygun bir yolu vardır diye düşündüm. Biraz araştırınca ssh ayar dosyalarıyla bunun çok basit bir çözümü olduğunu öğrendim.
Ssh ayar dosyası kullanıcı dizini altında
/home/username/.ssh/config
dosyasında bulunuyormuş(yoksa da oluşturunca oluyor). Bu dosyayı
Host host1
User zafer
Hostname host1.myhost.com
Port 8080Host host2
User xaph
Hostname host2.myotherhost.com
Port 8888
şeklinde düzenleyince geriye
$ ssh host1
$ ssh host2
komutlarıyla ssh bağlantısını yapmak kaldı. Bu yazı da böylece bitmiş oldu.




