Karalamalar - 22/11/2024

You Never Truly Chased Your Dreams

Then, one day just like that.
We shut our eyes for the last time.
And that would be it.
Game over.
And there is a pretty good chance that there’s nothing after that.
No do overs.
No second chances.
Just nothing.
You cease to be.
Now imagine you knew that was coming and you had a couple minutes before you close your eyes.
Do you think you’d look back happy?
Knowing that you spent years doing a job you hate.
Or that you stayed in an evironment that wasn’t right for you.
Or that you didn’t travel to that country you always wanted to visit.
Because saving a few hundred dolllars was the sensible thing to do.
Do you think you’d be proud that you held a grudge for so long?
And now you can’t make it right.
Or proud that you’re always too busy to answer the phone to your parents.
Or that you never told the person how you truly feel.
And do you think you look back happy knowing that you never truly chased your dreams because you were too scared.

We have one shot in this life.
And yet we’re still scared to truly live.
But the odds of you being born are one in four hundred trillion.
But the odds of death.
Curtain.
Yet we treat life like the certainty.

Tomorrow always comes.
Right?

Yazılım - 21/11/2024

TCGP Deck Proje Süreci #1

Mobil oyun olarak çıkacağı duyurulan Pokemon TCG Pocket için duyurulduğu günden beri aklımda olan bir projeydi TCGP Deck. Oyun çıktıktan yaklaşık 2 gün sonra projeyi yazmaya başladım. Buradaki amacım aslında tamamen bir hafta sonu projesi kapsamında bu projeyi yayına alabilmekti. Ayrıca uzun süredir bazı merak ettiğim araçları bu proje üzerinde deneyimleyebilecektim. Ayrıca en önemlisi tamamen yapay zeka kullanarak bir proje nasıl hazırlanabilir, eksikleri olur mu yoksa gerçekten yapay zeka artık baştan sona bir projeyi çok kısa zamanda yazmamızı sağlayabiliyor mu bunu test etmek istedim.

TCGP Deck Ana Sayfası

En sonda söyleyeceğimi en başta söyleyeyim; evet, şu anda tcgpdeck.com adresinde erişebileceğiniz projenin ana hatlarını yapay zeka ile neredeyse 2 gün içerisinde, hatasız bir şekilde oluşturdum. Çıkan hataları ise oldukça hızlı bir şekilde çözüme kavuşturabiliyor. Burada yapay zeka olarak Claude‘u tercih ettim, özellikle ücretli sürümünün inanılmaz iyi bir şekilde çalıştığını söyleyebilirim. Tabii bana göre hala bu işlere uzak birisi için kullanması zor olabilir çünkü vereceğiniz promptların düzgün, anlaşılabilir ve isteğinize tam uygun şekilde yazılması gerekiyor. Ancak yazılım sektöründe çalışan bir proje yöneticisi olarak promptlar ile ilgili en ufak bir sorun yaşamadım. Bir kere anlattığım bir şeyi ikinci kere düzeltmek durumunda kalmadım bile diyebilirim. Tek sorunu ücretli versiyonunda olmanıza rağmen bazen limitlere takılabiliyor olmanız, ben buradaki limite takıldığım zamanları frontend tarafına ayırdım. Backend’i komple Claude’a bırakmış olsam bile projenin tüm frontendini kendim yazdım. Backend tarafında ne kadar başarılıysa, frontend tarafında tasarım mantığı çok yeterli seviyede değil gibi geldi. Sitenin olabildiğince en basit şekilde bir tasarımla yürümesini istememe rağmen Claude ile tasarım konusunda pek anlaşamadık diyebilirim. Fakat yine de backend başarısı tartışılmayacak seviyede iyi.

Projeyi yaklaşık 2-3 gün içerisinde yayına aldım. Sunucuyu Digitalocean üzerinde, database’i MongoDB Atlas ile kurdum. Digitalocean uzun süredir deneyimlediğim bir firmaydı fakat MongoDB’nin Atlas’ını kullanmayı çok istiyordum, burada da oldukça başarılı bir süreç yaşadım diyebilirim. Neredeyse hiç hata almadan, Compass arayüzü sayesinde de bilgisayarımdan database’e kolayca erişebileceğim şekilde kullanabiliyorum. Ücret konusunda en düşük paketi seçerek devam ediyorum, şu an için paylaşabileceğim bir ücret tam olarak oluşmadı fakat bunları ilerleyen zamanlarda sizlerle paylaşmayı istiyorum. Ayrıca MongoDB’nin sonradan fark ettiğim bir özelliği de database ile ilgili takip etmek istediğiniz metrikleri direkt kendi sorgularınız ile rahatça takip edebiliyor olmanız. Ben aslında bu data takibi için Grafana‘yı kullanmayı düşünüyordum fakat şu ana kadar olan tüm isteklerimi -belki de basit istekler olduğu için- MongoDB’nin bu özelliği ile takip edebiliyorum. Gelecekte data sayısındaki artış, takip etmek istediklerimin karmaşıklığı ile birlikte belki Grafana’ya geçiş yapabilirim.

