Roundtable: Women in Open Source

I recently come upon Rails Podcast’s new episode: Roundtable: Women in Open Source. Women in open source, computer programming & Rails :)

Jen May Wu, Dr. Ana Nelson, Liz Summerfield, Sandy Metz, Carmelyne Thompson, Cynthia Kaiser, and Desi McAdam — most of them are from devchix and discussing the state of women in open source programming.

[audio:http://paranode.com/~topfunky/audio/2007/rails-052-roundtable.mp3]

Daha etkin bir geliştirici olmanın ip uçları…

Açıkçası yazılım geliştirirken genel/geçer kuralları izlemiyorum. Ama daha iyi bir geliştirici/mühendis olmak için bazı kuralları akılda bulundurmakta fayda var. Deneyimli Ruby hackerlarından Yurii Rashkovskii, dün daha efektif bir geliştirici olmak için bir kaç ipucu vermiş. Bazıları benim de benimsediğim kurallar olduğu için bahsettiği ipuçlarına burada yer vermek istedim:

Planlama

Planlama şüphesiz bir yazılım için olmazsa olmaz adımlardan biri. Her ne kadar yazılım hakkında tasarladığınız bir takım adımlar olsa da; direkt kafanızdaki taslak ile kodlamaya geçerseniz mutlaka geri dönmeniz gereken adımlar oluyor. Yurii’nin önerdiği planlama şöyle:

  • Yapmanız gereken işlerin bir listesini hazırlayın
  • Kısa zamanda bitecek işleri ‘Rightnow’ dizinine koyun
  • Ertesi gün bitmesi gerekenleri ‘Today’, haftaya kadar bitirilmesi gerekenleri ‘ThisWeek’, … vb. dizininlere koyun
  • Bunları yaparken görevleri kısa ve açıkça belirleyin
  • Zamanlama konusunda gerçekçi olun

Ben planlama için genelde kağıt-kalem :) bunları webe aktarmak için de Ta-da List‘i kullanıyorum. Zihin haritalama programları da bu iş için alternatif olabilir.

Çalışma

  • Öncelikli işleriniz için ‘Rightnow’ dizinine göz atın. Yapılacakları yapın, dizin boşaldığında Today’a, o boşaldığında bir sonraki dizine atlayın
  • Ancak üzerinde çalıştığınız dizini bitirmeden bir sonrakine geçmeyin

Kaynak Kodun Yönetimi

Kaynak kodlarımız ortaya koyacağımız en önemli eser değil mi? :)

Hepinizin başına gelmiştir: kendi kendinize geliştirdiğiniz amatör uygulamalarda radikal bir değişiklik yaparken yedeğini alırsınız, bir süre sonra eğer sürüm numarası da vermesiyseniz iş içinden çıkılmaz hale gelir. Kendi subversiyon sunucunuzu kurmanıza gerek yok. *forge türü proje barındırma siteleri genelde bu hizmeti sunuyor.

  • Versiyon kontrol sistemi kullanın: Subversion, Darcs gibi..
  • Kontrol mesajlarınızın açıklayıcı olmasına dikkat edin
  • trac ya da ona benzer bir scm kullanın

Kaynak Kod

Kodumuzu açık kaynaklı olarak yayınlamakla iş bitmiyor tabii. Anlaşılır kodlar yazmak için de bir dizi öneri var:

  • İsimlendirme kurallarına uyun
  • Anlamlı değişken, metot, sınıf adları kullanın
  • Okunabilir kodlar yazmaya çalışın
  • Kod boyutunuzu küçültmeye çalışın; eğer kullandığınız metodun daha kısa hali varsa onu kullanın *
  • Kodunuzu depoya göndermeden önce gözden geçirin; beğenmediğiniz yerleri düzeltmeye çalışın
  • Meslektaşınızdan kodunuzu 15 dakikalığına gözden geçirmesini rica edin

Bu zaten sıkça dile getirilen bir şey ama, aynı zamanda kodunuza yorum satırları eklemeye özen göstermelisiniz. Bu sadece kodu okuyana değil, uzun bir aradan sonra koda baktığınızda size de faydalı olacaktır.

