Salı, Mart 27, 2007

Sürüm Yönetimi Pratikleri - III

Sürüm Yönetiminde en önemli konulardan biri de Hata ve İstek Takip araçlarıdır. (Issue Tracking Tools) Maalesef ülkemizde hala birçok yazılım evi ve departmanı bu takip işini e-mail veya telefonla yapmaktadır.

Doğal olarak bu firmalar yazılım yaşam döngüsü boyunca ortaya çıkan işleri düzgünce kayıt altına alamadıkları için takip edememekte, takip edemedikleri bir ürünün de Sürüm Yönetimini yapamamaktadırlar.

Bazı firmaların yaptığı diğer bir yanlış iş ise farklı talep tipleri için farklı araçlar kullanmalarıdır. Eğer hataların (bugs) takibi için ayrı bir araç, yeni iş istekleri için ayrı bir araç kullanılırsa sağlıklı bir Sürüm Yönetimi yapmak zorlaşır.


Bu yazımda Sürüm Yönetimi için nasıl bir İş Takip Sistemi'ne ihtiyacımız olduğundan ve bu iş için kullanacağımız araçtan beklentilerimizi ortaya koymaya çalışacağım.

a) Release Notes (
Sürüm Notları)

Sürüm Yönetiminin aslında esas hedefi ve çıktısı sağlıklı Sürüm Notlarıdır. Sürüm Notları bir yazılıma ait işlerin (new feature & bug fix) ne zaman ve hangi sürümde devreye alınacağını veya alındığını gösterir.

1) Issue Tracking Tool : Sağlıklı bir Sürüm Notu hazırlamak için öncelikle JIRA gibi güzel bir araca ihtiyacımız var. (Neden JIRA? sorusu için ayrı bir blog hazırlıyorum)

2) Issues : Geliştirdiğimiz proje, ürün, uygulama vs. ile ilgili her türlü konuyu (bug, task, new feature, improvement, problem, support request, etc.) İş Takip Arac'ı üzerinden takip etmemiz gerekiyor. (Örnek-I)

3) Affect Version(s) : Herhangi bir ortamda (DEV, TEST, PROD) uygulama kullanılırken tespit edilen hatalar takip sistemine girilirken mutlaka Sürüm Yönetimi Pratikleri - I başlıklı bloğumda bahsi geçen sürüm/versiyon numarası da (affect version) kullanılmalıdır. Bu sayede hatanın hangi versiyonda ortaya çıktığı belli olacak ve Sürüm Notlarında gözükecektir.




4) Fix Version(s) : Bir hata çözüldüğünde veya bir istek tamamlandığında bu işin hangi sürümle (fix version ??? link) devreye alınacağı mutlaka İş Takip Aracı'nda belirtilmelidir. Bu bilgi Sürüm Notlarının hazırlanabilmesi için çok önemlidir.

Bu bilgileri kullanarak örnek linkteki gibi Sürüm Notlarını online olarak takip edebiliriz: (JBoss Application Server Release Notes)

5) SCM and Issue Integration : Sürüm Yönetimi açısından en önemli konulardan biri de kodlar'daki değişikliklerin sürüm kapsamında yapılıp yapılmadığının kontrolüdür. Hiç kimse kapsam dışındaki bir değişikliğin production ortamına alınmasını istemez. Bunun önlemenin en iyi yolu Versiyon Kontrol Araçlarındaki (CVS, SVN, ClearCase, vs.) değişikliklerin, İş Takip Araçlarındaki konularla ilişkilendirilmesidir.

Eğer developer'lar her check-in yaptıklarında, kod'un içerisinde ilgili yere bu değişikliğin nedeni olan IssueKey'i comment olarak yazarlarsa, JIRA ve CVS'in entegre olduğu durumlarda bu değişiklik JIRA'daki ilgili issue ile ilişkilendirilir ve raporlanır.



6) Issue Linking : Bir sürüm kapsamındaki işlerin bağımlılıklarının takip edilmesi çok önemlidir. Örneğin 2.1.7 sürümünde çıkartacağınız bir iyileştirmenin bir parçası 2.2.0 sürümde çıkartmayı planladığınız bir iyileştirmeye bağımlı ise Sürüm Planını tekrardan yapmanız gerekecektir. Burada esas sorun planın tekrar yapılması değil bu bağımlılığın önceden ve kolayca tespit edilebilmesidir.



Bu konu ile ilgili diğer bloglar:

Sürüm Yönetimi Pratikleri - I

