Thursday, September 8, 2011

Backup Trac

Trac üzerinde çalışma yapmadan önce yedek almakta fayda var.

http://trac.edgewall.org/wiki/TracBackup#TracBackup


Kullandığım komut;


$ trac-admin /path/to/projenv hotcopy /path/to/backupdir


pardus2011 Erdem # trac-admin /ABCKonutlari/ hotcopy /home/Erdem/TracBackup/20110908
Hotcopying /ABCKonutlari to /home/Erdem/TracBackup/20110908 ...
Hotcopy done.
pardus2011 Erdem #

Sunday, August 28, 2011

Trac on Pardus

Windows XP'nin kapalı kutu sistemi ve Trac ve bileşenlerini kurarken kullandığım üçüncü parti yazılım (BitNami) nedeniyle, karşılaştığım sorunlar ile uğraşmak ve bu sorunları çözmek gerçekten zorlaştı.

İlk başta resmin tamamımı görmemi sağlayan, BitNami'yi Windows XP'den kaldırdım. Windows işletim sistemi kaynak doküman ve bendeki Windows'a olan güven eksikliği nedeniyle çalışmalarıma Pardus üzerinde devam edeceğim. Artık daha fazla "nasıl" (how-to) belgesini kaynak olarak kullanabiliyorum.

Bilgisayarımda kurulu Pardus'un 28 Ağustos 2011 itibarıyla tüm güncellemeleri tamamlanmış durumda.

İşletim Sistemi sürüm bilgisi şöyle;
Linux pardus2011 2.6.37.6 #1 SMP Wed Mar 30 16:31:56 EEST 2011 i686 i686 i386 GNU/Linux

Pyhton 2.7.1 kurulu;
Python 2.7.1 (r271:86832, Apr 28 2011, 14:34:05)
[GCC 4.5.2] on linux2

Kurulu setuptools bilgisi ise şöyle;
Name : python-setuptools, version: 0.6_11, release: 10
Summary : Python setuptools

SQLite database konusunda ise Phytho 2.7.1 kurulu olduğu için ek bir kurulum yapmadım. "If you're using Python 2.5 or 2.6, you already have everything you need." http://trac.edgewall.org/wiki/TracInstall#ForSQLite

İleride version kontrolü de yapmak istediğim için Subversion'ın da kurulu olmasını istiyorum. Sistemime kurulu subversion bilgileri ise şu şekilde;
subversion, version: 1.6.17, release: 68

Tek eksiğim Genshi, şablonlama sistemi.
"Genshi is a Python library that provides an integrated set of components for parsing, generating, and processing HTML, XML or other textual content for output generation on the web." http://genshi.edgewall.org/

Genshi'nin kaynak kodunu tar.gz olarak indirdim.
http://genshi.edgewall.org/wiki/Download#SourceTarballs

Sıkıştırılmış dosyayı açtıntan sonra, kullanıcı yetkilerimi "root"a çevirdim. İnternet sitesinde açıkladığı şekilde yazılımı kurdum.
http://genshi.edgewall.org/wiki/Documentation/0.5.x/install.html#id4

Aslında tek yaptığım komut satırına,
 
$ python setup.py install

yazmak oldu. Kurulum sırasında bir hata almadım.

Ardından Trac'in kaynak kodu dosyasını tar.gz olarak indirdim.

http://trac.edgewall.org/wiki/TracDownload

Sıkıştırılmış tar.gz dosyasını açtıktan sonra, (bu arada hala root yetkilerine sahibim)

$ python ./setup.py install

komutu ile kurulumu gerçekleştirdim. Kurulum sırasında bir hata almadım.

Kurulum tamamlandıktan sonra sıra Trac Environment'ın oluşturulmasına geldi.

$ trac-admin /ABCKonutlari initenv

komutu ile gerekli proje klasör ve dokümanları /ABCKonutlari oluşturuldu.