Test

Yurii bu maddeyi daha çok Ruby kullancıları için özelleştirmiş. Test noktasında ben birşeyler söyleyeyim: yazacağınız metodun/sınıfın önce iskelet halini oluşturun. Böylece neler yapmanız gerektiğini önünüze koymuş olursunuz. Aynı zamanda belli bir işi yapan kod parçalarını interaktif kabukta deneyerek tüm programı derlemeden/çalıştırmak zorunda kalmadan test edebilirsiniz. Tabii test aşaması oldukça geniş bir alan. Pek çok argüman eklenebilir.

Sonradan gelen edit: Bugun konuyu biraz daha araştırayım dedim. Keşke daha önce rastlasaydım dediğim harika bir makaleye rastladım: “How To Write Unmaintainable Code”. Roedy Green tarafından yazılmış. Eğer benden önce davranan olmazsa en kısa zamanda Türkçe’ye çevireceğimdir ;)

January 11, 2007

Ruby & Rails buttons for your web site

I’ve created some “I love Ruby/Rails” buttons and speech bubbles by using Zach Beane’s Signbot and DS generators. So promote Ruby and Rails from your site! :)


I love Ruby (small)

Ruby... A Programmer's Best Friend...

I love Ruby on Rails (medium)

Ruby on Rails... Web development that doesn't hurt ...

Ruby Speech Bubble

Ruby... A Programmer's Best Friend...


RoR Speech Bubble

Ruby on Rails... Web development that doesn't hurt ...

Other sizes are avaiable from the rest of this post:

January 1, 2007

Eye-candy seminar stuff for Ruby & My seminars @ IBM

ykb plaza where ibm linux takes placeThis Saturday i was giving two Ruby seminars as i told before. It was about two hours long, and absolutely wonderful :)

Despite of being at the same day, it was two different Ruby seminars: first was about 70 slides and all about Ruby and its features. Second was about GTK programming and designing interfaces using GTK, Glade and Ruby. It was 25 slides but also there was a little application: Rubyzilla! It was quite fascinating to make a web browser in 5 minutes ;)

There were a lot of people who came to listen Ruby, so i’m very happy to see more Turkish hackers interested in Ruby. It will be better in a few years- i hope.

While i was talking about friendly Ruby community in “Why Ruby ?” section, i told a memory of me from two years ago. There were no Ruby documents in Turkish at that time, so i’ve started to translating Ruby Users Guide in Turkish. There was a license problem about the doc, so i had to talk with Matz – as the real author of the tutorial. It was so fascinating to get an answer to your mail after 3 minutes from Ruby’s creator! [ Yes - for a student @ 19 years old it was so fascinating :) ]

Anyway, i’m so glad to go Istanbul for this seminar – despite of having 14 hours total @ buses… [now i'm back at home, Canakkale. workin' on my senior project [about cryptography staff] to get out of school!]

lol. There’s also sth for rubyists! As you can see from seminars’ layout, i used an eye-candy openoffice template. Template by me, Ruby logo from Ruby Visual Identity Team. You can download .sti file from here.

December 18, 2006

Ruby Advent Calendar v.2

Daha önce “Ruby Advent Calendar” diye bir projeden bahsetmiştim. Proje Aralık ayı başından beri aktif halde ve her gün Ruby ile yazılmış minik betikler/siteler/bazen kütüphaneler yayınlanıyor. Mesela benim en çok işime yarayanı; dün (7 Aralık’taki) yayınlanan kod renklendirme aracı.

Sitenizin ya da blogunuzun css’ine burada yazan kodları yerleştiriyorsunuz, ve kodlamak için yine aynı sayfadaki kutucuğu kullanıyorsunuz. Ve Ruby kodlarınız aşağıdaki gibi renklendirilmiş oluyor (Eskiden bu iş için kodlarımı Lapis Nopaste‘e yapıştırıp html kaynağından da renklendirilmiş hallerini çalıyordum ama şimdi bloguma münhasır renklendirmem var :)