Sürüm Yönetimi Pratikleri - II

Etiketler: , , , ,

Pazar, Mart 25, 2007

Pauseless Garbage Collection

Frank Cohen Las Vegas'ta düzenlenen TheServerSide.com Java Sempozyumunda gördüklerini ve duyduklarını bloglarına taşımış. Bu bloglarından bir tanesine ilginç bir diyaloğa rastladım:

Azul Systems participated in the Server Side Java Symposium as both exhibitor and speakers. I had a chance to sit down for ten minutes to speak with Gil Tene, CTO and cofounder at Azul. "I've been blown away with what we have accomplished in our generational pauseless garbage collection performance," Gil said, "Using Kirk Pepperdine's performance benchmark we have measure 35 Gbytes/second of continuous, no gc pause, hashmap allocation rates!" Gil told me Cliff Click has a JavaOne talk on a log3 hashtable that they plan to open source. It scales linearly to 700 cpus or more. Gil said he expect 10 Gbytes/second and was "blown away by 35." By comparison the typical Linux system clocks at 1 Gbytes/second.
http://www.theserverside.com/news/thread.tss?thread_id=44764

Frank Cohen ayrıca aynı sempozyumda XML Scalability and Performance konusunda bir sunum da yapmış. Yaklaşık 4.5Mb. büyüklüğündeki ve pdf formatındaki sunumu aşağıdaki adresten indirebilirsiniz:

http://downloads.pushtotest.com/presentations/2007_TSSJS_XMLPerf.pdf



Etiketler: , , , ,

DIVX Tools

Sizin de benim gibi dizi merakınız var mı bilmiyorum ama Internet sayesinde düzenli olarak izlediğim 3-5 tane dizi var. Tabii bu diziler divx formatında olduğu için ve altyazı'ları ayrıca eklemek gerektiği için çeşitli araçlara ihtiyacım oluyor.

Aslında bu tip araçlar konusunda uzman olan ve harika yazılar yazan Sezer Yeşiltaş arkadaşımız. Ben onun kadar olmasa da çok severek kullandığım 2 Divx aracını tavsiye edeceğim.

Birincisi yine Sezer'in tavsiye ettiği, müthiş bir Media Player olan VLAN (VLC Media Player). VLAN tamamen ücretsiz, her işletim sisteminde çalışan, ekstra codec, driver, vs. istemeden herşeyi oynatan şahane bir player. http://www.videolan.org adresinden VLAN'ı temin edebilirsiniz. Detaylı bilgi için de Sezer'in bloguna bir gözatabilirsiniz. http://www.yesiltas.net/sezer/2007/03/vlc-media-oynatc-videolan-adnda-bir.html

İkincisi ise divx altyazı senkronizasyon sorunları ile uğraşırken tesadüfen bulduğum harika bir Altyazı Senkronlama ve Düzenleme aracı olan Subtitle Workshop. Divxplanet forumlarında Subtitle Workshop ile ilgili detaylı bir rehber mevcut. Bu rehbere http://forum.divxplanet.com/index.php?showtopic=37487 adresinden ulaşabilirsiniz.

Bu güzel araçları bize sağlayan açık dünyanın tüm güzel insanlarına sevgiler ve saygılar...

Etiketler: , , , ,

Cumartesi, Mart 24, 2007

Google Reader Shared Items

Uzun zamandır Omea RSS Reader kullanıyorum ve 60'ın üzerinde blog'u ve haber sitesini takip ediyorum. Omea kullanmamın en büyük nedeni çok kullanışlı bir arayüze sahip olması ve internet bağlı değilken bile önceden güncellediğim RSS'leri okuyabilmem.

Lakin yaklaşık 2 hafta kadar önce uzun süredir direnmeme rağmen Google Reader'a geçiş yaptım. Aslında hesabım çok önceden vardı ama kullanmıyordum. Google Reader'a geçiş yapmamın tek bir nedeni var o da Shared Items özelliği.

Internetin tüm hayatımızı sarması ve yaygınlaşmasıyla artık dört bir yandan bilgi yağıyor. Hergün en az 100 RSS haberini gözden geçiriyorum ve ilgimi çekenleri fırsat bulduğumda okuyorum. Bu zahmetli işlem benim için günlük bir rutin haline geldi. Fakat biliyorum ki çevremdeki çoğu kişinin bu imkanı yok.