(Klasörler kök dizinde oluştu.(/) Aslında projenin kurululacağı "Path"i daha anlamlı bir şekilde verebilirdim. Aklımda hiç bir dizin planlaması olmadığı için şimdilik bu şekilde kalması benim için problem değil. İlerleyen günlerde Trac'e ulaşımın Apache server üzerinden sağlanması sırasında bazı zorluklar ile karşılaşırsam o zaman bir plan yaparım.)

Trac'e standalone bir server olarak ulaşılmasını sağlayan http://trac.edgewall.org/wiki/TracInstall#RunningtheStandaloneServer

$ sudo tracd --port 8000 /ABCKonutlari

komutu ile deneme projem "ABC Konutlarına"

http://127.0.0.1:8000/ABCKonutlari

adresinden ulaşabildim.

"tracd" komutunu "sudo" ile yazmamın sebebi, konsolda komutu çalıştıran kullanıcının /ABCKonutlari klasörüne ve database dosyasına okuma-yazma hakkına sahip olması gerekliliği. Farklı bir kullanıcı ile komutu çalıştırdığınızda internet arayüzünde size bir hata mesajı veriyor.

Traceback (most recent call last):
  File "build/bdist.linux-i686/egg/trac/web/api.py", line 440, in send_error
    data, 'text/html')
  File "build/bdist.linux-i686/egg/trac/web/chrome.py", line 827, in render_template
    message = req.session.pop('chrome.%s.%d' % (type_, i))
  File "build/bdist.linux-i686/egg/trac/web/api.py", line 216, in __getattr__
    value = self.callbacks[name](self)
  File "build/bdist.linux-i686/egg/trac/web/main.py", line 300, in _get_session
    return Session(self.env, req)
  File "build/bdist.linux-i686/egg/trac/web/session.py", line 198, in __init__
    self.get_session(sid)
  File "build/bdist.linux-i686/egg/trac/web/session.py", line 219, in get_session
    super(Session, self).get_session(sid, authenticated)
  File "build/bdist.linux-i686/egg/trac/web/session.py", line 61, in get_session
    db = self.env.get_db_cnx()
  File "build/bdist.linux-i686/egg/trac/env.py", line 328, in get_db_cnx
    return get_read_db(self)
  File "build/bdist.linux-i686/egg/trac/db/api.py", line 90, in get_read_db
    return _transaction_local.db or DatabaseManager(env).get_connection()
  File "build/bdist.linux-i686/egg/trac/db/api.py", line 152, in get_connection
    return self._cnx_pool.get_cnx(self.timeout or None)
  File "build/bdist.linux-i686/egg/trac/db/pool.py", line 226, in get_cnx
    return _backend.get_cnx(self._connector, self._kwargs, timeout)
  File "build/bdist.linux-i686/egg/trac/db/pool.py", line 146, in get_cnx
    raise TimeoutError(errmsg)
