<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Batuhan Küçükali</title>
	<atom:link href="https://batuhankucukali.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://batuhankucukali.com</link>
	<description>Kişisel Blog</description>
	<lastBuildDate>Sun, 02 Jul 2023 19:28:31 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.2</generator>
<site xmlns="com-wordpress:feed-additions:1">144474175</site>	<item>
		<title>Likya Yolu &#8211; Batı Likya (Ölüdeniz-Kaş) Giriş</title>
		<link>https://batuhankucukali.com/likya-yolu-bati-likya-oludeniz-kas-giris/</link>
					<comments>https://batuhankucukali.com/likya-yolu-bati-likya-oludeniz-kas-giris/#respond</comments>
		
		<dc:creator><![CDATA[Batuhan Küçükali]]></dc:creator>
		<pubDate>Sun, 02 Jul 2023 19:28:26 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<guid isPermaLink="false">https://batuhankucukali.com/?p=162</guid>

					<description><![CDATA[Uzun zamandır bu yazıyı yazmak istiyorumdum fakat türlü bahaneler ile erteledim. Bu blog yazısında yola çıkmayacağım. Yola çıkmayacağım diyorum çünkü yol boyunca yaşadığım deneyimi tekrar&#8230;]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="1024" height="528" data-attachment-id="171" data-permalink="https://batuhankucukali.com/likya-yolu-bati-likya-oludeniz-kas-giris/likya_yolu_1/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2023/07/likya_yolu_1.jpg" data-orig-size="1151,594" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="likya_yolu_1" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2023/07/likya_yolu_1-300x155.jpg" data-large-file="https://batuhankucukali.com/wp-content/uploads/2023/07/likya_yolu_1-1024x528.jpg" src="https://batuhankucukali.com/wp-content/uploads/2023/07/likya_yolu_1-1024x528.jpg" alt="" class="wp-image-171" srcset="https://batuhankucukali.com/wp-content/uploads/2023/07/likya_yolu_1-1024x528.jpg 1024w, https://batuhankucukali.com/wp-content/uploads/2023/07/likya_yolu_1-300x155.jpg 300w, https://batuhankucukali.com/wp-content/uploads/2023/07/likya_yolu_1-768x396.jpg 768w, https://batuhankucukali.com/wp-content/uploads/2023/07/likya_yolu_1.jpg 1151w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>


<p>Uzun zamandır bu yazıyı yazmak istiyorumdum fakat türlü bahaneler ile erteledim. Bu blog yazısında yola çıkmayacağım. Yola çıkmayacağım diyorum çünkü yol boyunca yaşadığım deneyimi tekrar yaşayarak yazacağım ve mümkün olduğunca fazla detay vermeye çalışacağım.</p>



<p> Bu giriş yazısının amacı ise Likya yolunu <em>yürümeye karar vermem</em>, bu süreçte <em>yaptığım araştırmalar</em> ve yürüyüşe başlamak için <em>satın aldığım ürünleri </em>paylaşmak istemem. Benden sonra yürüyeceklere küçücük bile azıcık katkısı olursa sevinirim. </p>



<p><strong>Yürümeye Karar Vermem</strong></p>



<p>Tarih meraklısı olduğum için tarihi mekanlarda bulunmayı ve zaman geçirmeyi çok seviyorum. Bir tarihi mekana gitmeden önce her zaman araştırma yaparım ve o yer ile ilgili edinebildiğim kadar bilgi edinmeye çalışırım. </p>



<p>Antalyada oturuyorum ve çevresindeki Likya ve Psidia kentlerinin bir çoğuna (%90) gittim. Okuduğum bilgiler ve bu kentlerinin birbirine bağlı oluşu bir meclislerinin olması beni hep heyecanlandırmış ve hala heyecanlandırıyor. Hep kendimi bu şehirlerin birinden diğerine giderken hayal ederdim. Yolun popülerleşmeside bu hayalimi daha fazla etelemem gerektiğini hatırlattı bana. </p>



<p><strong>Yaptığım Araştırmalar</strong></p>



<p>Bu araştırmaları ikiye ayırmam gerekir. Yola gerçekten yürümeye başlamdan önce ve sonrası. Çünkü yolu yürümeden önce boş vakitlerimde Youtube üzerinde yolu yürüyenlerin çokça videolarını izledim. İzlediğim videoları adım adım not not defterine (uygulama) kayıt ettim. Daha sonra yolu planlarken vermem gereken kararları bu videoları çeken insanların yaşadığı deneyim ile karşılaştırdım. Çok katkısı oldu.</p>



<p>Artık takvimi netleştirdikten sonra yani başlangıç olarak <em>3 Nisan 2023 </em>tarihini seçtikten iki hafta önce ciddi bir araştırma yapmaya başladım. Bu araştırmalarda bana likyayolu.org çok yardımcı oldu. Daha sonrada likyayolu.org a deyineceğim. </p>



<p>Araştırmaları maddeleyecek olursam</p>



<ul>
<li>Yanıma alacağım malzemeler</li>



<li>Yürüyüş boyunca takip edeceğim harita</li>



<li>Mola yerleri ve konaklayabileceğim kamp alanları ve pansiyonlar</li>



<li>Olası acil durum/kaza gibi durumlarda iletişime geçeceğim numaralar</li>
</ul>



<p>olarak özetleyebilirim.</p>



<p>Bütün bu bilgilere tek tek deyinmek istemiyorum. Google da hızlıca bu bilgilere ulaşabilirsiniz. Eklemeden yapamayacağım. Bu uzun soluklu ilk yürüyüşüm olduğu için hiç abartıya kaçmadım. İzlediğim videolarda söylendiği gibi mümkün olduğunca minimal ve hafif bir çanta ile yola çıktım. Hatta detaylı bir ilk yardım seti aldığım için kendime biraz kızmıştım ama yürüyüş sonunda bu çanta içinde dokunmadığım malzeme kalmamıştı <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<p>Kesinlikle telefonunuza <a href="https://www.wikiloc.com">Wikiloc</a> uygulamasını indirin ve likyayolu.org üzerinden <a href="http://www.wikiloc.com/wikiloc/view.do?id=22762457">GPS</a> verisini aktarın. Yol boyunca bana çok yardımcı oldu. Adeta bu GPS verisi üzerinde yürüdüğümü söyleyebilirim. Hiç yanılmadım, hiç yanlış bir yola sapmadım (saptarıldım :). Bu yol üzerinde verdiği emekler ve yaptığı paylaşımlar için <a href="https://www.instagram.com/yuruyenkisi/">Altuğ Şenel</a>&#8216; e teşekkür etmek isterim. Kendisinin paylaşımlarından çok yararlandım. Sizide eğer yolu yürüyecekseniz göz atmanızı öneririm. Ayrıca yol sırasında Instagram üzerinden bir kaç soru sordum. Hepsini kendide o tarihlerde yolda olmasına rağmen yanıtladı. </p>



<p>Yolu yürümeden önce kafanızda günlük duraklara bölün ve muhtemel kamp alanları ve pansiyonların numaralarını telefonunuzun not uygulamasına kayıt edin. Yol sırasında internetin çekmediği yerlerde telefon ile arayacak kamp yeri ve pansiyon sahiplerine ulaşmakta kolaylık sağlarsınız.</p>



<p>Ayrıca telefonunuza Google Maps yada Maps.me nin offline haritasını indirin. İnternetin çekmediği yerlerde aradığınızı bulmakta kolaylık sağlarsınız.</p>



<p><strong>Satın Aldığım Ürünler</strong></p>



<p>Öncelikle belirtmem gerek. Sizde yaptığınız araştırmalarda elbet aynı şeyleri okuyacak/duyacaksınız fakat bana göre en önemli 3 şey sırt çantası, baton ve ayakkabı. </p>



<p>Aldığım ürünleri ise</p>



<ul>
<li><a href="https://www.decathlon.com.tr/p/outdoor-sirt-cantasi-50-l-siyah-travel-100/_/R-p-6561?mc=8735043">Outdoor Sırt Çantası &#8211; 50 L &#8211; Siyah &#8211; Travel 100</a></li>



<li><a href="https://www.decathlon.com.tr/p/outdoor-baton-mt100/_/R-p-122861?mc=8807204">Outdoor Baton &#8211; Mavi &#8211; MT100 (2X)</a></li>



<li><a href="https://www.likyayolu.org/2011/11/yanmza-alnacaklar.html">Erkek Outdoor Ayakkabı &#8211; Gri &#8211; MH100</a></li>



<li><a href="https://www.decathlon.com.tr/p/doga-acil-durum-i̇lk-yardim-bakim-kiti/_/R-p-X8400779?mc=8400779">Doğa &#8211; Acil Durum İlk Yardım &amp; Bakım Kiti</a></li>



<li><a href="https://www.decathlon.com.tr/p/otomatik-sisen-trekking-mati-180-x-52-cm-1-kisilik-xl-gri-mt100/_/R-p-124065?mc=8612278&amp;c=GRİ">Otomatik Şişen Trekking Matı &#8211; 180 X 52 cm &#8211; 1 Kişilik &#8211; XL &#8211; Gri &#8211; MT100</a></li>



<li><a href="https://www.decathlon.com.tr/p/2-kisilik-kamp-cadiri-mh50/_/R-p-328015?mc=8602416">2 Kişilik Kamp Çadırı &#8211; MH50 (Bu çadırın 2018 deki hali)</a></li>



<li><a href="https://www.hepsiburada.com/north-pacific-uyku-tulumu-boyut-220-80-50-cm-pm-HBC00002NF081">North Pacific Uyku Tulumu</a></li>
</ul>



<p>olarak sıralayabilirim. Bu ürünler piyasada bulabileceğiniz en fiyat/performans ürünler (bana göre). Fakat dediğim gibi bütçeniz yeterli ise yukarıda saydığım üç ürünün kalitelisine kaçabilirsiniz. Hem yürüyüş kalitenizi artırır hemde bu ürünlerle sorun yaşar mıyım diye düşünmezsiniz. Ben yukarıdaki ürünlerin hepsinden tam randıman aldım.</p>



<p>Bu yazıyı yazmadan önce kendime girişi kısa tutup hızlıca ilk güne atlamayı öğütlemiştim ama bir dakikadan sonra gittikçe uzadığını fark ettim. O yüzden bence başlangıç için bu kadar bilgi yeter <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://batuhankucukali.com/likya-yolu-bati-likya-oludeniz-kas-giris/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">162</post-id>	</item>
		<item>
		<title>Legacy Code Nedir?</title>
		<link>https://batuhankucukali.com/legacy-code-nedir/</link>
					<comments>https://batuhankucukali.com/legacy-code-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Batuhan Küçükali]]></dc:creator>
		<pubDate>Sun, 15 Mar 2020 17:35:51 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[legacy code]]></category>
		<category><![CDATA[unit test]]></category>
		<guid isPermaLink="false">https://batuhankucukali.com/?p=151</guid>

					<description><![CDATA[Genellikle IT sektöründe işe giriş 3 aşamadan oluşur. IK ile görüşürsünüz. Olumlu ise size IT ekibinin daha önce hazırlamış olduğu bir case gönderir. Belirli bir&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Genellikle IT sektöründe işe giriş 3 aşamadan oluşur. IK ile görüşürsünüz. Olumlu ise size IT ekibinin daha önce hazırlamış olduğu bir case gönderir. Belirli bir süre içinde tamamlamanızı ister. Tamamlayıp gönderir ve IT ekibi ile üzerinde konuşursunuz. Başarılı ise tekrar IK ile görüşüp süreci sonlandırırsınız.</p>



<p>Benim bu caselerde dikkatimi çeken şartlardan bir tanesi test kodu yazılması. Şu ana kadar test yazılmasını isteyemeyen hiç bir firma görmedim. Görsem ve bunu benden istemeseler teknik ekip ile görüşürken bunu sorarım.</p>



<p>Bu görüşmelerde bol bol yazdığınız test caseleri ve code covarage üzerinde konuşulur. </p>



<p>Ardından işe başladığınızda projenin kodları size açılır ve o an gelir. Projede hiç test kodu yoktur.</p>



<p>Sebeplerini sorduğunuzda, projenin başka developerlardan miras kalması, business ekibi projenin bir an önce yayına çıkmasını gibi nedenler sunulur.</p>



<p>Peki sürekli duyduğumuz &#8220;Legacy Code&#8221; nedir? Tam olarak nasıl tanımlayabiliriz.</p>



<p>Legacy Code sadece eski kod mu? Yoksa başka birisinin kodu mu? Yoksa iyi olmayan kod mu?</p>



<p>&#8220;Working Effectively with Legacy Code&#8221; kitabında Michael Feathers bu tanımı açık bir şekilde tanımlıyor.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>&#8220;Bana göre Legacy Code basitçe testsiz koddur.&#8221;</p><cite>Micheal Feathers</cite></blockquote>



<p>Bu onun yılların deneyiminden elde ettiği deneyim.</p>



<p>Peki Feathers bunu neden söyledi? Çünkü testsiz kodun ne yaptığının anlaşılması zordur. Eğer projenin unit testleri olsaydı bu test kodları okunarak ne yaptığını anlaşılabilir. Tekrar tekrar çalıştırılarak kod çözülebilirdi.</p>



<p>Ayrıca bu yazının kaynağını oluşturan Nicalos Carlo&#8217; nun legacy code blog yazısında eklediği iki madde daha var.</p>



<p><em>&#8220;Testli kodlarda Legacy Code olabilir&#8221;</em> çünkü kötü yazılmış test kodu tam bir baş belasıdır. Test kodunu okuyarak kodun ne yaptığını anlamazsınız ve kodu refactor etmek zordur.</p>



<p><em>&#8220;Test kodu yok ama değiştirilmesi kolay&#8221;</em> olabilir. Code base küçüktür anlaşılması ve değiştirilmesi kolaydır. Fakat unutmayın yeni özelliklerin ne zaman geleceği ve bu özelliklerinin aciliyet durumunu bilmiyorsunuz.</p>



<p>Bu blog yazısında bahsetmeyeceğim ama bu bahanelerde unit test yazmanıza engel değil.</p>



<p>Bence Legacy Code</p>



<ul><li>Unit testi olmayan veya yetersiz olan</li><li>Unit testinden kodun ne yaptığı anlaşılmayan</li><li>Refactor etmesi zor ve refactor ederken korkulan</li><li>Yeni özellik eklemenin zor olduğu</li><li>Test odaklı yazılmayan</li><li>Teknik borç taşıyan</li><li>Zayıf dökümante edilmiş</li><li>Deploy edilmesi zor</li></ul>



<p>kod olarak tanımlanabilir.</p>



<p>Bu yazı yazılırken aşağıdaki kaynaklar kullanıldı.</p>



<p><a href="https://understandlegacycode.com/blog/what-is-legacy-code-is-it-code-without-tests/">https://understandlegacycode.com/blog/what-is-legacy-code-is-it-code-without-tests/</a><br><a href="https://stackoverflow.com/search?q=legacy+code">https://stackoverflow.com/search?q=legacy+code</a><br><a href="https://refactoring.guru/refactoring/technical-debt">https://refactoring.guru/refactoring/technical-debt</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://batuhankucukali.com/legacy-code-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">151</post-id>	</item>
		<item>
		<title>Amazon Translate 101</title>
		<link>https://batuhankucukali.com/amazon-translate-101/</link>
					<comments>https://batuhankucukali.com/amazon-translate-101/#respond</comments>
		
		<dc:creator><![CDATA[Batuhan Küçükali]]></dc:creator>
		<pubDate>Tue, 19 Jun 2018 17:26:40 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[çeviri]]></category>
		<category><![CDATA[spring boot]]></category>
		<category><![CDATA[translate]]></category>
		<guid isPermaLink="false">https://batuhankucukali.com/?p=90</guid>

					<description><![CDATA[Bu yazı ilk olarak awstalks.com üzerinde yayınlanmıştır. Amazon Translate Nedir? Amazon Translate kendini hızlı, yüksek kaliteli ve uygun fiyat ile çeviri yapan nöral makine servisi olarak tanımlıyor.&#8230;]]></description>
										<content:encoded><![CDATA[<p>Bu yazı ilk olarak <a href="https://www.awstalks.com/t/amazon-translate-101/142">awstalks.com</a> üzerinde yayınlanmıştır.</p>
<p><strong>Amazon Translate Nedir?</strong></p>
<p>Amazon Translate kendini hızlı, yüksek kaliteli ve uygun fiyat ile çeviri yapan nöral makine servisi olarak tanımlıyor.</p>
<p><strong>Neler Yapılabilir?</strong></p>
<p>Amazon Translate ile şirketinizin içeriklerini, toplantı notlarını, teknik raporları, makaleleri ve diğer tüm yazılarınızı farklı dillere çevirebilirsiniz.</p>
<p>Şirketinizin küresel çaptaki müşterilerine istedikleri dilde, email, chat ve diğer platformlar ile destek sağlayabilirsiniz.</p>
<p>Amazonun diğer servisleri Comprehend, Transcribe, Polly, S3, DynamoDB ve AWS Lambda ile birlikte kullanabilirsiniz.</p>
<p>Çevireceğiniz içeriği İngilizce den aşağıdaki 6 dile, gene aynı şekilde aşağıdaki dillerden İngilizceye çeviri yapabilirsiniz.</p>
<p><em>Desteklenen Diller : </em>Arapça, Basitleştirilmiş Çince, Fransızca, Almanca ,Portekizce, İspanyolca</p>
<p><strong>Spring Boot ile Örnek</strong></p>
<p><em>Senaryo: Bir oyun yapacaksınız ve kullanıcılardan İngilizce kelimelerin İspanyolca karşılıklarını bekliyorsunuz. Yapacağımız servis ile kelimeleri Amazon Translate ile İspanyolca karşılığını bulacaksınız.</em><em> </em></p>
<p>Öncelikle <a href="https://console.aws.amazon.com/iam/">https://console.aws.amazon.com/iam/</a> a giriş yaparak translate servisini kullanmak için bir IAM user oluşmamız gerekiyor.</p>
<p>IAM servisi altında Users (Kullanıcı) seçeneğinden aşağıdaki adamları takip ederek ihtiyacımız olan kullanıcıyı oluşturuyoruz.</p>
<p>Bir kullanıcı adı belirliyoruz.</p>
<p><img decoding="async" data-attachment-id="96" data-permalink="https://batuhankucukali.com/amazon-translate-101/iam-3/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-3.png" data-orig-size="1517,528" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="iam-3" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-3-300x104.png" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-3-1024x356.png" class="size-large wp-image-96 aligncenter" src="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-3-1024x356.png" alt="" width="810" height="282" srcset="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-3-1024x356.png 1024w, https://batuhankucukali.com/wp-content/uploads/2018/06/iam-3-300x104.png 300w, https://batuhankucukali.com/wp-content/uploads/2018/06/iam-3-768x267.png 768w, https://batuhankucukali.com/wp-content/uploads/2018/06/iam-3.png 1517w" sizes="(max-width: 810px) 100vw, 810px" /></p>
<p>Gerekli olan rolü veriyoruz.</p>
<p><img decoding="async" data-attachment-id="95" data-permalink="https://batuhankucukali.com/amazon-translate-101/iam-2/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-2.png" data-orig-size="1518,838" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="iam-2" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-2-300x166.png" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-2-1024x565.png" class="size-large wp-image-95 aligncenter" src="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-2-1024x565.png" alt="" width="810" height="447" srcset="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-2-1024x565.png 1024w, https://batuhankucukali.com/wp-content/uploads/2018/06/iam-2-300x166.png 300w, https://batuhankucukali.com/wp-content/uploads/2018/06/iam-2-768x424.png 768w, https://batuhankucukali.com/wp-content/uploads/2018/06/iam-2.png 1518w" sizes="(max-width: 810px) 100vw, 810px" /></p>
<p>Create user diyerek api da kullanıcağımız kullanıcıyı oluşturuyoruz.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="94" data-permalink="https://batuhankucukali.com/amazon-translate-101/iam-1/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-1.png" data-orig-size="1522,582" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="iam-1" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-1-300x115.png" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-1-1024x392.png" class="size-large wp-image-94 aligncenter" src="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-1-1024x392.png" alt="" width="810" height="310" srcset="https://batuhankucukali.com/wp-content/uploads/2018/06/iam-1-1024x392.png 1024w, https://batuhankucukali.com/wp-content/uploads/2018/06/iam-1-300x115.png 300w, https://batuhankucukali.com/wp-content/uploads/2018/06/iam-1-768x294.png 768w, https://batuhankucukali.com/wp-content/uploads/2018/06/iam-1.png 1522w" sizes="(max-width: 810px) 100vw, 810px" /></p>
<p>Elde ettiğimiz apiKey ve secretKey i uygulamada kullanacağız.</p>
<p>build.gradle<br />
<script src="https://gist.github.com/BatuhanKucukali/e68a5063c18fcbea3f04c4d07675252b.js"></script></p>
<p>Bağımlılık (dependencies) olarak uygulamada sadece translate kullanıcağım için maven repositorysinden gerekli <a href="https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-translate">sdk</a> yı bulup projeye ekledim. Uzun uzun getter setter yapmayı sevmediğim için lombok, testler içinde spock framework bağımlılıklarını ekledim.</p>
<p>application.yml<br />
<script src="https://gist.github.com/BatuhanKucukali/de787f2899bb26d03f7b53bc808bfc12.js"></script></p>
<p>Translate servisini kullanmak için gerekli apiKey ve secretKey’ i application.yml (config) dosyasına taşıdım.</p>
<p>AwsConfig.java<br />
<script src="https://gist.github.com/BatuhanKucukali/6ce6f0dbd2fd6781129bd499d05a36a0.js"></script><br />
Gerekli ayarlara uygulama içinden ulaşmak için ayar (config) dosyasını oluşturdum.</p>
<p>TranslateService.java<br />
<script src="https://gist.github.com/BatuhanKucukali/683b7365ed081925473d11dd0e00ea93.js"></script></p>
<p>AmazonTranslateImpl.java<br />
<script src="https://gist.github.com/BatuhanKucukali/8844e8d1b718bfdbcea5f3168de5ef95.js"></script></p>
<p>TranslateServiceTest.groovy<br />
<script src="https://gist.github.com/BatuhanKucukali/8ebb6f125029cec737c2b817f4784c6a.js"></script></p>
<p>İlk test metodunda Hello World kelimesini İspanyolcaya çevirdim. İkinci ve üçüncü test metodunda hatalı durumları test ettim.</p>
<p>Örnek uygulamaya buradan <a href="https://github.com/BatuhanKucukali/aws-translate-example">https://github.com/BatuhanKucukali/aws-translate-example</a> ulaşabilirsiniz.</p>
<p><strong>Ücretlendirme</strong></p>
<p>Amazon Translate Free Tier kapmasında. Her ay 2 milyon karakter ücretsiz. Eğer aşarsanız, aştığınız kadarını ödeyip kullanabiliyorsunuz.</p>
<p>Free Tier dışında 1 milyon karakter $15 olarak ücretlendiriliyor.</p>
<p><em>Örnek:</em></p>
<p>1000 istek, istek başına 1000 karakter = $15<br />
Ortalama bir email 3100 karakter = $0.0465<br />
Standart bir makale 6500 karakter = $0.0975</p>
<p>Diğer ücretlendirme örneklerine bu <a href="https://aws.amazon.com/translate/pricing/">https://aws.amazon.com/translate/pricing/</a> linkden ulaşabilirsiniz.</p>
<p><strong>Servis Limitleri</strong></p>
<p>Her istek başına makisumum 5000 byte.</p>
<p><strong>Ekstra</strong><br />
AWS San Francisco Summit 2018 &#8211; Amazon Translate is Now Generally Available</p>
<p><iframe loading="lazy" class="youtube-player" width="640" height="360" src="https://www.youtube.com/embed/yLKrTzFdPaE?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=tr-TR&#038;autohide=2&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://batuhankucukali.com/amazon-translate-101/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">90</post-id>	</item>
		<item>
		<title>Testcontainers  Tanıtım ve Örnek</title>
		<link>https://batuhankucukali.com/test-containers-tanitim-ve-ornek/</link>
					<comments>https://batuhankucukali.com/test-containers-tanitim-ve-ornek/#respond</comments>
		
		<dc:creator><![CDATA[Batuhan Küçükali]]></dc:creator>
		<pubDate>Fri, 18 May 2018 21:42:34 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[kayit etmek]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[testcontainers]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">https://batuhankucukali.com/?p=83</guid>

					<description><![CDATA[Kısa bir zaman önce keşfettiğim java kütüphanesinden bağsedeceğim. Gerçekten çok yetekli. Yazmak istediğiniz bir çok zorlu test için son derece iyi çözümler üretiyor. Hemen adınıda&#8230;]]></description>
										<content:encoded><![CDATA[<p>Kısa bir zaman önce keşfettiğim java kütüphanesinden bağsedeceğim. Gerçekten çok yetekli. Yazmak istediğiniz bir çok zorlu test için son derece iyi çözümler üretiyor. Hemen adınıda verelim. Adı <a href="https://www.testcontainers.org/">Testcontainers</a>.</p>
<p>Kendisini</p>
<blockquote><p>Testcontainers, JUnit testlerini destekleyen, ortak veritabanları, Selenium web tarayıcıları ya da Docker konteynerinde çalışabilen şeyleri test etmeyi sağlayan bir Java kütüphanesidir.</p></blockquote>
<p>diye tanıtıyor.</p>
<p>Testcontainersı kullanmak için bilgisayarınızda Docker kurulu olması lazım. Testleri yapmak için docker üzerinde image ayağa kaldırıyor ve işini bitirdikden sonra bu imageyi siliyor.</p>
<p><strong>Örnek :</strong></p>
<p><em>Sorun :</em> Selenium test yazdık fakat başlayıp bitmesi bir kaç dakika alıyor. Örnek olarak 10 dakika diyelim. Testi çalıştırdık sonra tüm testlerin tamamlanmasını beklememiz 10 dk. Fakat bu gerçekten çok uzun bir zaman. Yapacağımız örnekte bir test metodu yazacağız ve bu test metodunun video kaydını alacağız. Bu testler çalışırken yerimizden kalkıp bir kahve molası verebiliriz <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><em>Çözüm :</em></p>
<p><script src="https://gist.github.com/BatuhanKucukali/5d66d95f7a1dde159a18fd4dc0819570.js"></script><br />
Projeye bağımlılık olarak</p>
<ul>
<li>Selenium kütüphanesi -&gt; Tarayıcı otomasyon testleri için</li>
<li>Slf4j kütüphanesi -&gt; Loglar için</li>
<li>Junit kütüphanesi -&gt; Testler için</li>
<li>Testcontainers selenium -&gt; Docker image üzerinde testleri çalıştırmak için</li>
</ul>
<p>ekledim.</p>
<p><script src="https://gist.github.com/BatuhanKucukali/c924104c83759017c268cc208424a998.js"></script></p>
<p>@Rule anotasyonu ile BrowserWebDriverContainer web driver olarak tanımlıyoruz. Tarayıcı olarak Chrome. Recording modu sadece hata olunca video kaydet ve dizini target olsun diye ayarlıyoruz. Testimiz bu kuralı kullanacak. Siz isterseniz recording modu değiştirerek tüm testleri kayıt edebilirsiniz.</p>
<p>Test metodumuz çok basit.</p>
<p>Google&#8217; ı açıp batuhankucukali.com u arıyor ve sonuç sayfasındaki title da selenium geçiyormu diye kontrol ediyor. Test başarısız oluyor ve bu başarısız testi target klasörüne kayıt ediyor.</p>
<p><strong>Testcontainer Avantajları :</strong></p>
<ul>
<li>Test yaparken kullandığımız embeded veritabanı örnek vermek gerekirse H2 postgres&#8217;in desteklediği tüm veri tiplerini desteklemiyor. Bu yüzden test yaparken belli şeyleri göz ardı edebiliyoruz. Testcontainers kullandığınız veritabanının tüm özelliklerini kullanıp test edebilirsiniz.</li>
<li>Selenium ile yazdığınız testlerde geliştirme ortamınıza tarayıcıları ve bunları kullanmak için gerekli driverları kurmak zorunda değilsiniz. Ayağa kalkan image üzerinde hazır bulunuyor.</li>
<li>Uzun testlerde hataları kayıt altına alabiliyoruz.</li>
</ul>
<p>Diğer tüm avantajları <a href="https://www.testcontainers.org/">buradan</a> keşfedebilirsiniz.</p>
<p>Yukarıdaki örneğe buradan <a href="https://github.com/BatuhanKucukali/selenium-vnc-testcontainers-example">https://github.com/BatuhanKucukali/selenium-vnc-testcontainers-example</a> ulaşabilirsiniz.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://batuhankucukali.com/test-containers-tanitim-ve-ornek/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">83</post-id>	</item>
		<item>
		<title>Amazon Rekognition ile Tanışalım</title>
		<link>https://batuhankucukali.com/amazon-rekognition-ile-tanisalim/</link>
					<comments>https://batuhankucukali.com/amazon-rekognition-ile-tanisalim/#respond</comments>
		
		<dc:creator><![CDATA[Batuhan Küçükali]]></dc:creator>
		<pubDate>Thu, 19 Apr 2018 19:26:41 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[algılama]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[detect]]></category>
		<category><![CDATA[face]]></category>
		<category><![CDATA[obje]]></category>
		<category><![CDATA[rekognition]]></category>
		<category><![CDATA[resim]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[ünlü]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[yazı]]></category>
		<guid isPermaLink="false">https://batuhankucukali.com/?p=25</guid>

					<description><![CDATA[Bu yazı ilk olarak awstalks.com üzerinde yayınlanmıştır. Uzun zamandır bir proje geliştirmek istiyordum ve bir ay önce bu fırsatı buldum. Geliştirdiğim proje üzerinde resim üzerindeki yazıları&#8230;]]></description>
										<content:encoded><![CDATA[<p>Bu yazı ilk olarak <a href="https://www.awstalks.com/t/amazon-rekognition-ile-tanisalim/109">awstalks.com</a> üzerinde yayınlanmıştır.</p>
<p>Uzun zamandır bir proje geliştirmek istiyordum ve bir ay önce bu fırsatı buldum. Geliştirdiğim proje üzerinde resim üzerindeki yazıları text haline getirmem gerekiyordu. Kısa bir araştırma ile AWS nin Rekognition servisi buldum.</p>
<p><span id="more-25"></span></p>
<p><strong>Amazon Rekognition Nedir ?</strong></p>
<p>Amazon Rekognition servisi ile kolayca resim ve video analizi yapabilirsiniz. Servis ile resim ve videolardaki objeleri, yazıları, insanları, aktiviteleri ve sahneleri belirleyebilirsiniz. Ayrıca hassas yüz analizi ve karşılaştırması yapabilir bunları doğrulayabilir ve kataloglayabilirsiniz.</p>
<p><strong>Neler Yapılabilir ?</strong></p>
<p>Örnek vermek gerekirse uygulamanıza kullanıcılar tarafından resim yüklendiği zaman bu resimde bulunan objeleri bulabilir, yazıları algılayabilir, mevcut yüzler arasında arama yapabilir, resimdeki ünlüyü (celebrity) bulabilirsiniz.</p>
<p>Eğer içinde video olan bir uygulama geliştiriyorsanız videoda insanları algılayabilir nerede bulunduklarını bulabilirsiniz. Ayrıca daha önce kayıt ettiğiniz insan yüzleri ile stream üzerindeki videoda eşleştirebilirsiniz.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="31" data-permalink="https://batuhankucukali.com/amazon-rekognition-ile-tanisalim/text_in_image_on_website_napkin_words/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/03/text_in_image_on_website_napkin_words.png" data-orig-size="1224,660" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="text_in_image_on_website_napkin_words" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/03/text_in_image_on_website_napkin_words-300x162.png" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/03/text_in_image_on_website_napkin_words-1024x552.png" class="size-large wp-image-31 aligncenter" src="https://batuhankucukali.com/wp-content/uploads/2018/03/text_in_image_on_website_napkin_words-1024x552.png" alt="" width="810" height="437" srcset="https://batuhankucukali.com/wp-content/uploads/2018/03/text_in_image_on_website_napkin_words-1024x552.png 1024w, https://batuhankucukali.com/wp-content/uploads/2018/03/text_in_image_on_website_napkin_words-300x162.png 300w, https://batuhankucukali.com/wp-content/uploads/2018/03/text_in_image_on_website_napkin_words-768x414.png 768w, https://batuhankucukali.com/wp-content/uploads/2018/03/text_in_image_on_website_napkin_words.png 1224w" sizes="(max-width: 810px) 100vw, 810px" /></p>
<p><strong>Spring Boot Framework ile Örnek</strong></p>
<p><strong><em>Senaryo :</em> </strong>Bir viral reklam kampanyası düzenlediniz ve kullanıcılardan heryerde bulunan mağazanızın önüne gidip tabelanız gözükecek şekilde resim çekip sisteme yüklemesini istediniz. Tek tek kontrol etmek başlı başına büyük bir sorun olabilir. Bunun yerine kullanıcılar resmi yüklediği zaman o resimde mağazanızın adı geçmiş mi kolaylıkla bulabilirsiniz.</p>
<p>Öncelikle <a href="https://console.aws.amazon.com/iam/">https://console.aws.amazon.com/iam/</a> a giriş yaparak rekognition servisini kullanmak için bir IAM user oluşmamız gerekiyor.</p>
<p>IAM servisi altında Users (Kullanıcı) seçeneğinden aşağıdaki adamları takip ederek ihtiyacımız olan kullanıcıyı oluşturuyoruz.</p>
<p>Bir kullanıcı adı belirliyoruz.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="44" data-permalink="https://batuhankucukali.com/amazon-rekognition-ile-tanisalim/rekognition-user1/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user1.png" data-orig-size="2374,1056" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="rekognition-user1" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user1-300x133.png" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user1-1024x455.png" class="alignnone size-large wp-image-44" src="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user1-1024x455.png" alt="" width="810" height="360" srcset="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user1-1024x455.png 1024w, https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user1-300x133.png 300w, https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user1-768x342.png 768w" sizes="(max-width: 810px) 100vw, 810px" /></p>
<p>Gerekli olan rolü veriyoruz.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="45" data-permalink="https://batuhankucukali.com/amazon-rekognition-ile-tanisalim/rekognition-user2/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user2.png" data-orig-size="2360,920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="rekognition-user2" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user2-300x117.png" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user2-1024x399.png" class="alignnone size-large wp-image-45" src="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user2-1024x399.png" alt="" width="810" height="316" srcset="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user2-1024x399.png 1024w, https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user2-300x117.png 300w, https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user2-768x299.png 768w" sizes="(max-width: 810px) 100vw, 810px" /></p>
<p>Create user diyerek api da kullanıcağımız kullanıcıyı oluşturuyoruz.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="46" data-permalink="https://batuhankucukali.com/amazon-rekognition-ile-tanisalim/rekognition-user3/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user3.png" data-orig-size="2362,960" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="rekognition-user3" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user3-300x122.png" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user3-1024x416.png" class="alignnone size-large wp-image-46" src="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user3-1024x416.png" alt="" width="810" height="329" srcset="https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user3-1024x416.png 1024w, https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user3-300x122.png 300w, https://batuhankucukali.com/wp-content/uploads/2018/04/rekognition-user3-768x312.png 768w" sizes="(max-width: 810px) 100vw, 810px" /></p>
<p>Elde ettiğimiz apiKey ve secretKey i uygulamada kullanacağız.</p>
<p>build.gradle</p>
<p><script src="https://gist.github.com/BatuhanKucukali/9ff5afaeaa909207e006f4c6dbba932a.js"><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start">﻿</span></script></p>
<p>Bağımlılık (dependencies) olarak uygulamada sadece rekognition kullanıcağım için maven repositorysinden gerekli <a href="https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-rekognition">sdk</a> yı bulup projeye ekledim. Uzun uzun getter setter yapmayı sevmediğim için lombok, testler içinde spock framework bağımlılıklarını ekledim.</p>
<p>application.yml</p>
<p><script src="https://gist.github.com/BatuhanKucukali/de787f2899bb26d03f7b53bc808bfc12.js"></script></p>
<p>Rekognition servisini kullanmak için gerekli apiKey ve secretKey&#8217; i application.yml (config) dosyasına taşıdım.</p>
<p>AwsConfig.java<br />
<script src="https://gist.github.com/BatuhanKucukali/6ce6f0dbd2fd6781129bd499d05a36a0.js"></script></p>
<p>Gerekli ayarlara uygulama içinden ulaşmak için ayar (config) dosyasını oluşturdum.</p>
<p>ImageRecognitionService.java<br />
<script src="https://gist.github.com/BatuhanKucukali/c7d2a19b3c8bfa1f95d24f8c26f4d335.js"></script></p>
<p>AmazonRekognitionServiceImpl.java<br />
<script src="https://gist.github.com/BatuhanKucukali/0e1efbbfde2334a5ab91e7cb1acdea0f.js"></script></p>
<p>ImageRecognitionServiceServiceTest.groovy<br />
<script src="https://gist.github.com/BatuhanKucukali/79e3be25c8b5c7de0ba9393699527e9c.js"></script></p>
<p><img loading="lazy" decoding="async" data-attachment-id="53" data-permalink="https://batuhankucukali.com/amazon-rekognition-ile-tanisalim/amazon-go-shelf/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-shelf.png" data-orig-size="1710,770" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="amazon-go-shelf" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-shelf-300x135.png" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-shelf-1024x461.png" class="alignnone size-medium wp-image-53" src="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-shelf-300x135.png" alt="" width="300" height="135" srcset="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-shelf-300x135.png 300w, https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-shelf-768x346.png 768w, https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-shelf-1024x461.png 1024w, https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-shelf.png 1710w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>Yukarıdaki ilk test metodundaki resimde herhangi bir kelime olmadığını için servisden null değeri alıyoruz. Beklediğimiz gibi sonuçlandırıyoruz.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="54" data-permalink="https://batuhankucukali.com/amazon-rekognition-ile-tanisalim/amazon-go-logo/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-logo.jpg" data-orig-size="2560,1440" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="amazon-go-logo" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-logo-300x169.jpg" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-logo-1024x576.jpg" class="alignnone size-medium wp-image-54" src="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-logo-300x169.jpg" alt="" width="300" height="169" srcset="https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-logo-300x169.jpg 300w, https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-logo-768x432.jpg 768w, https://batuhankucukali.com/wp-content/uploads/2018/04/amazon-go-logo-1024x576.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>İkinci test metodunda ise resimde amazon kelimesi geçmiş mi diye kontrol ediyoruz ve testi başarıyla sonuçlandırıyoruz.</p>
<p>Örnek uygulamaya buradan <a href="https://github.com/AWSTalks/aws-rekognition-example">https://github.com/AWSTalks/aws-rekognition-example</a> ulaşabilirsiniz.</p>
<p><strong>Ücretlendirme</strong></p>
<p>Rekognition servisi Amazon Free Tier&#8217; ın bir parçası. Ücretsiz olarak ayda 1000 dakika video, 5000 resim analiz edebilir, her ay 1000 yüz meta datası saklayabilirsiniz.</p>
<p><strong>Genel Fiyatlandırma :</strong></p>
<p><em>Not:</em> Fiyatlandırmalar bölgeye (region) göre değişiyor. Tüm fiyatlandırmaları US East üzerinden hesaplayıp anlatacağım.</p>
<p><strong>Video Api:</strong></p>
<p><em>Örnek 1</em></p>
<p>Uygulamanın 100 000 dakika arşivlenmiş videoda yüz tanıma yaptığını (Face Detection API) ve 10 000 dakika arşivlenmiş video üzerinde kişi takibi (PersonTracking API) yaptığını varsayalım.</p>
<p>Toplamda 110 000 dakika arşivlenmiş video analizi.</p>
<p>Dakika başına arşivlenmiş video analizi $0.10.</p>
<p>Toplam tutar: 110 000 x $0.10 = $11 000</p>
<p><em>Örnek 2</em></p>
<p>Uygulamanın 500 000 dakika arşivlenmiş video üzerinde etiket algılama (Label Detection API) yaptığını ve 600 000 dakika canlı akış api (Live Stream API) sini kullandığını varsayalım.</p>
<p>500 000 dakika arşivlenmiş video analizi.</p>
<p>Dakika başına arşivlenmiş video analizi $0.10.</p>
<p>600 000 canlı akış api (Live Stream API) kullanımı.</p>
<p>Dakika başına canlı akış api $0.12.</p>
<p>Toplamda  $0.10 * 500,000 + $0.12 * 600,000 = $122,000</p>
<p><strong>Resim Api:</strong></p>
<p>1 milyon resim için etiket tanıma apinı kullanırsak resim başına $0.001 ödeyeceğiz toplamda ödeyeceğimiz tutar $1000. Resim başına ödediğimiz tutar aylık olarak kullanımımıza göre düşebiliyor.</p>
<p>Aylık olarak</p>
<p>0-1 milyon resim arası her api kullanımı için <i>$0.001.</i></p>
<p>1-10 milyon resim arası her api kullanımı için <i>$0.0008.</i></p>
<p><i>10-100 milyon resim arası her api kullanımı için $0.0006.</i></p>
<p><i>100 milyon ve üzeri için $0.0004 ödeyeceğiz.</i></p>
<p>Daha detaylı ücretlendirme örnekleri için <a href="https://aws.amazon.com/rekognition/pricing/">buraya</a> göz atabilirsiniz.</p>
<p><strong>Servis Limitleri Nelerdir ?</strong></p>
<ul>
<li>Amazon S3 de barındırarak maksimum 15 mb lık bir obje üzerinde işlem yapabilirsiniz.</li>
<li>Minumum 80&#215;80 pixel çözünürlük ile işlem yapabilirsiniz.</li>
<li>Sadece png ve jpg uzantılı resimlere destek veriliyor.</li>
<li>Algılanacak bir yüz 1920&#215;1080 pixel resimde 40&#215;40 pixel den daha küçük olmamalı. 1920&#215;1080 pixel den daha büyük bir resimde orantılı olarak büyük olmalı.</li>
<li>Bir api requestinde bir resmin boyutu 5 mb dan daha büyük olamaz.</li>
<li>Video analizinde daha önce kayıt edilmiş bir videoda işlem yapmak için videonun boyutunun maksimum 8 gb olması gereklidir.</li>
</ul>
<p>AWS de tüm servisler sürekli geliştiği için bu limitler sıklıkla güncellenebilir. <a href="https://docs.aws.amazon.com/rekognition/latest/dg/limits.html">Buradan</a> diğer limitlere bakabilir güncel limitleri kontrol edebilirsiniz.</p>
<p><strong>Ekstra :</strong><br />
AWS re:Invent 2017 de Amazon Rekognition Tanıtımı</p>
<p><iframe loading="lazy" class="youtube-player" width="640" height="360" src="https://www.youtube.com/embed/D1gj_9aKRJU?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=tr-TR&#038;autohide=2&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></p>
<p>Dökümantasyon Kaynağı : <a href="https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html">https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://batuhankucukali.com/amazon-rekognition-ile-tanisalim/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">25</post-id>	</item>
		<item>
		<title>Merhaba dünya!</title>
		<link>https://batuhankucukali.com/merhaba-dunya/</link>
					<comments>https://batuhankucukali.com/merhaba-dunya/#respond</comments>
		
		<dc:creator><![CDATA[Batuhan Küçükali]]></dc:creator>
		<pubDate>Sat, 24 Mar 2018 19:30:35 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[dünya]]></category>
		<category><![CDATA[hello]]></category>
		<category><![CDATA[merhaba]]></category>
		<category><![CDATA[world]]></category>
		<guid isPermaLink="false">https://batuhankucukali.com/?p=1</guid>

					<description><![CDATA[Uzun süredir ara verdiğim bloglamaya tekrar başlamaya karar verdim. Bu blogda neler olacak? biraz Java System.out.println("Hello World"); biraz Php echo "Hello World"; ve biraz da&#8230;]]></description>
										<content:encoded><![CDATA[<p>Uzun süredir ara verdiğim bloglamaya tekrar başlamaya karar verdim.</p>
<p>Bu blogda neler olacak?</p>
<p><span id="more-1"></span></p>
<p>biraz Java</p>
<pre>System.out.println("Hello World");
</pre>
<p>biraz Php</p>
<pre>echo "Hello World";
</pre>
<p>ve biraz da tarih ve doğa.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="17" data-permalink="https://batuhankucukali.com/merhaba-dunya/img_0332/" data-orig-file="https://batuhankucukali.com/wp-content/uploads/2018/03/IMG_0332.jpg" data-orig-size="4032,3024" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone SE&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1503762945&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;25&quot;,&quot;shutter_speed&quot;:&quot;0.00113122171946&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_0332" data-image-description="" data-image-caption="" data-medium-file="https://batuhankucukali.com/wp-content/uploads/2018/03/IMG_0332-300x225.jpg" data-large-file="https://batuhankucukali.com/wp-content/uploads/2018/03/IMG_0332-1024x768.jpg" class="alignnone size-large wp-image-17" src="https://batuhankucukali.com/wp-content/uploads/2018/03/IMG_0332-1024x768.jpg" alt="" width="810" height="608" srcset="https://batuhankucukali.com/wp-content/uploads/2018/03/IMG_0332-1024x768.jpg 1024w, https://batuhankucukali.com/wp-content/uploads/2018/03/IMG_0332-300x225.jpg 300w, https://batuhankucukali.com/wp-content/uploads/2018/03/IMG_0332-768x576.jpg 768w" sizes="(max-width: 810px) 100vw, 810px" /></p>
<p>Umarım ilginizi çeker <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Merhaba Dünya.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://batuhankucukali.com/merhaba-dunya/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1</post-id>	</item>
	</channel>
</rss>