Ayrıca kullanıcılar ile ilgili bazı veriler için ise yıllardır aşina olduğumuz Google Analytics‘i tercih ettim yine. Fakat bu sefer Claude’un da yardımı ile çok daha detaylı bir takip sistemi kurabildim. Kullanıcıların register olmaları, deck oluşturmaları, yorum sayıları gibi etkinliklerin tümünü Analytics üzerinden eksiksiz bir şekilde takip edebiliyorum. Şu an için yine oldukça basit isteklerim var, çok karmaşıklaşmadığı için bir sorun yaşamadan takip edebiliyor gibi duruyorum fakat data sayısı arttıkça Analytics üzerinde de efektif bir şekilde farklı etkinlikleri takip etmeyi amaçlıyorum.

Ek olarak marketing için kullandığım bir başka araç ise Mailerlite. Bu mail platformunu da önceden kullanmıştım fakat yıllar sonra girdiğimde hala çok işlevsel olduğunu hatta paneli çok daha basitleştirerek kullanımı daha kolay bir hale getirdiklerini fark ettim. Kullanıcıları API aracılığı ile buraya aktarıp basit marketing maillerini bu sistem üzerinden gönderiyorum. Fakat transaction mailleri için Mailgun‘ı tercih ettim. Bunun sebebi bu iki mail aracına da şu an için bir ücret ödemek istemiyorum ayrıca iki aracı da farklı şekilde deneyimlemek gibi bir amacım var. Mailgun’ın da API aracılığı ile oldukça sorunsuz bir şekilde çalıştığını söyleyebilirim. Buradaki tek sorun olarak söyleyebileceğim konu, toplu mail göndermek istediğinizde bir kaç sorun ile karşılaştım fakat bu benim hesabım özelinde bir sorun gibi duruyor o yüzden şimdilik bunun detayına girmeyeceğim.

Şu an için kullandığım araçlar yukarıdaki gibi. Olabildiğince basit ve efektif bir şekilde devam etmek istediğim için tüm araçları aynı anda entegre etmekten kaçınıyorum. Bu yüzden uzun süre boyunca yeni araçlar eklemek yerine bu az aracı tamamen optimize hale getirmeyi hedefliyorum. Hala bir hafta sonu projesi olarak baktığım için çok fazla zamanımı harcamadan projeyi devam ettiriyorum, o yüzden amacım sürekli zaman harcamak ve karışık süreçler yerine, en kısa zamanda en efektif şekilde nasıl bir projeyi tek başıma yürütebilirim bunu gözlemleyebilmek.

Bu yazıyı yazarken projeyi yaklaşık 1 hafta öncesinde yayına almış durumdayım ve şu anda 130’a yakın üye ve 120 deck oluşturulmuş durumda. Marketing’e hiç bir bütçe ayırmadan, çok küçük reddit postları ve bazı yayıncılara ulaşıp küçük anlaşmalar ile bu sayıyı elde etmiş olduğumdan yola çıkarak proje şu anda hayal ettiğimden çok daha hızlı bir şekilde ilerledi diyebilirim. Özellikle kullanıcı başına deck sayısı beklentilerimin çok ama çok üstünde bir oran ile devam ediyor.

Gelecek planlarım arasında projeyi Ads Google üzerinde reklamlar ile siteye trafik çekmek var. Buradaki sistemi de tam uyumlu bir şekilde nasıl çalıştırırım ve Ads Google platformunun incelikleri konusunda kendimi nasıl geliştirebilirim bu konuya odaklanacağım. Aynı zamanda bazı gördüğüm eksiklikleri ya da kullanıcılardan gelen mantıklı geribildirimleri de günlük olarak Claude ile geliştirmeye devam ediyorum. Fakat projenin şu anki fazında artık geliştirmeden çok marketing’e odaklanarak bir yol kat etmek amacım. Bu yüzden şimdiden gelecek yazının konusu marketing tarafındaki başarım ya da başarısızlığım olacak gibi duruyor. Detayları olabildiğince en şeffaf ve en sık şekilde sizinle paylaşmaya devam etmek istiyorum.