TimeoutError: Unable to get database connection within 0 seconds. 
(TracError(u'The user erdem requires read _and_ write permissions to the database 
file /ABCKonutlari/db/trac.db and the directory it is located in.',))

Bir sonraki konumuz Trac için kullanıcı tanımlama olacak. Kullanıcıların nasıl tanımlandığına standalone bir server için değil, Apache Server ile yayımlanan bir Trac için bakacağız.

Apache "nasıl" dokümanlarını okumaya devam. http://httpd.apache.org/docs/2.2/en/howto/

Sağlıcakla kalın,

Thursday, August 25, 2011

Apache httpd

Konu takip sisteminin bir kaç programın entegre çalışması ile mümkün olduğunu öğrendim. (Trac, Subversion, Apache httpd, Python, SQLite, Setuptools)

Bu programlardan olmazsa olmazları trac, setuptools, genshi, phython ve sqlite (veya destekelenen başka bir veri tabanı) http://trac.edgewall.org/wiki/TracInstall#MandatoryDependencies

Farkettiğiniz gibi Trac Apache httpd ve Subversion'sız da çalıştırılabiliyor ama ben bu iki programı da kurup kullanmak istiyorum.

Şuan yaşadığım sorunlar web sunucusu Apache ve Trac ile alakalı. Bu sorunların temelinde bilgi eksikliği yatıyor. Bu nedenle önümümüzdeki günleri Apache httpd öğrenerek geçireceğim. Resmi internet sayfası oldukça güzel hazırlamış. http://httpd.apache.org/ Bir tane de kitap almayı düşünüyorum.

Wednesday, August 24, 2011

500 Internal Server Error

Dün akşam Trac'a Account Manager Plugin'ini yüklerken, biraz deneysel yaklaşıp, webadmin arayüzünden ve komut satırından bazı komutlar girdim. Sonuçta sunucu çöktü ve şuan erişilemiyor. 

Böyle bir hatanın proje sırasında gerçekleştiğini düşününce biraz korkutucu geldi. Diğer taraftan da esas uzmanlığın hata yönetimi ve çözümü olduğunu düşündüm. 

Sonuç olarak, her hataya, standart bir yaklaşım süreci ile bakılması ve hataların çözümleri ile bilgi birikimi sağlanması, Trac'in inşaat sektöründe (göreceli olarak bilgisayar dünyasına uzak) kullanılmasını sağlayacak önemli yapı taşlarındandır. Bu nedenle karşılaştığım hataları da bu blogda paylaşacağım.

Bu arada Yedek (Back-up) alarak çalışmanın önemini bir daha görmüş olduk. Özellikle sistem üzerinde işlemler yapmadan önce yedek almayı unutmayın.



Monday, August 22, 2011

Trac'e uzaktan erişim

Trac ve bileşenlerini Windows XP yüklü bilgisayarıma kurdum. BitNami, kurulumu toplu bir paket halinde yaptığı için, bileşenlerin kurulum detaylarına girmedim. (Resmin tamamına odaklanmam için iyi oldu. İlerleyen günlerde detaylara inerim.)

Apache sunucu yazılımı da kurulmuş. Trac arayüzüne bir internet gezgini (firefox, iexplorer) ile ulaşabiliyorum. ADSL modemimde yaptığım ufak bir ayar ( NAT ile port yönlendirmesi) ve IP adresim ile dışarıdan Trac'e erişim sağlayabiliyorum.

Bundan sonraki adımım bir şantiyeyi Trac de modellemek...

Thursday, August 18, 2011

Trac on Windows

Uzun ve iş bakımından yoğun bir aradan sonra Trac ile tekrar ilgilenebildim. Trac'i windows üzerine, komple bir paket halinde kuracak olan BitBami dosyasını indiriyorum. http://bitnami.org/download/files/stacks/trac/0.12.2-3/bitnami-trac-0.12.2-3-windows-installer.exe

Windows'da bazı temel kavramları çözdükten sonra, Linux üzerinde kurulumu deneyeceğim. 

Bu arada dikkatimi çeken diğer bir "project and issue tracking" yazılımı daha oldu; Jira

İlgilenenler için kısayolunu kopyalıyorum. Trac'i çözdükten sonra bakarsınız Jira ile de biraz çalışırız.

Sonuçta geleceğin "Proje ve Şantiye Yönetimi" yazılımları "issue tracking" yazılımları olacak, ilgilenmekte yarar var :)

Tuesday, March 22, 2011

Trac Bileşenleri

Trac İnternet sitesindeki rehber kısmını okuduğumda gördüm ki; Trac 5 ana bölümden oluşuyor. Bu bölümleri ve kullanım amaçlarını aşağıdaki şekilde özetleyebiliriz.

1. Trac Bileşenleri

1.1. The TracWiki:
Bildiğimiz ve alıştığımız Wiki, Trac projesinde sayfalar oluşturulup paylaşılmasını, belirli formatlara sahip yazılar yazılmasını ve Trac modülleri arasında linkler kurulmasını sağlayan sistemdir.

1.2. The TracTimeline:
Trac Timeline, projenin geçmişin tamamındaki olaylara (events) kronolojik bir bakış sağlar. Bu olaylar şu şekilde sıralanabilirler.
a) Wiki sayfa olayları (oluşturulma ve değişiklik)
b) Etiket olayları (oluşturulma ve çözüme ulaşma)
c) Ana Kod değişiklikleri (Bilgi havuzu kontrolleri)
d) Kilometretaşları olayları (kilometretaşı tamamlamaları)

