2 puan yazan GN⁺ 6 시간 전 | 2 yorum | WhatsApp'ta paylaş
  • Blogu özgürce özelleştirmeye çalışırken HTML yazmaktan JSON tabanlı yazım sistemine, Markdown dönüştürmeye ve derleme·dağıtım araçları oluşturmaya kadar ilerleyip sonunda statik site üreticisini bizzat uygulama deneyimine dönüştü
  • yak shaving, tek bir hedef için yapılan bağlantılı işlerin zamanla asıl amaçtan uzaklaşması durumunu ifade eder ve bu ifade MIT AI Lab’den Carlin Vieri tarafından ortaya atılmıştır
  • Mühendisler ve yöneticiler, hazır çözümleri beğenmediklerinde ya da bunların gereksinimlere uymadığını düşündüklerinde sıfırdan yapma tuzağına düşmeye yatkındır
  • Sınırlı bütçe ve zaman içinde, doğrudan uygulama geliştirmenin keyfinden çok çekirdek gereksinimleri karşılayan alternatif seçimi ve iş yükünü azaltma daha önemli olabilir
  • Donald Knuth’nun TeX’i gibi büyük sonuçlara varan örnekler olsa da, yak shaving’in çoğu başarısız olabilir; yine de öğrenilen bir şey varsa bunun kendisi değerlidir

Elle yapılan blogun statik site üreticisine dönüşmesi

  • Jekyll, Hugo, Gatsby gibi statik site üreticileri veya framework’ler kullanılmadı
  • Başta birkaç araç denendi, ancak özelleştirme özgürlüğünün yetersiz olduğu düşünülerek doğrudan kendisi yapılmasına karar verildi
  • Yazıları HTML ile yazmak kullanışsızdı; bunu çözmek için JSON dosyası tabanlı bir yazım sistemi yapıldı, ancak uzun yazılar için bu da yine garip kaldı
  • Daha sonra Markdown dosyalarını HTML’ye dönüştüren bir servis ve sonuç dosyalarını derleyip dağıtan araçlar da yapıldı; böylece sonunda bir statik site üreticisi baştan sona sıfırdan yapılmış oldu

yak shaving’in anlamı ve kökeni

  • yak shaving, bir hedef için ilgili işleri art arda takip ederken asıl amacı kaybedip bambaşka bir işle uğraşır hale gelmeyi ifade eder
  • LangDev IRC örneğinde, baltayla ağaç kesmeye çalışırken baltayı bileyecek taşı aramak, iyi taş bulunan köye gitmek için bir yak edinmek ve sonunda yakın tüyleri uzadığı için onu tıraş etmek şeklinde ilerler
  • Seth Godin’in örneği ise araba yıkamayla başlayıp hortum, Home Depot, E-ZPass, komşunun E-ZPass’i, ödünç alınan yastık sorunu derken hayvanat bahçesinde yak tıraş etmeye kadar uzanır
  • Bu ifade, MIT AI Lab’de Carlin Vieri tarafından ortaya atıldı
    • Vieri, salı gecesi geç saatte hokey oynadıktan sonra gece yarısı yemek yerken The Ren & Stimpy Show’daki Yak Shaving Day bölümünü izledi
    • Birkaç gün sonra idari izinler, DHL hesap ayarı, postane bulma gibi evrak işleriyle uğraşırken bir meslektaşına kendisinin yak shaving yaptığını söyledi
    • Sonraki birkaç ay boyunca laboratuvardaki insanlarla bu ifadeyi kullanmayı sürdürdü ve ifade böyle yayıldı

Sıfırdan yapmanın riski

  • Mühendislerin ya da mühendislik ekiplerini yöneten yöneticilerin sık yaptığı hatalardan biri sıfırdan yapmaktır
  • Mühendis, hazır çözümü beğenmeyebilir ya da kendi becerisini kanıtlamak isteyebilir
  • Müşteri veya yönetici, mevcut çözümün ne yaptığını yanlış anlayabilir ya da gereksinimleri tam karşılamadığına karar verebilir
  • İster ürün geliştirme ister oyuncak proje olsun, çoğu projede bütçe ve zaman sınırlıdır
  • Doğrudan yapmaya başlanınca iş kolayca yak shaving’e dönüşebilir; bir kez içine girildiğinde bunun nerede biteceği bilinmez ve asıl hedeften vazgeçmek bile gerekebilir
  • Böyle durumlarda, gereksinimlerin özünü karşılayan alternatifler bulmak ve işi mümkün olduğunca azaltmak daha uygun olur

Yine de yak shaving neden eğlencelidir

  • yak shaving, bir şeyi doğrudan inşa etmenin verdiği keyif yüzünden kolay kolay bırakılamaz
  • Ortada olmayan bir şeyi yapmak, sorunları bulup çözmek ve bir şeyin nasıl çalıştığını anlamak için bilgi zincirinin derinlerine inme süreci mühendisleri cezbeder
  • Mühendis olmasa bile, istenen şeyi doğrudan kendi başına yapma fikrinin kendisi çekicidir
  • Frederick P. Brooks Jr., 『The Mythical Man-Month』 kitabında programlamanın neden eğlenceli olduğunu şöyle özetler
    • Bir şey yaratmanın saf keyfi
    • Başkaları için yararlı bir şey üretmenin keyfi
    • Birbirine geçen karmaşık bir yapboz gibi bir şey kurmak ve kurallarının ince döngüler içinde çalıştığını görmenin cazibesi
    • Sürekli öğrenmenin keyfi
    • Esnek ve kullanımı kolay bir ifade ortamıyla çalışmanın keyfi