def power(x,n)
  result = 1
  while n.nonzero?
    if n.modulo(2).nonzero?
      result = result * x
      n = n-1
    else
      x = x*x
      n = n/2
    end
  end
  return result
end

Advent Calendar’da daha ne gibi ilginç uygulamalar çıkacak merakla bekliyoruz ;)

December 8, 2006

Two Ruby Seminars @ IBM Linux

olee!!Next Saturday, i’ll be giving two Ruby seminars in IBM Linux. First one will be about nuts and bolts about Ruby. It will took one and a half hour – i hope.

The second one will be about GTK programming with Ruby. I’m planning to talk about GTK and its features for a while, then we’ll see how can we make things easier with using Glade. It’ll be like a workshop. If nothing goes wrong, i’ll show how to make a web browser in 5 minutes like Rubyzilla.

Anyway… It’ll be good to see my old friends in İstanbul ;)

PS: It won’t be my first seminar about Ruby, but others were at universities. So it’s a bit easy to talk about general features. But this time, i’ll talk to specialists in IBM. So i’m thinking to talk about advanced topics about Ruby.

So any suggestions are welcome :)

Important Note: You have to register your name at least one day before the seminar. It’s IBM’s security politics, i don’t know about it. Register from Here.

Özgür Yazılım ve Açık Kaynak Günleri’nin Ardından

Bir kaç gündür, Özgür Yazılım ve Açık Kaynak Günleri kapsamında, Bilgi Üniversitesi’nde bir seminer vermek için İstanbul’daydım. Seminerin umduğum gibi geçmesi ve katılımın yoğun olması beni epey memnun etti. Notları (.sxi) buradan, pdf halini de buradan alabilirsiniz. Notları kısa süre içinde, burada da bulabileceksiniz.

February 26, 2006

Ruby semineri

Bugün, 20 senelik hayatımın ilk seminerini verdim :)

Konu: Ruby Programlama Dili‘ydi; önce genel birkaç özellik ve temel felsefesinden; sonra birkaç dille kıyaslamasından, basit kod örneklerinden ve ekstra birkaç özellikten daha bahsedip bitirdim.

İlgilenenler; seminerin html halini buradan görebilir.

December 20, 2005

ne var ne yok?

Gezegen‘e merhaba ve iyi dilekleri için herkese teşekkür.
Tam zamanlı bir iş sayılmasa da, ilk işime, Bilgi İşlem Daire Başkanlığı‘nda birkaç gün önce başladım, şimdilik “ufaklık” adını verdiğimiz 16 MB RAM + 800 MB hard diske sahip 95 model bir dizüstüye Debian kurmaya çalışıyoruz. Pencere yöneticisi olarak hafif birşeyler bakıyoruz tabii ki. Belki flwm ya da xfce olabilir.

Bu arada, dün daha önce farkına varmadığım bir siteye rastladım; RubyQuiz. “Perl Quiz of the Week”‘den esinlenerek her hafta ruby-listesine bir soru gönderiliyor, belli bir süre geçtikten sonra cevaplarınızı gönderiyorsunuz, böylece hem eğlenmiş, hem de kendinizi geliştirmiş oluyorsunuz (soruların pek de kolay olmadığı aşikar :).

October 19, 2005

ruby-programlama

Bugün, yazın bir kısmını çevirmeyi planlamış olduğum ve bir kısmının çevirisini bitirdiğim Programming Ruby kitabının türkçe sayfalarını yayınladım. Kod örneklerini, ana başlıkları değiştirmedim, onları sonradan elden geçirmeyi planlıyorum.

Bu arada, unutmadan geçen hafta Ruby‘nin 1.8.3 sürümü çıktı.
Kaynak kodları burada.

Bugün okulun laboratuarındaki bilgisayarlara Debian kurmaya başladık. Güvenlik için, ssh, ppp, exim4′ü kaldırıyoruz, KDE, Openoffice.org, türkçe dil paketleri ve Mozilla-Firefox kuruyoruz.

Sevgili Necdet Hoca’yla yaptığım o duygu sömürülü konuşma sonucunda birkaç bilgisayara da KDE yerine GNOME kurmama izin verdi :)

September 30, 2005