Bu yüzden bu bilgi yağmurunun içerisinden beğendiklerimi Google Reader'ın share özelliği sayesinde artık arkadaşlarımla da paylaşıyorum. Bloglarımı web'ten takip edenler zaten sol menüde "My Recent Readings" bölümünü görmüşlerdir.

Google Reader bu paylaşımları ayrıca RSS feed olarak da sunuyor. Madem Google yapmış o zaman kullanmak lazım.

Bilgi paylaştıkça çoğalır.

Mustafa Tan's shared items are publicly accessible.
They are available as a page at http://www.google.com/reader/shared/05031251813210006982 (and there's a feed too)

Etiketler: , ,

Çarşamba, Mart 14, 2007

jcaptcha

Geçenlerde JIRA'nın 3.8 versiyonu yayınlandı. Her zaman yaptığım gibi hemen Sürüm Notlarına bir göz attım ilgi çekici yenilikler var mı diye.

We are happy to deliver JIRA 3.8 only 3 months after JIRA 3.7. In JIRA 3.8 we have implemented one of the most popular features, Editable Comments; made JIRA much easier to install and run on Windows via a Windows Installer; built a more robust integration with Atlassian Crowd (our identity management system); and are hoping to help fight evil spammers by using CAPTCHA.

İlk gözüme çarpan 3.7'de çok çektikleri spammer'lardan kurtulmak için kullanmaya başladıkları CAPTCHA (Completely Automated Public Test to tell Computers and Humans Apart) özelliği oldu. Biraz araştırınca bu iş için açık kaynak bir uygulama olan jcaptcha 'yı tercih ettiklerini gördüm.

jcaptcha zengin özelliklere ve güzel bir dokümantasyona sahip. Aşağıdaki linkleri kullanarak çok kısa sürede web uygulamanıza captcha özelliği kazandırabilirsiniz:

5 minutes application integration tutorial
Struts integration
Use a CAPTCHA-based authentication module for J2EE Web applications

http://jcaptcha.sourceforge.net/

Eğer JIRA'cılar kullanıyorsa siz de production ortamlarında gönül rahatlığıyla kullanabilirsiniz. Ben kefilim :)

Bilginize

Etiketler: , ,

Perşembe, Mart 01, 2007

O'Reilly SysAdmin

Oreillynet.com ’da çeşitli konularda blog grupları mevcut. Bunlardan bir tanesi de çıkan yazıları sürekli takip ettiğim System Admin’ler ile ilgili olan : http://www.oreillynet.com/sysadmin/blog/

Bu blogda çok güzel konular tartışılıyor. Vakit bulduğunuzda 2007’den itibaren yayınlanmış bloglara (çok uzun değiller) mutlaka bir göz atın. İlginizi çekeceğini düşündüğüm birkaç yazıdan alıntı yaptım.

Better tools make us more powerful

Unfortunately, I’ve seen too many sysadmins fall in love with the tedium of knowing all the little bits of all the systems they manage and not worry so much about understanding the higher-level nature of their jobs. I think this is part of why there are so few good, new tools being developed in this space, why sysadmins generally provide such poor service to their employers (e.g., slow deployments, lack of metrics, lack of transparency), and why they’re so afraid of using better tools.

To those sysadmins who are afraid of automating themselves out of a job, you should ask yourself where your value is: Is it the tedious parts, or is it the understanding behind the job?

Why Isn't System Administration Evolving?

I’ve heard all of the standard excuses — we don’t have enough time, we can’t risk it, we spend all day doing computers and don’t want to do it at night, my company won’t let me, etc. Every software project that has ever evolved out of an internal project has exactly these same excuses, and yet they have somehow succeeded. Why have so few sysadmin tools evolved this way? Why are sysadmins so willing to believe their excuses?

What Sysadmins Can Learn From Developers

Developers have done a great job in the last couple of decades of evolving their practice, so that development looks very different now than it did a couple of years ago. There’s a lot of competition for tools and methodologies, lots of publishing on these differences, and plenty of opportunity for new ideas to gain mindshare. This competition is really important to evolution: Unless there is opportunity and reward for better ideas and products, these better ideas don’t develop very quickly.

Sysadmins, on the other hand, have very little competition, in either ideas or products, and in the few areas where there is competition there generally isn’t much to differentiate the competitors.

Fighting Specialization

I’m lucky to be in a position where I am not forced to specialize on a single technology. I have always made a habit of keeping up with the job market, and it seems the trend is that the bigger the company you wind up at, the more likely you are to be staring at the same thing day in and day out.