Başarılı bir yak shaving örneği olarak TeX

  • TeX de yak shaving’den doğmuş bir örnektir
  • TeX, Stanford profesörü Donald Knuth tarafından oluşturulan bir dizgi sistemidir; dizgi dili, onu işleyen derleyici ve programın çalıştığı tüm sistemi kapsar
  • Formüllerin kolay girilebilmesi sayesinde sosyal bilimler, fen bilimleri ve mühendislikte yaygın olarak kullanılır; çoğu kullanıcı TeX’i daha kolay kullanmak için makro kümesi olan LaTeX kullanır
  • Donald Knuth, 1976’da 『The Art of Computer Programming』 cilt 2’nin ikinci baskısını hazırlarken ilk baskıda kullanılan metal dizgiyi istiyordu, ancak bu artık kullanılamıyordu
  • Alternatiflerden memnun kalmayan Knuth, Patrick Winston’ın dijital dizgi kitabını gördükten sonra kendi dijital dizgi sistemini yapmaya karar verdi
  • Knuth, TeX’in ilk sürümünü SAIL diliyle yaptı, ardından kendi geliştirdiği WEB diliyle geliştirip tamamladı
    • WEB kaynakları, belge ile kodu birlikte iç içe yazma yaklaşımını kullanır
    • Weave ve Tangle programlarıyla WEB dosyalarından sırasıyla TeX dosyaları ve Pascal dosyaları çıkarılabilir
    • Knuth bu programlama paradigmasına literate programming adını verdi
  • Knuth, Michael Plass ile birlikte paragraflarda satırların nerede bölüneceğini belirleyen Knuth-Plass satır sonu algoritmasını da tasarladı
  • TeX için Computer Modern yazı tipini tasarladı, vektör grafikleri tanımlayan METAFONT dilini yarattı ve TeX çıktısını belirli bir cihaza bağlı olmadan üretmek için DVI biçimini de geliştirdi
  • Bir kitap yazmak için programlama dili, paradigma, algoritma, araçlar ve yazı tipi yaratmış oldu; TeX’in yapımı neredeyse 10 yıl sürdü ve kitap da o kadar gecikerek çıktı, ama bu boşa giden bir emek değildi

Başarısızlık ile öğrenme arasında

  • TeX uç bir başarı örneğidir; yak shaving’in çoğu ise başarısız olur
  • Uygun noktada durmak gerekir, ancak harcanan zamanın boşa gitmesini istememek ya da yak shaving’in kendisinin eğlenceli olması nedeniyle bırakmak zordur
  • Sonuna kadar gitmek gerekse bile, “Ben şu anda ne yapıyorum?” düşüncesi gelip ilgiyi azaltabilir ya da projeye ayrılan kaynaklar tükenip çalışma durabilir
  • Öğrenmek isteyen biri için yak shaving çok etkili olabilir
  • Bilgisayar mühendisliği derslerinin çoğu, hocanın niyetinden bağımsız olarak belli ölçüde yak shaving gerektirir; bazen ödevin ana metninden çok çevresindeki bilgileri kurcalarken daha fazla şey öğrenilir
  • Bir bilişim sistemi yak shaving yöntemiyle yapmak için Boolean logic, mantık devreleri, bilgisayar mimarisi, programlama dilleri ve işletim sistemine kadar çalışmak gerekir
  • Noam Nisan ve Shimon Schocken’in The Elements of Computing Systems tam olarak bu süreci izler
  • En sona varamasanız bile, yakı tıraş ederken bir şey öğrendiyseniz, bu bile başlı başına değerlidir

2 yorum

 
unsure4000 4 시간 전

Görünüşe göre orijinal olan yazı Korece sürüm.

https://parksb.github.io/article/32.html

 
GN⁺ 6 시간 전
Lobste.rs görüşleri
  • Yak tıraşı eğlencelidir, ama belli bir özyineleme derinliği ya da emek sınırı belirleyip oraya ulaştığında durmak gerekir

  • Neredeyse kimsenin kullanmadığı bir ifade uydurup sonra da herkesin bildiği bir terimmiş gibi kullanılması gerçekten sinir bozucu. Reddit kullanıcıları özellikle bunu çok yapıyor ve sürekli birtakım yasaları alıntılıyorlar.
    Bu terimin MIT kaynağını buldum: https://projects.csail.mit.edu/gsb/old-archive/…

    • Her zaman bunu ilk kez duyan biri olacaktır, ama yak shaving bizim alanda oldukça yaygın bir ifade. Aratırsan çok fazla kullanım örneği çıkıyor
    • Yazı daha başlar başlamaz bu terimi tanımlıyor ve bence gayet iyi açıklıyor
    • Daha önce bilmediğin bir deyim öğrenmek aslında eğlenceli bir şey değil mi? Bu, gerçek zamanlı takip edemezsen dezavantajlı olduğun yüz yüze bir konuşma da değil sonuçta.
      Kendi ufkunun dışındaki şeylerle karşılaşmazsan ufkunu nasıl genişletebilirsin ki?
    • Bunu henüz kimsenin söylememiş olmasına inanmak zor, ama Yak shaving tamamen cromulent bir ifade