› muratbastas

Murat Bastas | Software Developer @Vispera.
Shell ortamı için zsh mı kullanıyorsunuz? Bir de powerlevel9(10)k mı seviyorsunuz? Ama vscode, idea ve terminal unicode karakterleri farklı mı render ediyor? O zaman size bir ipucu vereyim… Ben gnome terminal, vscode integrated terminal ve idea terminalleri kullanıyorum. Fakat her biri zsh prompt’umda farklı şekilde render ediliyor. Hem de font birebir aynı olmasına rağmen. Bu durumda editor/ide lerin içinde çirkin bir terminal görmemek için şöyle bir çözüm buldum. ~/.zshrc dosyanızda aşağıdaki if koşulunu kullanarak ortamlarda farklı zsh promptları kullanmanız mümkün.
Tam 2 ay önce windows içinde linux geliştirme ortamımı nasıl kurduğumu anlattığım bir yazı yazmıştım. Bu yazıda windows 10 insider ile WSL2 kurulumu, intel sanallaştırma hizmetlerinin BIOS üzerinden aktif edilmesi, docker for windows edge kurulumu(artık edge kanalından kurmak zorunda değilsiniz) ve wsl içinde docker kullanımını anlatmıştım. Bu yazımda da WSL içinde bir linux desktop ortamı kurup, gui uygulamalarını nasıl windows içinde çalıştırabileceğimizi anlatacağım. Öncelikle linux görüntü sunucusu olan “X server” nedir diye merak edenlere bir tr.
Klavyelerimizin fonksiyon tuşları, medya tuşları genellikle spotify, itunes, vlc player gibi müzik, video uygulamalarında süper çalışıyor. Ne zamandır olduğunu bilmesem de bir süredir youtube videolarını kontrol etmeye de yarıyordu. Firefox kullanıyordum uzun bir süredir ve youtube music kullanmaya başladıktan sonra media tuşlarının youtube music’e müdahale edemediğini farkettiğimde sıkıcı bir süreç ile google chrome’a geçiş yapmak zorunda kalmıştım. Bugün firefox’ta chrome’un chrome://flags ine benzer bir konfigurasyon arayüzü olan about:config i kurcalarken aşağıdaki ayarı buldum.
Geliştirme için uzun süredir linux/unix kullanan birisi olarak desktop pc topladıktan sonra oyun oynama ihtiyacımı da görebileceğim bir ortam kurmaya çalıştım. Steam’de linux uyumlu oyunlar olduğundan bana yeter diyerek manjaro linux ile geliştirme ortamımı kurdum, non-free nvidia driverlarını da kurduğum halde oyun oynarken donmalar, kasmalar yaşıyordum. Tüm çabalarıma rağmen ekran kartımın performansını linux üzerinde tam manasıyla değerlendiremedim. Haliyle windows ile dual-boot yapmak durumunda kaldım. Geliştirme zamanımı linuxta, oyun zamanımı windowsta değerlendireyim diyordum.
Günümüzde microservis, dağıtık uygulamar.. vs popüler olmaktan ziyade, otomatik ölçeklenen uygulamalar geliştirmek için gerekli bir yaklaşım halini aldı. Geliştirdiğimiz uygulamanın farklı görevleri olan kısımlarını farklı uygulamalar olarak dağıtabilmek için projeleri bölmeye başladık. Ben de böyle bir ihtiyaçtan yola çıkıp kompleks bir yapısı olan ve refactor gerektiren bir rails uygulamasını görevlerine göre ufak uygulamacıklara bölmeye başladım. Bunu yaparken en önemli sorunum kod kopyalamadan(duplicate) etmeden bu işin altından nasıl kalkarım, daha güzel bir deyişle data modelimi birden fazla rails ve ya rails olmayan projeler arasında nasıl paylaştırırım sorusuna odaklandım.
Merhabalar, bu yazımda elixir ile yazacağımız komut satırı uygulamalarında dışarıdan verilen argümanları nasıl parse edebileceğimizden bahsedeceğim. Neredeyse her komut satırı uygulaması yazabildiğiniz dilde olduğu gibi elixir’de de argümanları ayrıştırmak için OptionParser modülü ve hex.pm‘den indirerek kullanabileceğimiz optimus gibi kütüphaneler var. Birlikte OptionParser ile örnek bir uygulama yapacağız. Bu uygulama belirlenen sıradaki fibonacci sayısını istenen renkte ekrana yazdıracak. mix new fib Diyerek başlayalım ve lib/fib dizininde cli.ex adında bir modül oluşturalım. İçinde main/1 şeklinde bir fonksiyon olsun.
Merhabalar, bu yazıda Elixir geliştirirme ortamımı nasıl kurduğumdan, hangi araçları kullandığımdan vb konulardan bahsedeceğim. Elixir forum da hangi editor, hangi IDe, hangi versiyon yöneticisi vb çeşitli sorular ve cevaplar var. Ben hangilerini seçtim? Versiyon yönetimi Elixir, Erlang versiyon yönetici olarak asdf-vm kullanıyorum. Bundan şu yazıda da bahsetmiştim. asdf kurduysanız Elixir ve Erlang kurmak için aşağıdaki komutları çalıştırmanız yeterli gelecektir. asdf plugin-add erlang && asdf plugin-add elixir asdf install erlang 21.3 asdf install elixir 1.
Bu dördüncü yazıya kadar okuyan her elixir meraklasının api endpointleri nasıl hazırlayacağını, yetkilendirme ve giriş yapmayı nasıl halledeceğini öğrendiğini varsayıyorum. Sadece bu kadarı bir uygulama geliştirmeye yetmeyecektir elbet ama eksikleri ilgililer tamamlayacaktır diye umuyorum. Bu serinin son bölümü bir api’ın olmazsa olmazı, dökümanyasyonu üzerine olacak. Postman gibi araçlar kullanarak collection’lardan dökümantasyon üretmek mümkün tabii ki fakat yaygın olarak kullanılan swagger aracının phoenix projemize nasıl ekleneceğini anlatacağım. Önce mix.exs e gerekli paketleri ekleyelim.
İkinci bölümünü neredeyse 1 ay önce yayınladığım phoenix framework API uygulaması serisinin üçüncü yazısıdır. İkinci bölümde oauth ile token alıp rotalarımızı bu token ile korumayı öğrenmiştik. Bu bölümde de kayıt olma esnasında e-posta göndererek kullanıcıların e-posta adreslerini doğrulama işlemlerini yapacağız. Yaptığım araştırmalar sonucunda Phoenix’e e-posta gönderme yetenekleri eklemek için en kullanışlı hex paketinin bamboo olduğunu düşünüyorum. Bu yüzden bamboo ile development ortamında Rails’te kullandığımız letter_opener gibi çalışan local adaptörü, production ortamında ise SMTP adaptörü kullanacağız.
İlk halini dün yayınladığım phoenix framework API uygulaması serisinin ikinci yazısıdır. Dün basitçe crud işlemleri yapan bir endpoint hazırlamıştık. Tabi ki sırada bir API ın olmazsa olmazı authentication işlemlerini nasıl yapacağımızdan bahsedeceğim. Öncelikle ihtiyaç duyacağımız paketlerden bahsedelim. Ruby yazanlar ve Rails ile uygulama geliştirenler bilirler plataformatec’in geliştirdiği ve José Valim abimizin, yani Elixir dilinin yaratıcısının çok büyük katkıları olan devise adında bir gem var ki authentication adına ne var ise her şeyi 3-5 generator komutu ile saniyeler içerisinde halledebiliyorsunuz.
Merhabalar, uzun bir süredir yan projelerde kullanarak öğrenmeye çalıştığım Elixir dili için bir rehber niteliğinde notlar paylaşacağım yazı serime hoş geldiniz. Bu yazıya sıklıkla Ruby on Rails ile karşlılaştırılmaları yapılan Phoenix web framework ile API-only bir uygulama yazma rehberi olarak bakabilirsiniz. Hazırsam başlayayım… :) Yeni bir Phoenix projesi oluşturma Bu adımda Elixir, Erlang ve Phoenix framework’ün sisteminizde kurulu olduğunu varsayıyorum. Değilse eğer sizi şuraya yönlendirebilirim. Aşağıdaki komutu terminalimizde çalıştırarak bir phoenix projesi açalım.
Bu devirde yazılım geliştirmek ile meşgul herkes sanırım yazdığı dil için versiyon yöneticisi kullanıyordur. Çünkü uygulamalarımızın hepsi aynı versiyon ile çalışmak zorunda değil. Örneğin, ruby ile programlama yapıyorsanız rbenv ve ya rvm, nodejs yazıyorsanız nvm kullanıyorsunuzdur. Kullanmıyor da olabilirsiniz tabi, sizin tercihiniz. Fakat eğer kullanıyorsanız kendinize bir geliştirme ortamı kurmak çok zahmetli bir hal alıyor olabilir. Bu yüzden bizi bu dertten kurtaracak, yakın zamanda keşfettiğim açık kaynak kodlu asdf isimli versiyon yöneticisini tanıtmak istiyorum size.
« Older posts Newer posts »