1.3. The TracRSS:
Proje genelindeki ilerlemenin basit bir şekilde takip edildiği kısımdır. Trac içindeki bir çok modül RSS (Really Simple Syndication) ile uyumludur.
“TracTimeline — Use the RSS feed to subscribe to project events.
Monitor overall project progress in your favorite RSS reader.
TracTickets, TracReports, and TracQuery — Allows syndication of report and ticket query results.
Be notified about important and relevant issue tickets.
TracBrowser and TracRevisionLog — Syndication of file changes.
Stay up to date with changes to a specific file or directory.”

1.4. The Version Control Subsystem

1.4.1. Repository Browser: The repository browser, Trac çevre bileşenleri ile alakalı klasörlerin ve saklanmış dosyaların belirli revizyonları dolaşmak için kullanılmaktadır.

1.4.2. Trac Changeset Module: Changeset modül ile yapılan değişiklikler hakkında bilgiler tutulmakta ve renkler ile görsellik kazandırılmaktadır. Daha detaylı incelemeyi ileriki aşamalara bırakıyorum.

1.4.3. Trac Revision Log: Revizyon Log’u, ilgili nesne ile ilgili reizyon geçmişini listelemektedir. Daha detaylı incelemeyi ileriki aşamalara bırakıyorum.

1.5. The Ticket Subsystem: Benim, inşaat/şantiye yönetimde en etkin şekilde kullanılacağını düşündüğüm bölümdür.

1.5.1. Trac Tickets: Etiketler basit ama etkili konu ve hata takip sağlamaktadır. Hata takip terimi inşaat işleri için farklı bir şekilde yorumlanabilir. Bununla birlikte Etiketler (Tickets) günlük, haftalık ve aylık iş emirleri olarak düşünülebilir. Bu sayede iş emirlerinin ilgili kişiye atanması, bilgilendirilmesi ve değerlendirilmesi kolaylaştırılmış olur. Etiketlerin fonksiyonel raporlanması ise iş ile alakalı farklı yorum ve değerlendirmelerin dakikalar içinde gerçekleşmesini sağlayacaktır.

1.5.2. Trac Reports
Etiketlerin raporlanmasını sağlayan alt bölümdür.

1.5.3. Trac Query
Etiketlerin farklı kriterler kullanılarak sorgulanmasını sağlayan alt bölümdür.

1.5.4. Trac Roadmap
Projenin geleceğinin planlandığıi kilometre taşlarının (milestones) oluşturulduğu Yol Haritasıdır.

Friday, February 11, 2011

Yol Haritam

Hedefime ulaşmak için neler yapacağım?


1. Trac bileşenlerinin neler olduğunu ve nasıl kullanıldığını öğreneceğim.

2. Trac yazılımını bir bilgisayara kurup, uzaktan erişim sağlayacağım.

3. Trac bileşenlerinin proje/şantiye yönetiminde hangi süreçlerde kullanılabileceği hakkında düşüneceğim.

4. Trac bileşenleri ile proje/şantiye yönetimindeki süreçlerdeki uygunluk teyidinden sonra, ilgili bileşende ne gibi eklentiler ve çıkarmalar yapılacağına karar vereceğim.

5. Karar verilen ekleme ve çıkarmaları, teknik olarak nasıl yapıldığını öğrenip, program kodları üzerinde lisansının izin verdiği şekli ile değişikler yapacağım.

Gönül isterdi ki her işte olması gerektiği gibi yukarıdaki fazlara süreler atayayım. Projeme ne kadar zaman ayıracağımı bilemediğim için süre ataması yapamıyorum. (Yani kaynak miktarlarını bilmiyorum) O yüzden alt alta yazılmış basit bir liste yaptım. Hiç yoktan iyidir :)

Tuesday, February 8, 2011

The Trac Project

