<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://batuhan.me/feed.xml" rel="self" type="application/atom+xml" /><link href="https://batuhan.me/" rel="alternate" type="text/html" hreflang="en-US" /><updated>2026-06-12T23:24:03+02:00</updated><id>https://batuhan.me/feed.xml</id><title type="html">Batuhan Kök · Senior Software Developer</title><subtitle>Passionate senior full-stack software developer @ luxoft. Years of experience on JVM stack and microservice architecture, eager to learn, tech-savvy, spaceflight enthusiast and loves science.</subtitle><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><entry><title type="html">Important Notice About Blog</title><link href="https://batuhan.me/important-notice/" rel="alternate" type="text/html" title="Important Notice About Blog" /><published>2022-09-02T13:27:26+02:00</published><updated>2022-09-02T13:27:26+02:00</updated><id>https://batuhan.me/important-notice</id><content type="html" xml:base="https://batuhan.me/important-notice/"><![CDATA[<p>I continue to write my blog posts on <a href="https://batuhankok.medium.com/">Medium</a>.<br />
You can always find my resume or social media links here.<br />
<em>The content on this blog is an archive.</em></p>

<p>See you 👋</p>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="blog" /><category term="medium" /><summary type="html"><![CDATA[I continue to write my blog posts on batuhankok.medium.com. You can always find my resume or social media links here.]]></summary></entry><entry><title type="html">Google Cloud Platform’a Apache Kafka Kurulumu</title><link href="https://batuhan.me/google-cloud-platforma-apache-kafka-kurulumu/" rel="alternate" type="text/html" title="Google Cloud Platform’a Apache Kafka Kurulumu" /><published>2020-09-24T15:06:11+02:00</published><updated>2020-09-24T15:06:11+02:00</updated><id>https://batuhan.me/google-cloud-platforma-apache-kafka-kurulumu</id><content type="html" xml:base="https://batuhan.me/google-cloud-platforma-apache-kafka-kurulumu/"><![CDATA[<p>Yakın zamanda bir proje için Google Cloud Platform’da bir Kafka’ya ihtiyacımız oldu. Bunu yapabileceğimiz birden fazla yol olduğunu öğrendim ve farkettim ki bu konu hakkında internette pek de fazla kaynak yok. O yüzden hızlıca, GCP üzerinde bir Kafka uygulaması nasıl kurulur, firewall için hangi rule’ları tanımlamak gerekir ve local’imizdeki bir client ile remote’da kuracağımız Kafka’ya nasıl ulaşırız, bunlardan bahsedeyim.</p>

<h1 id="hangi-yollar-mevcut">Hangi yollar mevcut?</h1>

<p>Öğrendiğim üç farklı yol var fakat ben bugün ilk iki yolu değil, üçüncü yolu anlatacağım.</p>

<ol>
  <li>Kubernetes Engine üzerine <a href="https://hub.docker.com/r/wurstmeister/kafka/">wurstmeister/kafka</a> imajını deploy edebiliriz.</li>
  <li><a href="https://console.cloud.google.com/marketplace/product/endpoints/payg-prod.gcpmarketplace.confluent.cloud">Confluent</a>: Managed Apache Kafka for Google Cloud Platform kullanabiliriz.</li>
  <li>GCP Click to Deploy ile Compute Engine üzerindeki bir VM’e Kafka kurabiliriz.</li>
</ol>

<h1 id="apache-kafka-kurulumu">Apache Kafka Kurulumu</h1>

<ol>
  <li>Öncelikle GCP console’a kullanıcımız ile giriş yapıyoruz.</li>
  <li>Bu <a href="https://console.cloud.google.com/marketplace/details/click-to-deploy-images/kafka">linki</a> kullanarak Kafka Click to Deploy’a ulaşıyoruz.</li>
  <li>“Launch” butonuna tıklıyoruz. (yaklaşık aylık vm ücreti: $24.75)</li>
  <li>Karşımıza VM’in ayarları çıkıyor, burada herhangi bir ayar yapmayabiliriz.</li>
  <li>“Deploy” butonuna tıklıyoruz.</li>
</ol>

<p>Ve Kafka kurulumu başarıyla tamamlandı.</p>

<h1 id="firewall-rule-kuralları">Firewall Rule (Kuralları)</h1>

<p>VPC network &gt; Firewall menüsü altından önce firewall’a erişelim. Ardından “Create Firewall Rule” butonuna tıklayarak aşağıdaki rule’ları tanımlayabilirsiniz.</p>

<p><img src="/assets/uploads/gcp_apache_kafka_ip_table.png" alt="Firewall Rules Table" /></p>

<p>TCP:22 portuna izin vermemizin sebebi, VM’e ssh bağlantısı yapabilmemizi sağlamak. TCP:9092 ise Kafka’nın default port’u. Eğer bir producer uygulamamız varsa ve GCP üzerinde aynı VPC içerisindeyse aslında 9092 portunu açmanıza gerek yok. Ancak özellikle development ortamı için açılabilir ki local’den bir client aracılığı ile topic’leri ya da message’ları görebilelim.</p>

<h1 id="kafka-ayarları">Kafka Ayarları</h1>

<p>GCP console üzerinden Compute Engine &gt; VM Instances akışını kullanarak mevcut VM’lerin listesine ulaşıyoruz. Biraz önce One Click Deploy ile uygulamayı oluştururken VM’e verdiğimiz ismi bu sayfadaki tabloda buluyoruz ve en sağ tarafta bulunan “External IP” column’undaki IP’yi kopyalıyoruz. Bu bizim makinemizin public IP’si.</p>

<p>Ardından yine bir sonraki column’da bulunan SSH butonuna tıklayarak VM’e ssh bağlantısı yapıyoruz. Daha sonra aşağıdaki komutu çalıştırıyoruz.</p>

<div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span><span class="w"> </span><span class="nb">sudo </span>nano /opt/kafka/config/server.properties
</code></pre></div></div>

<p>Açılan server.properties dosyasındaki “advertised.listeners” satırını bulup comment-out (başındaki # sembolünü silerek) ediyoruz ve aşağıdaki şekilde düzenledikten sonra kaydedip çıkıyoruz.</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="s">advertised.listeners=PLAINTEXT://123.45.67.89:9092</span>
</code></pre></div></div>

<p><em>Buradaki 123.45.67.89 IP’si biraz önce “External IP” olarak bahsettiğim IP olmalıdır.</em></p>

<p>Ardından Kafka’yı restart etmek için aşağıdaki komutu çalıştırıyoruz.</p>

<div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span><span class="w"> </span><span class="nb">sudo </span>systemctl restart kafka
</code></pre></div></div>

<p>Artık Kafka ayarlarımız da bittiğine göre her şey tamam. “123.45.67.89:9092” üzerinden kurduğumuz Kafka’ya erişebilirsiniz.</p>

<h1 id="kafka-client">Kafka Client</h1>

<p>macOS kullanıcılarına rahatlıkla <a href="https://www.conduktor.io/">Conduktor</a> uygulamasını tavsiye ederim. Bir süre önce keşfettim ve oldukça memnunum. Zaten pek de seçeneğimiz yok 😊</p>

<p>Windows için de bir araştırma yaptım bu yazıyı yazarken, <a href="https://www.kafkatool.com/">Kafka Tool</a> adında bir uygulamaya denk geldim fakat nasıl bir uygulama olduğuna dair pek fikrim yok.</p>

<p>✋</p>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="apache kafka" /><category term="compute engine" /><category term="gcp" /><category term="google cloud platform" /><summary type="html"><![CDATA[GCP üzerinde bir Kafka uygulaması nasıl kurulur, firewall için hangi rule'ları tanımlamak gerekir ve local'imizdeki bir client ile remote'da kuracağımız Kafka'ya nasıl ulaşırız, bunlardan bahsedeceğim.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://batuhan.me/assets/uploads/gcp_apache_kafka.png" /><media:content medium="image" url="https://batuhan.me/assets/uploads/gcp_apache_kafka.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Zubizu’dan Örneklerle Fastlane Nedir?</title><link href="https://batuhan.me/fastlane-nedir-zubizudan-ornekler/" rel="alternate" type="text/html" title="Zubizu’dan Örneklerle Fastlane Nedir?" /><published>2017-12-11T20:10:00+01:00</published><updated>2017-12-11T20:10:00+01:00</updated><id>https://batuhan.me/fastlane-nedir-zubizudan-ornekler</id><content type="html" xml:base="https://batuhan.me/fastlane-nedir-zubizudan-ornekler/"><![CDATA[<p>Başlamadan; uzun süredir yazı yazmadığım için çok geriliyordum ve bunun sebebi yazı yazmaya ayıracak vaktimin olmamasındandı. Neyse ki radikal bir kararla bugün bu yazıyı yazmaya başladım 👏 Bir sonraki yazımda da vaktimi nelere harcadığımdan bahsetmeyi düşünüyorum, umarım 😊</p>

<h1 id="nedir-bu-fastlane">Nedir Bu Fastlane?</h1>

<p>Kendi tanımı ile “<em>fastlane</em> is the tool to release your iOS and Android app 🚀” yani “fastlane, iOS ve Android uygulamalarınızı kolayca dağıtmanızı sağlayan bir araçtır”. Burada her ne kadar Android platformuna da destek verildiğinden bahsedilsede, fastlane’in yaratıcısı Felix Krause, çoğunlukla iOS üzerinde durduklarını söylüyor (duyum 🤭). Sanırım Android tarafı toplulukta bulunan geliştiriciler tarafından desteklenmekte.</p>

<p>Her neyse, fastlane içinde bulundurduğu bir çok tool ile deployment sürecinizi hızlandırmayı, developer bağımlı release’leri önlemeyi ve en önemlisi de Countinuous Delivery yapmanızı sağlıyor. Ayrıca Slack entegrasyonu ile deployment durumlarını istediğiniz channel’lara ileterek süreçten herkesin haberdar olmasını sağlayabiliyorsunuz 👍</p>

<h1 id="fastlane-family-tools">Fastlane Family (Tools)</h1>

<p>Biraz önce de bahsettiğim gibi, fastlane’i fastlane yapan asıl olay, aşağıdaki tool’lar. Şuan da 15 civarında resmi tool bulunmakta. Bunlar zaten fastlane içinde default olarak gelmekte, dolayısı ile plugin olarak düşünülmemelidir. Fakat çeşitli nedenlerden dolayı biz Zubizu’da bu toollardan yalnızca 5-6 tanesini kullanabiliyoruz</p>

<p><img src="/assets/uploads/fastlane_features.jpg" alt="Fastlane Özellikleri" /></p>

<p>Önemli olduğunu düşündüğüm tool’lardan bir kaçını açıklamak isterim;</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">gym</code>: Bu komut, mevcut iOS uygulamanızı build ederek, IPA çıktısını almaktadır.</li>
  <li><code class="language-plaintext highlighter-rouge">scan</code>: Bu komut, uygulamanızda yazmış olduğunuz tüm testleri koşturmaktadır.</li>
  <li><code class="language-plaintext highlighter-rouge">snapshot</code>: Bu komut ile tüm cihazlarda ve desteklediğiniz tüm dillerde, uygulamanızın ekran görüntülerini almaktadır.</li>
  <li><code class="language-plaintext highlighter-rouge">deliver</code>: Bu komut, tüm ekran görüntülerini, metadata’ları ve uygulamanızı App Store’a göndermenizi sağlamaktadır.</li>
  <li><code class="language-plaintext highlighter-rouge">precheck</code>: Bu yeni farkettiğim bir komut. Çok faydalı olabileceğine inanıyorum. Peki ne yapıyor? Bu komut App Store’un review rule’larına göre uygulamanızı değerlendiriyor ve yapılması gerekenleri size söylüyor. Bu sayede sürümünüzün reject yeme olasılığını elinizden geldiğince düşürmüş oluyorsunuz.</li>
</ul>

<h1 id="ios-testflight-ve-crashlytics-destekliyor-mu">iOS TestFlight ve Crashlytics Destekliyor mu?</h1>

<p>Fastlane’in belki de en önemli özelliklerinden biri TestFlight ve Crashlytics destekliyor olması. Bu sayede uygulamınızın deployment sürecini fastlane ile yönetmeseniz bile beta sürümlerinizi fastlane üzerinden tetikleyebilirsiniz. Örneğin Zubizu’da deployment’lar manuel olarak yapılıyor fakat beta paketlerimiz fastlane ile yönetilmekte. Ayrıca birden fazla branch’den beta çıktığımız için tüm bu karışıklıkları handle etmek oldukça rahat oluyor fastlane sayesinde.</p>

<h1 id="fastfile-nedir">Fastfile Nedir?</h1>

<p>Fastfile, bir proje için oluşturulan tüm fastlane configurationları içeren bir dosyadır. Bu dosyada çeşitli “lane”ler bulunmaktadır. Örneğin en basit beta distribution için build alıp bu build’i Crashlytics’e yükleyen kodların bütünü bir “lane”dir.</p>

<p>Beta distribution demişken, Zubizu’da kullandığımız fastfile’ın beta paketi çıkmak için kullandığımız kısmını sizlerle paylaşmak isterim.</p>

<p><em>Not: Çeşitli kısımları kırpılmıştır.</em></p>

<p><img src="/assets/uploads/fastlane_configs.png" alt="Fastlane Ayarları" /></p>

<h1 id="bitirirken">Bitirirken…</h1>

<p>Fastlane’i projenize kurmak oldukça kolay, hemen <a href="https://docs.fastlane.tools" title="Fastlane Dökümantasyon">buraya</a> tıklayarak fastlane dökümantasyonuna ulaşabilirsiniz. Ayrıca dökümantasyon çok detaylı ve güzel hazırlanmış.</p>

<p>Fastlane, <a href="https://www.thoughtworks.com/radar/tools" title="ThoughtWorks Technology Radar">ThoughtWorks Technology Radar</a> / Tools’da “adopt” yani “mutlaka kullanılmalı” kategorisine dahil edilmiş durumda.</p>

<p>Her zamanki gibi <a href="https://batuhan.me/contact" title="Batuhan Kök İletişim">İletişim</a> sayfasını kullanarak bana ulaşabilirsiniz.</p>

<p>Kolay gelsin! 🎉</p>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="fastlane" /><category term="pipeline" /><category term="ios" /><category term="zubizu" /><summary type="html"><![CDATA[Kendi tanımı ile "fastlane is the tool to release your iOS and Android app 🚀" yani "fastlane, iOS ve Android uygulamalarınızı kolayca dağıtmanızı sağlayan bir araçtır".]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://batuhan.me/assets/uploads/fastlane.png" /><media:content medium="image" url="https://batuhan.me/assets/uploads/fastlane.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Google’ın Yeni Servisi: Domains</title><link href="https://batuhan.me/google-domains/" rel="alternate" type="text/html" title="Google’ın Yeni Servisi: Domains" /><published>2017-05-13T21:20:00+02:00</published><updated>2017-05-13T21:20:00+02:00</updated><id>https://batuhan.me/google-domains</id><content type="html" xml:base="https://batuhan.me/google-domains/"><![CDATA[<p>Merhaba, bu yazımda, yaklaşık 1 ay önce kullanmaya başladığım, Google’ın henüz beta sürecinde olan <a href="https://domains.google">Google Domains</a> servisini anlatmaya çalışacağım. Yaklaşık 1 yıldır davetiye ile kayıt olunabilen servis, yakın zamanda tüm kullanıcılara açıldı diyebiliriz. Bir farkla; eğer Amerika, Kanada, İngiltere yada Hindistan’da yaşıyorsanız… Ama farklı bir ülkede, özellikle de Türkiye’de, yaşıyorsanız ve yinede domain satın almak istiyorsanız, birazdan anlatacağım yolu izlemek zorundasınız. Şimdilik… 😊</p>

<h1 id="google-domains-nasıl-başladı">Google Domains Nasıl Başladı?</h1>

<p>Yakın zamanda, Google Business tarafından yapılan bir araştırmaya göre; tüm Dünya’daki küçük işletmelerin yalnızca %45’inin bir websitesi bulunduğu belirlendi. Bu istatistikten yola çıkan Google ekibi, kendi domain servisi Google Domains’i kurma kararı aldı. Şuan domain hizmeti dışında herhangi bir hosting hizmeti sağlamayan Google; Squarespace, Wix, Weebly ve Shopify gibi website oluşturma sihirbazı olan firmalara destek vermekte.</p>

<h1 id="google-domains-özellikleri">Google Domains Özellikleri</h1>

<ul>
  <li>Özel olarak alınan domainler için ekstra ücret alınmayacak,</li>
  <li>Bir domain üzerinden 100 e-posta adresi alınabilecek,</li>
  <li>Bir domaine ait 100 alt-domain oluşturulabilecek,</li>
  <li>A, AAAA, CNAME, MX, NS, PTR, SOA, SPF, SRV ve TXT ayarları yapılabilecek,</li>
  <li>Domain’in TTL ayarları yapılabilecek ve Dynamic DNS kullanılabilecek,</li>
  <li>WHOIS bilgileri ücretsiz bir şekilde gizli tutulabilecek,</li>
  <li>Ünlü website oluşturucuları ile website oluşturmaya destek verilecek,</li>
  <li>Google Domains ayrıca Google’ın kendi DNS’lerini kullanacak, dolayısıyla sunucunun yanıt süresi oldukça hızlı olacak.</li>
</ul>

<h1 id="google-domains-fiyatları">Google Domains Fiyatları</h1>

<p>Açıkcası fiyatları sektörden uygun olmayan Google, burada şeffaf ve her şey dahil fiyat politikası izliyor. Üst seviye alanadı uzantıları, yani .com .net .org gibi uzantılar $12 gibi normal bir fiyat üzerinden satışta. Transfer ücretleri ise domain kayıt ücretleriyle aynı olarak belirlenmiş. Tüm fiyatlara ulaşmak için <a href="https://support.google.com/domains/answer/6010092?hl=en&amp;_ga=2.25173437.1276871490.1494681010-1950455194.1493415466">buraya</a> tıklayabilirsiniz.</p>

<h1 id="hizmete-kapalı-ülkelerden-domain-nasıl-satın-alınır">Hizmete Kapalı Ülkelerden Domain Nasıl Satın Alınır?</h1>

<ol>
  <li>Google Domains’e giriş yapıyoruz,</li>
  <li>İstediğimiz domaini yazıp “ara” butonuna tıklıyoruz,</li>
  <li>Beğendiğimiz domainleri sepete ekliyoruz,</li>
  <li>Sepete gidip “ödeme yap” butonuna tıklıyoruz,</li>
  <li>Eğer karşınıza “lütfen müşteri temsilcisi” ile iletişime geçin tarzında bir ibare gelirse; hemen destek linkine gidip, ülke ayarını Amerika yapıyoruz, “Live Chat” kısmı aktif hale gelecektir, daha sonra müşteri temsilcisine durumu anlatıyoruz ve Amerika’da okuyan bir Türk olduğumuz yalanını söylüyoruz, sizden kendisi yada ileriki aşamalarda Google “legal billing address” isterse <a href="https://www.fakeaddressgenerator.com/World/us_address_generator">buraya tıklayarak</a> fake adres ve bilgiler oluşturuyoruz, bu bilgileri gerekli alana girdikten yada görevliye söyledikten sonra süreç normal satın alma sürecine dönüyor.</li>
  <li>Artık ödemenizi istediğiniz kredi kartı ile yaparak tamamlayabiliyorsunuz.</li>
</ol>

<h1 id="domain-transferi">Domain Transferi</h1>

<p>Aslında tüm süreç aynı, fakat domaininizi arama kutusuna yazdıktan sonra, transfer et butonuna tıklamanız gerekiyor, hemen ardından karşınıza domainin size ait olduğunu kanıtlamanız için yapmanız gerekenlerin listesi gelecek, tüm işlemleri tamamladıktan sonra çok büyük ihtimalle karşınıza yukarıdaki 5. aşamada bahsettiğim süreç gelecek, yukarıdaki işlemlerin aynısını yaparak, domaininizi transfer edebilirsiniz.</p>

<p><em>Not: Transfer işlemi yapanlar için domain’in eski firmadan Google’a geçmesi biraz zaman alabiliyor, bu süreyi beklememek için eski firmanıza durumu iletmeniz ve transfer işleminin hemen onaylanmasını talep etmeniz fayda sağlayacaktır.</em></p>

<p>Herhangi bir yerde takılanlar <a href="https://batuhan.me/contact">İletişim</a> sayfasını kullanarak bana ulaşabilirler.</p>

<p>Kolay gelsin! 🎉</p>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="domain" /><category term="godaddy" /><category term="google domains" /><summary type="html"><![CDATA[Google'ın henüz beta sürecinde olan Google Domains servisini anlatmaya çalışacağım. Yaklaşık 1 yıldır davetiye ile kayıt olunabilen servis, yakın zamanda tüm kullanıcılara açıldı diyebiliriz.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://batuhan.me/assets/uploads/google_domains.png" /><media:content medium="image" url="https://batuhan.me/assets/uploads/google_domains.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Mehmet Karlı - Hakkın Var @TEDxReset</title><link href="https://batuhan.me/hakkin-var-mehmet-karli-tedxreset/" rel="alternate" type="text/html" title="Mehmet Karlı - Hakkın Var @TEDxReset" /><published>2017-03-28T22:00:00+02:00</published><updated>2017-03-28T22:00:00+02:00</updated><id>https://batuhan.me/hakkin-var-mehmet-karli-tedxreset</id><content type="html" xml:base="https://batuhan.me/hakkin-var-mehmet-karli-tedxreset/"><![CDATA[<iframe width="100%" height="400" src="https://www.youtube.com/embed/VfQ80l45r4c" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="mehmet karlı" /><category term="hakkın var" /><category term="tedx" /><category term="reset" /><summary type="html"><![CDATA[Galatasaray Üniversitesi'nde hukuk bölümünde hocalık görevi yapan Mehmet Karlı'nın, 2017 yılında TEDxReset etkinliğinde yapmış olduğu muhteşem konuşmanın kaydı.]]></summary></entry><entry><title type="html">macOS için Jekyll Kurulumu</title><link href="https://batuhan.me/macos-icin-jekyll-kurulumu/" rel="alternate" type="text/html" title="macOS için Jekyll Kurulumu" /><published>2017-03-27T21:20:00+02:00</published><updated>2017-03-27T21:20:00+02:00</updated><id>https://batuhan.me/macos-icin-jekyll-kurulumu</id><content type="html" xml:base="https://batuhan.me/macos-icin-jekyll-kurulumu/"><![CDATA[<p>Jekyll, veritabanı gerektirmeyen, css ve html ile oluşturulmuş bir içerik yayınlama sistemidir. Tabii kendi blogunuz için tema yazarken, if else for gibi bir çok statement kullanabiliyorsunuz. Bu da bence Jekyll’i statik sitelerden ayıran yegane özelliklerden biridir. Ayrıca bu sistemin bu denli tanınmasını sağlayan ise tabii ki Github. Çünkü Github, kullanıcılarına sunduğu Pages özelliğinde Jekyll kullanılabiliyor ve benim gibi geliştiriciler, blogunu Github Pages üzerinde, Jekyll sayesinde açabiliyor.</p>

<h1 id="jekyll-admin">Jekyll Admin</h1>

<p>Bir kaç ay önce duyduğum bir eklenti bu. Jekyll’i aslında statik olmaktan tamamen kurtarıyor denebilir. Bildiğiniz WordPress’in admin panelinin çok basitleştirilmiş hali. Tabii, Jekyll, WordPress gibi e-ticaretten magazin sitelerine<br />
kadar, geniş bir kitleye hitap etmediği için, bence bu Jekyll Admin eklentisi oldukça başarılı ve yeterli. Eklentinin Github sayfasına ulaşmak için <a href="https://github.com/jekyll/jekyll-admin">buraya</a> tıklayabilirsiniz.</p>

<p><em>Not: Github Pages üzerinde Jekyll Admin eklentisinin kullanılabilmesi büyük bir aksilik çıkmazsa Ağustos-Eylül 2017’yi bulacakmış. Tarih bilgisi, eklentinin geliştiricilerinden <a href="https://mert-kahyaoglu.com">Mert Kahyaoğlu</a>‘ndan edinildi.</em></p>

<h1 id="macos-üzerine-jekyll-kurulumu">macOS Üzerine Jekyll Kurulumu</h1>

<p>Aşağıdaki tüm işlemler Terminal üzerinden yapılmalı. Varsayılan terminal’i yada iTerm’ü kullanabilirsiniz.</p>

<p>Öncelikle Xcode bileşenlerini Mac’imize yüklemeniz gerekiyor:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>xcode-select –install
</code></pre></div></div>

<p>Daha sonra HomeBrew eklentisini kurmalısınız:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/usr/bin/ruby -e "$(curl -fsSL &lt;https://raw.githubusercontent.com/Homebrew/install/master/install&gt;)"
</code></pre></div></div>

<p>Olmazsa olmaz Ruby tabii ki:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>brew install ruby
</code></pre></div></div>

<p>Şimdi ise asıl olayımız Bundler ve Jekyll’i kuruyoruz:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo gem install bundler  
sudo gem install jekyll
</code></pre></div></div>

<p>Aslında kurulum burada tamamlandı. Buradan sonra ise Jekyll’e ait, bilmeniz gereken komutları yazacağım.</p>

<h1 id="kullanışlı-komutlar">Kullanışlı Komutlar</h1>

<p>Yeni bir site oluşturmak için;</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>jekyll new sitenizin_adi
</code></pre></div></div>

<p>Oluşturduğunuz sitenin klasörüne ulaşmak için;</p>

<table>
  <tbody>
    <tr>
      <td>Finder &gt; Go to &gt; /Users/bilgisayar_adiniz/sitenizin_adi</td>
    </tr>
  </tbody>
</table>

<p>Oluşturduğunuz siteyi tarayıcıdan <code class="language-plaintext highlighter-rouge">http://localhost:4000</code> yazarak görüntüleyebilmeniz için;</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd sitenizin\_adi  
jekyll serve
</code></pre></div></div>

<p>Son olarak yukarıda girdiğiniz klasördeki dosyalarda herhangi bir değişiklik yaparsanız, her seferinde aşağıdaki komutu çalıştırmalısınız. Çünkü Jekyll <code class="language-plaintext highlighter-rouge">sitenizin_adi</code> klasöründeki dosyaları derlemeye ihtiyaç duyar ve derlenen dosyaları <code class="language-plaintext highlighter-rouge">sitenizin_adi/_site</code> klasörüne statik olarak ekler.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>jekyll build
</code></pre></div></div>

<p>Kolay gelsin! 🎉</p>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="blog" /><category term="github" /><category term="pages" /><category term="jekyll" /><category term="macos" /><summary type="html"><![CDATA[Jekyll, veritabanı gerektirmeyen, css ve html ile oluşturulmuş bir içerik yayınlama sistemidir. Tabii kendi blogunuz için tema yazarken, if else for gibi bir çok statement kullanabiliyorsunuz.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://batuhan.me/assets/uploads/jekyll.png" /><media:content medium="image" url="https://batuhan.me/assets/uploads/jekyll.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">VoWIFI ve VoLTE Nedir? Nasıl Kullanılır?</title><link href="https://batuhan.me/vowifi-ve-volte-nedir-nasil-kullanilir/" rel="alternate" type="text/html" title="VoWIFI ve VoLTE Nedir? Nasıl Kullanılır?" /><published>2017-02-06T06:06:00+01:00</published><updated>2017-02-06T06:06:00+01:00</updated><id>https://batuhan.me/vowifi-ve-volte-nedir-nasil-kullanilir</id><content type="html" xml:base="https://batuhan.me/vowifi-ve-volte-nedir-nasil-kullanilir/"><![CDATA[<p>1 Nisan 2016 yılında, 4.5G yani LTE teknolojisini kullanıma sunan mobil operatörler, yeni yeni LTE’nin meyvelerini kullanıcılarına vermeye başlıyor. Dünyada geçen sene kullanılmaya başlanan bazı özellikler ülkemizde de, sırayla kullanıma girmeye devam ediyor. Önce <strong>Vodafone Türkiye</strong>‘nin mobil müşterilerine sunmaya başladığı VoLTE yani Voice Over LTE, şimdide <strong>Turkcell</strong> tarafından<br />
kullanıma sunuldu. Bunun yanı sıra, VoWIFI adı verilen bir başka kullanışlı özellikte yayınlandı. Hemen detaylara geçelim 😊</p>

<h1 id="vowifi-ve-volte-nedir">VoWIFI ve VoLTE Nedir?</h1>

<p>Öncelikle <strong>VoLTE</strong>, yapılan telefon görüşmesi sırasında iki tarafında LTE’den 3G’ye düşmesini engelleyen ve bu sayede aranan aboneye 1 saniye gibi kısa bir sürede ulaşılmasını (çalmasını) sağlayan bir teknolojidir. Bunun dışında, konuşma sırasında ses aktarımı LTE üzerinden yapıldığı için HD kalitede ses iletimi oluyor, bu sayede çok net bir iletişim imkanı sunuluyor.</p>

<p><strong>VoWIFI</strong> teknolojisi ise, kullanıcıların telefonu o yada bu sebepten ötürü çekmiyorsa, yada az çekiyorsa (tek diş); ayrıca cihaz o anda wifi ağına bağlıysa, aramaların ve sms’lerin wifi ağı üzerinden iletilmesini sağlıyor. Bu sayede, ses gidip gelmesi, kalitesiz görüşmeler ortadan kalkıyor ve çeşitli alanlarda kapsama alanı dışında olmasından ötürü çekmeyen telefonlara iletişim imkanı sunuluyor. Bence en güzel özelliği ise VoWIFI teknolojisi sayesinde, yurtdışında wifi ağına bağlı olduğunuz an, sabit numaralar dahil olmak üzere tüm telefonları arayabilir ve sms atabilir olacağız, üstelik hiçbir <em>roaming</em> ücreti ödemeden. <a href="https://turkcell.com.tr">Turkcell.com.tr</a>‘de bulunan, VoWIFI kullanarak yapılacak tüm aramalar, müşterilerin konuşma paketlerinden dakika olarak düşecektir, ibaresi ise en sevindirici haber 😊</p>

<h1 id="vowifi-ve-volte-nasıl-aktif-edilir">VoWIFI ve VoLTE Nasıl Aktif Edilir?</h1>

<p>Öncelikle VoLTE ve VoWIFI kullanabilmek için tüm Turkcell abonelerinin, <strong>HDSES</strong> yazıp <strong>2222</strong>‘ye mesaj atması gerekiyor.</p>

<ul>
  <li>iPhone: <code class="language-plaintext highlighter-rouge">Ayarlar &gt; Telefon &gt; Wifi ile Arama : Açık</code></li>
  <li>LG: <code class="language-plaintext highlighter-rouge">Ayarlar &gt; Ağlar &gt; Çağrı Ayarları &gt; WiFi Calling : Aktif</code></li>
</ul>

<p>Yukarıdaki şekilde cihaz ayarlarınızı da ayarladıktan sonra her şey tamam! iPhone için olan ayarların görsel halini aşağıda.</p>

<p><img src="/assets/uploads/volte_settings.png" alt="VoLTE Ayarları" /></p>

<h1 id="vowifiın-aktif-olduğunu-nasıl-anlarız">VoWIFI’ın Aktif Olduğunu Nasıl Anlarız?</h1>

<p>Eğer bu teknolojiyi denemek istiyorsanız, gerekli ayarları yaptıktan sonra, cihazınızı uçak moduna alıp, wifi ağına bağlanırsanız, status bar (durum çubuğu)’da <strong>Turkcell Wi-Fi</strong> yazıdığını göreceksiniz ve istediğiniz numarayı arayıp sms atabilirsiniz. Aşağıda bu teknoloji aktifken status bar’ın nasıl göründüğünü görebilirsiniz.</p>

<p><img src="/assets/uploads/turkcell_wifi.png" alt="Turkcell Wifi" /></p>

<h1 id="wifi-ile-arama-seçeneğini-gözükmüyor">“Wifi ile Arama” Seçeneğini Gözükmüyor</h1>

<p>Çok aranan fakat herhangi bir yerde cevabı bulunamayan sorunun yanıtını vereyim; <strong>iOS 10.3 Beta</strong> kullanıcı iseniz, bu ayarın sizde görünmemesi çok normal. Çünkü Turkcell beta kullanıcılara bu özelliği shenüz açmadı. <strong>Tukcell</strong>‘den yapılan açıklamaya göre, “iOS 10.3 kullanıcılarının VoLTE ve VoWIFI kullanabilmeleri için Beta 3 versiyonuna kadar beklemeleri gerekiyor”, bu bilginin kaynağı ben değilim, Donanımhaber Forumu’ndan bir arkadaş. <em>Mesajı tekrar bulamadım o nedenle link veremiyorum, kusura bakmayın.</em></p>

<h1 id="volte-ve-vowifi-destekleyen-cihazlar">VoLTE ve VoWIFI Destekleyen Cihazlar</h1>

<ul>
  <li>iPhone 5S ve üzeri</li>
  <li>Samsung S6 ve üzeri</li>
  <li>LG G4 ve üzeri</li>
</ul>

<p><em>Not: Şimdilik yalnızca bu cihazlara destek veriliyor, fakat önümüzdeki günlerde bu cihazlara yenileri eklenebilir.</em></p>

<p>Sağlıcakla kalın 😊</p>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="iphone" /><category term="turkcell" /><category term="volte" /><category term="vowifi" /><summary type="html"><![CDATA[LTE teknolojisini kullanıma sunan mobil operatörler, yeni yeni LTE'nin meyvelerini kullanıcılarına vermeye başlıyor. Dünyada geçen sene kullanılmaya başlanan bazı özellikler ülkemizde de, sırayla kullanıma girmeye devam ediyor.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://batuhan.me/assets/uploads/turkcell.png" /><media:content medium="image" url="https://batuhan.me/assets/uploads/turkcell.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">OneSignal Push Bildirimleri</title><link href="https://batuhan.me/onesignal-push-bildirimleri-swift/" rel="alternate" type="text/html" title="OneSignal Push Bildirimleri" /><published>2016-11-09T00:27:00+01:00</published><updated>2016-11-09T00:27:00+01:00</updated><id>https://batuhan.me/onesignal-push-bildirimleri-swift</id><content type="html" xml:base="https://batuhan.me/onesignal-push-bildirimleri-swift/"><![CDATA[<p>Bir süredir Swift’den uzak kaldım. iOS uygulamaları geliştirmek yerine, web yazılımlara yoğunlaşmıştım fakat son bir kaç işimde, web sitelerinin uiwebview ile yapılmış uygulamalarını isteyen müşterilerim oldu. Dolayısıyla bu uygulamaları kullananlara push bildirimleri de göndermek istediler. Bu sebeple push bildirimleri olayına yeniden bakmam gerekti. Ama biraz kafam karıştı çünkü parse.com popülerliğini kaybetmiş ve yerine OneSignal gelmiş. Bu yüzden konuyla ilgili bir yazı paylaşmak istedim. Fazla vakit kaybetmeden detaylara geçelim…</p>

<h1 id="parsecoma-ne-oldu">Parse.com’a Ne Oldu?</h1>

<p>Açıkcası bende tam olarak anlamadım. Yaklaşık 5-6 ay öncesine kadar, parse.com en popüler iOS ve Android uygulamalara push bildirim ekleme aracıydı, hatta database hizmetleride oldukça iyiydi. Ancak bir süre önce Facebook’un bir servisi olan parse.com’un kapanacağı haberlerini duymuştum, nedenini anlayamasamda şimdi baktığımda gördümki siteleri hala aktif. Nedense uygulama geliştiriciler artık bu siteyi kullanmıyor.</p>

<h1 id="onesignalcom-nedir">OneSignal.com Nedir?</h1>

<p>Biraz öncede söylediğim gibi parse.com’a güvenilmediği için bende yeni servisler aramaya koyuldum ve OneSignal.com’un oldukça popülerleştiğini, arayüzlerinin güzel ve kullanışlı olduğunu farkettim. Bunların yanında, masaüstü (tarayıcı) bildirimleri seçeneğinin olması ve kolay kurulumu oldukça güzel özelliklerinden. Ayrıca bir kaç gün önce kimdir bu OneSignal diye araştırırken, servisi Cisco, younow, zynga, Uber ve MTV gibi ünlü firmalarında kullanıdığını gördüm. Bu demektir ki, OneSignal.com uzunca bir süre başımızı ağrıtmayacak. En güzel haber ise <strong>OneSignal %100 ücretsiz</strong> bir hizmet. Ücretli kısmı ise premium destek çözümü.</p>

<h1 id="onesignalcom-swift-destekliyor-mu">OneSignal.com Swift Destekliyor mu?</h1>

<p>Elbette. Bir çok firmanın aksine, OneSignal swift dilinde de çözümler sunuyor. Bahsettiğim gibi oldukça geniş kitlelere hitap eden, kaliteli ve uzun soluklu bir çözüm gibi gözüküyor bu firma. O nedenle gönül rahatlığıyla kullanabilirsiniz ve bildirim gecikmelerinin de hemen hemen hiç yaşanmadığını söyleyebilirim.</p>

<h1 id="peki-nasıl-yapılır-bu-bildirimler">Peki Nasıl Yapılır Bu Bildirimler?</h1>

<p>İşte konunun sadedine geldik. OneSignal hakkında genel bilgileri verdikten ve parse.com’u biraz gömdükten sonra (içimde ukte kalmıştır) asıl olayımıza gelebiliriz. Aslında süreç çok basit, fakat internette biraz araştırdım, uygulama geliştirmeye yeni başlayan arkadaşlar <em>(özellikle İngilizce ile arası pek iyi olmayanlar)</em> için pek örnek kurulum, entegre yapanı anlatanı bulamadım. Bende o nedenle <a href="https://batuhan.me/onesignal-push-notification-ios/tr.html">şu</a> ufak GitHub sayfasını oluşturdum ve yapmanız gereken her şeyi maddeler halinde anlattım. Yinede bir problem yaşarsanız bana <a href="https://batuhan.me/contact">buradan</a> ulaşabilirsiniz! Kolay gelsin.</p>

<ul>
  <li><strong><a href="https://batuhan.me/onesignal-push-notification-ios/tr.html">Dökümanın Türkçe sürümü</a></strong></li>
  <li><strong><a href="https://batuhan.me/onesignal-push-notification-ios">English version of the documentary</a></strong></li>
</ul>

<p>Not: <em>Önce İngilizce olan versiyonu oluşturdum ve daha sonra Türkçe çevirisini yaptım o nedenle çeviri problemleri olabilir, açıkcası sıfırdan Türkçe yazmaya üşendim 🙂</em></p>

<p><code class="language-plaintext highlighter-rouge">sleep();</code></p>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="iphone" /><category term="ios" /><category term="onesignal" /><category term="push" /><category term="swift" /><summary type="html"><![CDATA[OneSignal.com'un oldukça popülerleştiğini, arayüzlerinin güzel ve kullanışlı olduğunu farkettim. Bunların yanında, masaüstü (tarayıcı) bildirimleri seçeneğinin olması ve kolay kurulumu oldukça güzel özelliklerinden.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://batuhan.me/assets/uploads/onesignal.png" /><media:content medium="image" url="https://batuhan.me/assets/uploads/onesignal.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Bir Yazılımcı Olma Hikayesi</title><link href="https://batuhan.me/yazilimci-olmak/" rel="alternate" type="text/html" title="Bir Yazılımcı Olma Hikayesi" /><published>2016-08-14T17:27:00+02:00</published><updated>2016-08-14T17:27:00+02:00</updated><id>https://batuhan.me/yazilimci-olmak</id><content type="html" xml:base="https://batuhan.me/yazilimci-olmak/"><![CDATA[<p>Her mesleğin bir zorluğu vardır derler ama en zorlarından biri de bizim ki galiba. Tabii bu zorluk işi yapmaktan ziyade, daha çok insanlara ne yaptığımızı anlatmakta. Yada ne <strong>yapmadığımızı</strong> anlatmakta. Yani mesleğimiz ve çevremiz arasındaki ilişki hayli problemli…</p>

<p><strong>Kime ne anlatıyoruz biz?</strong></p>

<p>“<em>Ne iş yapıyorsun oğlum sen?</em>” diyen bir yaşlı teyze “<em>Yazılımcıyım teyze</em>” desen sana vereceği ilk cevap şudur “<em>Ne yazıyorsun oğlum? Aman dikkat et siyasi kitap yazma!</em>”. Daha da kötüsü “<em>Teyze kod yazıyoruz</em>” diye artistlik yaparsan sana gelen cevap “<em>Yavrum hele şu cep telefonun pin kodu yanlış diyor bi baksana</em>” olacaktır.</p>

<p>Hadi işin zor kısmını geçtim yaptığın işi anlatmak yada karşıdakine benimsetmek o kadar zor ki. Ben babama 10 sene sonra zor anlattım, adam beni akşama kadar hep oyun oynuyor diye biliyordu. Hayır garip tarafı da şu ki bilgisayardan oynadığım tek bir oyun bile yok. Öyleki, bir ara yanlışlıkla hesap özetimi görüp “<em>Oha benden fazla para kazanıyosun!</em>” deyip “<em>Milletin kredi kartını mı hackliyosun sen, yoksa internetten kumarmı oynuyosun?</em>” diye kızdığı da olmadı değil.</p>

<p>Eee normal o adam için. Bilgisayar bilgisi maksimum Facebook yada internet radyoları dinleyip, hava durumuna bakıcak kadar. He birde haberlere bakıp, google da arama yapabiliyor o da iyi. Neyse bu senenin başlarında bir işe girdim part-time olarak. Amacım sadece babamın bu alanda bir sektörün olduğunu ve bu alanda yüksek paraların kazanabileceğini, bu işi sevdiğimi göstermekti. Neyseki iş yerime gelerek, yaptığımız işleri görerek anladı tabi…</p>

<p>Her ne kadar “<em>Napıyosun?</em>” dediğinde “<em>Mobil uygulama yapıyorum.</em>” desem de cevap olarak hep “<em>Baksana bi, benim telefonda kaç dakika sürem kalmış?</em>” oluyor. Olsun napalım artık…</p>

<p>Bu işe örnek olarak babamı verdim ama arkadaş çevresinde de benzer bir durum var. “<em>Oğlum biz sabahtan akşama kadar makina başında parça takıyoruz, kontrol yapıyoruz, sen paso yatıyorsun, akşama kadar Facebook’da yada dışarda geziyorsun bizden çok kazanıyosun.</em>” gibi konuşanlar… “<em>Geceleri napıyoruz biz kanka?</em>” diye sorsak, yatıyoruz zannedecek 🙂</p>

<p><strong>Sen Haykırsın Galiba?</strong></p>

<p>Yada bu işlerde bilgili olunca hep hacker damgası yiyorsunuz… Her gün birisi arayıp “<em>Abi facebook şifremi unuttum, Batu şu kızın Facebook hesabını hackleyelim.</em>” gibisinden arıyor… İyi güzel söylüyorsun da kardeşim, karşımızda 400 milyar dolarlık şirket, binlerce yazılımcı oturup bir sistem yazıyor, bende bunu 5 dakikada hackliyim dimi? Oh, ne güzelmiş.</p>

<p>Birde bilgisayar almak için devamlı arayanlar oluyor. Donanım bilgim sıfır ama yine de idare ediyorum onları. “<em>Girip bir teknoloji, e-ticaret sitesinden RAM’i, işlemcisi hangisi iyiyse al kanka.</em>” deyip gönderiyorum, ne yapayım?</p>

<p>Tabi birde bu işin bizim bakış açımızdan boyutu var.</p>

<p><strong>Yazılımcı &amp; Tasarımcı Ruh Hali</strong></p>

<p>Yolda giderken kaldırımdaki parkelerde çizgilere basmadan yürümemeye özen gösteren bir tip varsa yada tıp dilinde simetri hastası dediğimiz insan. Heh o tip insanlarız aslında biz. Düzen, disiplin ve babamın deyimiyle “<em>Anormalsiniz oğlum siz.</em>” denilen tipleriz. Bunun nedeni aslında çok basit; bir sistemi yazarken karşımızda en mantıksız, en bilgisiz insanı baz alarak yazıyoruz. Yani bizde isteriz ki doğum tarihi kutusuna herkes doğum tarihini yazsın, bizde arkaplanda tek tek ay, yıl, gün çekmekle uğraşmayalım. Hadi yanlış yazmayı geçtik oraya “<em>1950 Harmanı</em>” yazıcak insanlar var. Bu nedenle hep bir adım önde ve bir adım arkamızı kollayarak gitmek zorundayız.</p>

<p>Sektörün içinde aktif olarak olduğumuzdan haberlerden yada olaylardan sizden önce haberdar olmamız çok normal. Hani neyseki Twitter vs. aktif kullanılmaya başladı, sizde haberdar oluyorsunuz ama bizdeki mail bültenleri, özel rss takip sistemleri derken siz bomba patladıktan 2 saat sonra duyarken, biz bomba patladıktan 5 dakika sonra haberleri alıyoruz 🙂 Bunun sebebi de, sitelerimize haber eklemek yada haber botlarını kontrol altında tutmak.</p>

<p>Yani şöyle; “<em>Abi iPhone 6 çıkmış gördün mü?</em>” lafını söyledikten 1 ay önce biz o cihazın teknik özelliklerini yada Türkiye’ye ilk geldiğinde “<em>tester</em>” olarak kullanan insanlarız. Hani hava atmak gibi olmasın ama öyle 🙂</p>

<p>Tabi kötü huylarımız da yok değil. İnternette basit bir vergi borcu ödemek için girilen sistem de “<em>Oğlum hadi lan bir borç ödüyceksin.</em>” dediğinde kafamız o sırada “<em>.Net’de Oracle bağlantısında bu herifler kredi kartı bilgilerini veritabanına almıyor galiba.</em>” diye düşünmemizden kaynaklanıyor olabilir. Siz sistemi sadece kullanırken, biz salak saçma arka tarafındakileri düşünmek zorundayız.</p>

<p>Tasarımcı olmak daha kötü tabi. Hani ben biraz fazla meraklı olduğumdan tasarım konusunu da, kendim yapıyım diye baya araştırınca bende de yan etkileri çıkmaya başladı. Örneğin billboarda bakınca “<em>Aa, Heltavica Neue Semibold kullanmış.</em>” renk de “#CCC” diye görüyoruz yada arkaplan resmine bakıp <em>“Ulan bu texture geçen Shutter Stock da vardı. Kesin bu tasarımcının Premium hesabı var.</em>” gibisinden off’da çekebiliriz 🙂</p>

<p><strong>En Çok Biz İçeriz, En Çok!</strong></p>

<p>Hepinizin bildiği gibi kahveyi çok severiz. Kahveyle alakalı olmamızın sebebi, devamlı beyin fonksiyonlarımızın aktif olması gerekiyor. Bunu deaktif duruma getirmek için alkolü, aktif duruma getirmek içinse bol bol kafeine ihtiyacımız var. Son zamanlarda RedBull ile de iyi gidiyor kodlama. Hatta öyle bir kahve sevgisidir ki; yazılımcıların bir çok özel sisteminde kahve sembolünü görebilirsiniz. JSFiddle logusu yada en güzel örneği Java kelimesinden geliyor galiba. Java programlama dilinin isminin nereden geldiğini hiç düşündünüz mü? Endonezyada yetişen <strong>“CAVA”</strong> kahve türünün ismini almıştır.</p>

<p><strong>Bunlarıda Severiz…</strong></p>

<p>Benim en çok dikkatimi çeken, hatta çok fazla kod yazdığımda karşılaştığım bir yazılımcı ruhu var. Normal sohbetleri veya tartışmaları beynimde gruplandırma yapıyorum nedense. Olayları if else döngüleriyle, while yada foreach diyerek dönderip beyin ereksiyonu geçirdiğim dönemler oluyor. Tabi nadir olsa da bu durum yazılımcı ruhu olarak çok kötü bir şey.</p>

<p>Birde gündüzleri kod yazmayı sevmeyiz. Kod gece yazılır ve sabah ezanıyla uyunup, akşama kadar kalkılmaz 🙂 Geceyi gündüze çevirdiniz diye kızmayın sayın anneler.</p>

<p>Uyurken: <code class="language-plaintext highlighter-rouge">sleep();</code></p>

<p>Aslında “<em>normal</em>” insanlarız ama sizden bir adım önde düşünmek zorunda olduğumuzdan dolayı kusura bakmayın hep anormal gözüktük sizlere. Çok fazla konuşan insanlar değilizdir, iki yazılımcı arasındaki muhabbetleri sittin sene anlamazsınız zaten ama yine de bize <em>“deli”</em> gözüyle bakmayın 🙂</p>

<p><a href="http://www.anarschi.com/yazilimci-olmak">Alıntı buradan düzenlenerek yapıldı.</a></p>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="yazılımcı" /><category term="developer" /><category term="olmak" /><category term="helvatica" /><summary type="html"><![CDATA[Her mesleğin bir zorluğu vardır derler ama en zorlarından biri de bizim ki galiba. Tabii bu zorluk işi yapmaktan ziyade, daha çok insanlara ne yaptığımızı anlatmakta. Yada ne **yapmadığımızı** anlatmakta. Yani mesleğimiz ve çevremiz arasındaki ilişki hayli problemli...]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://batuhan.me/assets/uploads/developer_story.png" /><media:content medium="image" url="https://batuhan.me/assets/uploads/developer_story.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">iPhone’umda Kullandığım Tweakler</title><link href="https://batuhan.me/iphoneumda-kullandigim-tweakler/" rel="alternate" type="text/html" title="iPhone’umda Kullandığım Tweakler" /><published>2015-09-27T06:01:00+02:00</published><updated>2015-09-27T06:01:00+02:00</updated><id>https://batuhan.me/iphoneumda-kullandigim-tweakler</id><content type="html" xml:base="https://batuhan.me/iphoneumda-kullandigim-tweakler/"><![CDATA[<p>Bir önceki yazımda, iOS cihazlarınıza nasıl <strong>Jailbreak</strong> yapacığınızı anlatmıştım. Asıl güzel ve önemli kısım burada başlıyor. Jailbreak yapılmasının asıl amacı yaygınca bilinenin aksine, ücretli uygulamaları üzretsiz bir şekilde indirmek değil, iPhone’unuz üzerinde istediğiniz düzenlemeyi yapmaktır. Bu düzenlemeleri de tweak adı verilen küçük eklentiler sayesinde yapabiliyoruz. Sizlere, kendi kullandığım <strong>tweakleri</strong> aşağıda liste halinde verdim. Detaylı açıklamalarına girmeyeceğim çünkü ufak bir araştırma ile hepsinin detayına ulaşabilirsiniz. İyi eğlenceler!</p>

<ol>
  <li>AirBlue Sharing: Bluetooth’u tam kullanıma açar.</li>
  <li>CCControls: Control Center’ı düzenlemeye yarar.</li>
  <li>ColorBadges: Bildirim sayılarının arkaplanını değiştirir.</li>
  <li>FrontFlash: Ön kamera için flash. (Snapchat’deki gibi)</li>
  <li>iGotYa: Şifre yanlış girilirse, fotoğraf çeker, size mail atar.</li>
  <li>Phantom for Snapchat: Snapchat fotoğraflarını indirebilirsiniz vs.</li>
  <li>RecordPause: Kamera ile video çekimini durdurabilirsiniz.</li>
  <li>Rubik: Wifi’a bağlandığınızda 3G’yi kapatır.</li>
  <li>SwipeSelection: Klavye üzerinde bir kaç hareket ile yazı seçme yapar.</li>
  <li>TransparentCameraBar: Kameradaki alt ve üst kısımların arkaplanı saydam olur.</li>
  <li>VirtualHome: Home tuşuna dokunduğunuzda belirlenen işlemi yapar. (5S ve üzeri)</li>
</ol>

<p>Tüm bu tweaklere, Cydia’da bulunan “Kaynaklar” (repo) kısmına aşağıdaki repo url’lerini ekleyerek ulaşabilirsiniz. Tabii daha sonra tek tek indirmeniz ve respring işlemini beklemeniz gerekiyor. Açıkcası çok can sıkıcı bir durum 🙂</p>

<ul>
  <li><strong>BigBoss:</strong> <a href="http://apt.thebigboss.org/repofiles/cydia/">http://apt.thebigboss.org/repofiles/cydia/</a></li>
  <li><strong>BiteYourApple:</strong> <a href="http://repo.biteyourapple.net/">http://repo.biteyourapple.net/</a></li>
  <li><strong>xSellize:</strong> <a href="http://cydia.xsellize.com/">http://cydia.xsellize.com/</a></li>
</ul>

<p>Eğer bunları eklediğiniz halde ulaşamadığınız tweak varsa, bana ulaşabilirsiniz. Diğer repo url’lerinide size gönderebilirim.</p>]]></content><author><name>Batuhan Kök</name><email>hello@batuhan.me</email></author><category term="ios" /><category term="cydia" /><category term="iphone" /><category term="jailbreak" /><summary type="html"><![CDATA[Jailbreak yapılmasının asıl amacı yaygınca bilinenin aksine, ücretli uygulamaları üzretsiz bir şekilde indirmek değil, iPhone'unuz üzerinde istediğiniz düzenlemeyi yapmaktır. Bu düzenlemeleri de tweak adı verilen küçük eklentiler sayesinde yapabiliyoruz.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://batuhan.me/assets/uploads/tweaks.png" /><media:content medium="image" url="https://batuhan.me/assets/uploads/tweaks.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>