Proje/Şantiye Yönetimi yaparken kullanacağımız program: Trac. Bu programı kullanmadan önce programda inşaat projelerinin yapısına uygun bazı değişiklikler yapacağız. (işte know-how burada yatıyor.) Nasıl mı yapacağız? Ben de bilmiyorum bu günlük ile birlikte öğreneceğiz:)

Önce şurdan başlayalım;

"Trac is an enhanced wiki and issue tracking system for construction related projects. Trac uses a minimalistic approach to web-based project management. Our mission is to help professionals manage project while staying out of the way. Trac should impose as little as possible on a team's established development process and policies."

Orjinal paragraf;

"Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. Our mission is to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies."

Şimdi geriye kaldı; 3 nalla bir at.

http://trac.edgewall.org/

Wednesday, February 2, 2011

Amaç

Özel olarak günlüğüm (blogum);  "Konu Takip" (Issue Tracking) programlarının inşaat projelerinin her türlü aşamasında, verimi arttıracak şekilde kullanılmasını hedeflemektedir.  Bu sayede şantiyelerin büyük enerji harcayıp başarısız oldukları, basit günlük konu takiplerinin, saatler alan gereksiz günlük toplantıların önüne geçilecek, konu takibinin yakından yapılması nedeniyle planlama, bütçeleme, sözleşme hazırlığı ve hakediş gibi daha detaylı takipler, iş kırılımlarında ilgili yetkili kişiler tarafından toparlanabilecektir.
 
Daha en başta, konuları ilgili insanlara atamada, bunların takibinde ve iletişimde problem yaşanan şantiyeler, daha önemli olan detaylı çalışma gerektiren alt konulara eğilebilecektir. En temeldeki konularda problemler mevcutken planlamanın, bütçenin, sözleşmelerin ve hakedişlerin ne kadar geliştirilebildiği inşaat sektörünün mevcut durumdan bellidir.

Projem ne değildir?

1) Kullanabilmek ve anlamak için aylarca kurs alının bir ERP (Enterprise Resource Planning) programı değildir.

2) Kullanımı ve uygulaması sadece birkaç kişi tarafından anlaşılabilecek, karmaşık bir sistem değildir.

3) Yüksek hızda bilgisayarlar, işletmek için yüksek zeka gerektiren bir sistem değildir.

Projem;

5N 1K üzerine kurulmuştur: Ne? Ne zaman? Nerede? Nasıl? Neden? Kim?

Ne? = Hangi İş Kalemi? (Activitiy)

Ne zaman? = İş Programı? (Work Schedule)

Nerede? = Maliyet Alanı?

Nasıl? = Yapım Metotları? (Method of Statement)

Neden?= Analiz, Forum tartışmaları,

Kim? = Ekipler, Deprtmanlar, Kişiler.

ERP sistemleri neden inşaat sektöründe kullanılamamaktadır?

1) İnşaat Sektöründe daha en basit, temel konularda düzensizlikler ve uygunsuzluklar vardır. Bunlar düzeltmeden üzerine inşa edilmeye çalışılan karmaşık sistemler temelden çökmektedir.

2) İnşaat projelerinde her bir proje biriciktir (Unique). Biricik projeler biricik problemler ve biricik çözümler demektir.  Farklı problemleri tek bir çözüm yolu ile çözmek ve bunu sistemleştirmek imkansızdır. Bu nedenle sistemleştirilmesi gereken detaylı bir çözüm tekniği değil, problemlere genel yaklaşım yöntemidir.

Projemin Yararları neler olacaktır?

1) İnşaat Projelerinde iş programı, bütçe, hakediş, sözleşmeler v.b. konuları kendi işleyiş sistemlerine karışmadan farklı bir platformda atama,takip etme, sorgulama imkanı sağlayacaktır.

2) Bilgisayarda proje sürecinin tarihsel bir sıralaması tutulduğu için, geçen her günün, yorumların, konuşmaların kaydı tutulmuş olacak, arama ve yedeklemeler yapılabilecektir.

3) Hedef saptıran, işten kaytaran, bilinçli veya bilinçsiz personelin “anlamamıştım”, “duymadım”, “e-posta gelmedi” v.b. bahanelerinin önüne geçilecektir.

4)