<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-169732362629921367</id><updated>2026-02-26T03:28:26.469-08:00</updated><category term="Python"/><category term="Tasarım"/><category term="HTML"/><category term="Linux"/><category term="Sunucu"/><category term="Tkinter"/><category term="JavaScript"/><category term="Windows"/><category term="Jquery"/><category term="NodeJS"/><category term="İşletim Sistemi"/><category term="Bootstrap"/><category term="Php"/><category term="React"/><category term="Test"/><category term="Algoritma"/><category term="Arduino"/><category term="C++"/><category term="Cpp"/><category term="Editör"/><category term="Hesap Makinesi"/><category term="ISO"/><category term="Java"/><category term="Kriptoloji"/><category term="Laravel"/><category term="MacOS"/><category term="MongoDB"/><category term="MySQL"/><category term="Next.js"/><category term="SSH"/><category term="Selenium"/><category term="Veritabanı"/><category term="Vim"/><category term="Web Sitesi"/><title type='text'>Enes Kasapoğlu</title><subtitle type='html'>Görünmeyen Kod Kılavuz İster</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-2318785374505425123</id><published>2024-04-11T18:43:00.000-07:00</published><updated>2024-04-11T18:43:01.875-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Laravel"/><category scheme="http://www.blogger.com/atom/ns#" term="Php"/><title type='text'>Laravel 11 ile Gelen Yeni Özellikler</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_pMK3LSp70lbZw-rmyP2cyfBgklZ72jRHN7AaWgf76YOHLkT-4QGPiA9ALnP_dVn-WaV5Cg_95Jqns9kDa4fpgULjoeQ24SyjgcIfvygvfvwGWWFxzrfDFSDLZIujzlYTCne6q5fBiVOZuv2KkT-RDIv5Sl0kU0eTPG_odBca20FS0nObfjG0kCGQNXcx/s844/1%20KKU8hCxeiqQ5GruSdV-HoA.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;624&quot; data-original-width=&quot;844&quot; height=&quot;237&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_pMK3LSp70lbZw-rmyP2cyfBgklZ72jRHN7AaWgf76YOHLkT-4QGPiA9ALnP_dVn-WaV5Cg_95Jqns9kDa4fpgULjoeQ24SyjgcIfvygvfvwGWWFxzrfDFSDLZIujzlYTCne6q5fBiVOZuv2KkT-RDIv5Sl0kU0eTPG_odBca20FS0nObfjG0kCGQNXcx/s320/1%20KKU8hCxeiqQ5GruSdV-HoA.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot;&gt;Laracon US 2023 etkinliğinde tanıtılan Laravel&#39;in 11. sürümü; 12 Mart 2024 itibari ile artık kullanılabilir hale geldi. Bu sürümde bazı köklü değişiklikler ve geliştirmeler mevcut. Kullanıcılar için sadeleştirmelere gidilen Laravel&#39;in 11. Sürümü bakalım nasıl değişikliklere imza atmış?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;PHP Sürümü&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;Laravel 11 ile birlikte artık kullanabileceğiniz minimum PHP Sürümü &lt;u&gt;8.2&#39;ye &lt;/u&gt;getirildi. Yani 8.1 dahil olmak üzere daha aşağı sürümlerde Laravel 11 kullanılamıyor.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;Laravel üzerinde yeniyseniz ve yayına aldığınız projeleriniz mevcut ise korkmayın çünkü mevcuttaki projeleriniz yayında olmaya devam edecek ve Laravel&#39;in önceki sürümlerinde kullandığınız mimari ile çalışmaya devam edecektir.&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;Tabii ki iyi bir hamle oldu çünkü; PHP Güncellemeleri ile beraber artık Laravel&#39;i de güncel bir şekilde kullanabileceksiniz ve bu sayede geliştirmeler ve düzeltmeler ile birlikte daha kararlı bir PHP yapısı kullanmış olacaksınız.&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;Middleware&amp;nbsp;&lt;/h2&gt;&lt;h2 class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;Artık middleware dosyalarınızı &#39;/bootstrap/app.php&#39; dosyasında yöneteceksiniz. Bu sayede artık daha kolay bir şekilde middleware&#39;larınızı ekleme ve çıkarma işlemini gerçekleştirebileceksiniz.&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10fd&quot; style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 class=&quot;nm nn gt be no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8250&quot; style=&quot;text-align: left;&quot;&gt;Migration Dosyalarında Sadeleşme&lt;/h2&gt;&lt;h2 class=&quot;nm nn gt be no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8250&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg ok mi mj mk ol mm mn mo om mq mr ms on mu mv mw oo my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;26f6&quot;&gt;Yeni
 bir Laravel uygulaması başlatıldığında, 2014 ve 2019 tarihli bazı 
varsayılan migration dosyalarıyla geliyordu. Fakat artık bu dosyalar; tarihleri
 kaldırılmış ve sadece 3 dosya olarak geliyor.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg ok mi mj mk ol mm mn mo om mq mr ms on mu mv mw oo my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;26f6&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8FT0b8KpaPVcDie1GZlCpLGMmzIo6V2hyJ5dKueVxLuai-4CEA_r9kq03KX4ypfJ_rAuBPWLCNmcd5of_OwFeNRCttunoKu6yCZZtqH1VVoQMAZCLxyJNsGNHhd2TT4H-1IvRdRMiQHCkDVcMz5Z7l-K67er1T3gkFk3LH4xGYJ26wQnKGGzEQj19AUAr/s1658/sqlitew.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;884&quot; data-original-width=&quot;1658&quot; height=&quot;171&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8FT0b8KpaPVcDie1GZlCpLGMmzIo6V2hyJ5dKueVxLuai-4CEA_r9kq03KX4ypfJ_rAuBPWLCNmcd5of_OwFeNRCttunoKu6yCZZtqH1VVoQMAZCLxyJNsGNHhd2TT4H-1IvRdRMiQHCkDVcMz5Z7l-K67er1T3gkFk3LH4xGYJ26wQnKGGzEQj19AUAr/s320/sqlitew.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Varsayılan veritabanı&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Artık Laravel projesi oluşturduğunuz zaman varsayılan veritabanı aracı olarak &lt;b&gt;Mysql&lt;/b&gt; değil &lt;b&gt;Sqlite&lt;/b&gt;
 geliyor. Benim dikkatimi çeken basit bir nokta ise artık .env 
dosyasının içerisinde veritabanı yapılandırma ayarları yorum satırına 
alınmış şekilde geliyor. Bana halen daha çok mantıklı bir değişiklik 
olarak gelmedi fakat vardır herhalde bir bildikleri :)&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 class=&quot;pw-post-body-paragraph md me gt mf b mg ok mi mj mk ol mm mn mo om mq mr ms on mu mv mw oo my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;26f6&quot; style=&quot;text-align: left;&quot;&gt;Model Tip Dönüşümleri&lt;/h2&gt;&lt;h2 class=&quot;pw-post-body-paragraph md me gt mf b mg ok mi mj mk ol mm mn mo om mq mr ms on mu mv mw oo my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;26f6&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg ok mi mj mk ol mm mn mo om mq mr ms on mu mv mw oo my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;26f6&quot; style=&quot;text-align: left;&quot;&gt;Model dosyalarında tip dönüşümleri artık bir özellik yerine bir method 
olarak tanımlanıyor. Bir method olarak tanımlandığında, tip 
dönüşümlerinden doğrudan diğer metodları çağırabiliriz. &lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph md me gt mf b mg ok mi mj mk ol mm mn mo om mq mr ms on mu mv mw oo my mz na gm bj&quot; data-selectable-paragraph=&quot;&quot; id=&quot;26f6&quot; style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 class=&quot;ember-view reader-content-blocks__paragraph&quot; id=&quot;ember51&quot; style=&quot;text-align: left;&quot;&gt;
      Route Yapısı&amp;nbsp;&lt;/h2&gt;&lt;h2 class=&quot;ember-view reader-content-blocks__paragraph&quot; id=&quot;ember51&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;

  




          
        
    &lt;p class=&quot;ember-view reader-content-blocks__paragraph&quot; id=&quot;ember52&quot;&gt;Route dizininde eskisi gibi api ve channels dosyaları bulunmuyor. Sadece console ve web dosyaları bulunuyor. Laravel 11&#39;de Route yapısında sadeleşmeye gidilmiş. Artık api ve broadcast yapılarını kullanacaksak yeni bir komut olarak eklenen artisan komutlarını kullanacağız.&amp;nbsp;&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;php artisan install:api&lt;/pre&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;pre&gt;php artisan install:broadcast&amp;nbsp;&amp;nbsp;&lt;/pre&gt;&lt;/blockquote&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Artisan Komutları&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Hazır konusu gelmişken yeni artisan komutlarımıza da bakalım. Laravel 11 sürümünde şimdiye kadar inceleyebildiğim 4 yeni komut eklendi. Bu komutlar:&amp;nbsp;&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;php artisan make:class 
php artisan make:enum 
php artisan make:interface 
php artisan make:trait &lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Bu komutların ne işe yaradığına değinecek olursak, sırasıyla;&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;make:class&lt;/h4&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Bu komut App dizininde özelleştirilebilir bir sınıf oluşturmaya yarıyor.&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;make:enum&lt;/h4&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Bu komut App dizininde yeni bir enum dosyası oluşturmaya yarar.&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;make: interface ve make:trait&lt;/h4&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Bu komutlar da App dizininde yeni bir interface ve trait sınıfları oluşturmaya yarıyor.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;App klasörü&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Artık /app klasörü içerisinde &lt;b&gt;providers&lt;/b&gt; klasörü ve providers dosyaları tanımlı olarak gelmiyor. Sadece Controller dosyaları bulunuyor. Burada da bir sadeleşmeye gidilmiş ve providers oluşturulacağı zaman artisan üzerinden oluşturuluyor.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH3YN9NwmJVUcpPv8ySDRo4bvEKDEsly0GGJeT81GGEJxW-VKXEgqBUvmwRIXKFVVy7FmCcU9a07rtsDU4phpziatbkQqNTjugiPjTZPvFBKb8qVZfWC2nAWOwlP3TQ2C89RcNdc-GCEkpt-ab7GtmZBeZ_kc0CpsGa7Ugl3LvSm5L4uxqeytRyGGZ0PHj/s970/Ok0fcXoyE0LXR7ndvhsopXD9Nxz6J6OJXmUqD94A.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;608&quot; data-original-width=&quot;970&quot; height=&quot;201&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH3YN9NwmJVUcpPv8ySDRo4bvEKDEsly0GGJeT81GGEJxW-VKXEgqBUvmwRIXKFVVy7FmCcU9a07rtsDU4phpziatbkQqNTjugiPjTZPvFBKb8qVZfWC2nAWOwlP3TQ2C89RcNdc-GCEkpt-ab7GtmZBeZ_kc0CpsGa7Ugl3LvSm5L4uxqeytRyGGZ0PHj/s320/Ok0fcXoyE0LXR7ndvhsopXD9Nxz6J6OJXmUqD94A.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Laravel 11. sürümünde kullanıcılara daha esnek bir yapı sunmuş ve işleri kolaylaştırmış. Benim gibi Laravel projeleri ile boğuşan birisiyseniz zamandan ve enerjiden tasarruf etmemizi sağlamış. Tabii ki her yeni sürümde olduğu gibi alışmak biraz zaman alacaktır fakat şimdiden işlerin daha da kolaylaştığını söyleyebilirim.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Kaynaklar&lt;/h4&gt;&lt;div style=&quot;text-align: left;&quot;&gt;https://blog.laravel.com/laravel-11-now-available&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;https://www.linkedin.com/pulse/laravel-11-ile-birlikte-gelen-yenilikler-osman-ceyhan-7vqyf/&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;https://kadirerman.medium.com/laravel-11in-one-cikan-ozellikleri-77cab37519dc&lt;br /&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/2318785374505425123/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2024/04/laravel-11-ile-gelen-yeni-ozellikler.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/2318785374505425123'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/2318785374505425123'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2024/04/laravel-11-ile-gelen-yeni-ozellikler.html' title='Laravel 11 ile Gelen Yeni Özellikler'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_pMK3LSp70lbZw-rmyP2cyfBgklZ72jRHN7AaWgf76YOHLkT-4QGPiA9ALnP_dVn-WaV5Cg_95Jqns9kDa4fpgULjoeQ24SyjgcIfvygvfvwGWWFxzrfDFSDLZIujzlYTCne6q5fBiVOZuv2KkT-RDIv5Sl0kU0eTPG_odBca20FS0nObfjG0kCGQNXcx/s72-c/1%20KKU8hCxeiqQ5GruSdV-HoA.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-1579292305985896494</id><published>2020-10-10T18:23:00.241-07:00</published><updated>2020-10-11T13:35:02.877-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Sunucu"/><title type='text'>Flask Nedir?</title><content type='html'>&lt;style&gt;
  .highlighter {
  	background:#21252e;
    color:#fff;
    border-radius:5px;
    padding:6px;
  }
  .sp1cst {
  	color:#488bff;
  }
  .sp2cst {
  	color:#00FF8E;
  }
  .sp3cst {
  	color:#98C379;
  }
  .btn-Custom {
  	width:80px;
    height:40px;
    background:#21252e;
    color:#fff;
    border:none;
  }
&lt;/style&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIsw9eWq1gkhyphenhyphenRlrYv0901YgJO-ENrzIQacmvAu02e-D8S23hYJ_L1hNN6rRRmeHRPvjnzEAED2PT4GhE3ST8s8Hspd8aoX418Psflk3rWCVHY9QIXbNBKW5szoKGSEugZVx7LtgbU0UeY/s1024/flask3.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;768&quot; data-original-width=&quot;1024&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIsw9eWq1gkhyphenhyphenRlrYv0901YgJO-ENrzIQacmvAu02e-D8S23hYJ_L1hNN6rRRmeHRPvjnzEAED2PT4GhE3ST8s8Hspd8aoX418Psflk3rWCVHY9QIXbNBKW5szoKGSEugZVx7LtgbU0UeY/s320/flask3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Flask, Python ile yazılmış bir Web Framework&#39;üdür. Bu Framework ile Python üzerinden web uygulamaları geliştirebilirsiniz. Flask; kolay ve son derece esnek bir Framework&#39;dür.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Bildiğiniz gibi Python dili her alanda kullanılabilen son derece geniş alana yayılan bir dildir. Yazılıma dair her türlü alanda Python kullanılabilir. Flask da Python üzerinden web programlama yapabilmek için DJango gibi bir web kütüphanesidir.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Kurulum&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Flask&#39;ın kurulum işlemi işletim sistemlerine göre farklılık göstermez ve pip(python install package) ile kurulur. Flask&#39;ı kurmak için aşağıda ki komutu Linux için uçbirime veya Windows için cmd&#39;ye yazmamız gerekmektedir.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;highlighter&quot;&gt;$ sudo pip/pip3 install flask&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Kısaca bir indirmeden sonra Flask&#39;ı kullanabiliriz.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Kısaca Kullanım&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Flask&#39;ı tam anlamı ile kavrayabilmeniz için bu yazı yeterli olmayacaktır. Tam anlamı ile kavrayabilmek için daha çok pratik yapmanız gerekmekte. Şimdi ilk önce proje dizini oluşturalım ve içine &#39;&lt;b&gt;app.py&lt;/b&gt;&#39; adında bir Python dosyası oluşturalım.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;highlighter&quot;&gt;$ sudo touch app.py&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Daha sonra ise herhangi bir IDE veya kod editörü aracılığıyla dosyamızı açalım.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Python dosyamıza ilk önce Flask kütüphanesini dahil ediyoruz.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;highlighter&quot;&gt;

  &lt;span class=&quot;sp1cst&quot;&gt;from&lt;/span&gt; flask &lt;span class=&quot;sp1cst&quot;&gt;import &lt;/span&gt; Flask 

&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Daha sonra ise Flask modülümüzü çağırıyoruz.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;highlighter&quot;&gt;app = Flask(&lt;span class=&quot;sp1cst&quot;&gt;__name__&lt;/span&gt;)&lt;/div&gt; &lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Burada ki &#39;__name__&#39; parametresi; projemizin bir terminal aracılığı ile mi yoksa başka bir yerden mi çalıştırıldığını kontrol etmemizi sağlar. Daha sonra ise &lt;b&gt;url&lt;/b&gt; isteklerine göre işlem yapıyoruz.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;
  &lt;/p&gt;&lt;div class=&quot;highlighter&quot;&gt;

  &lt;span class=&quot;sp2cst&quot;&gt;@app.route(&lt;span class=&quot;sp3cst&quot;&gt;&quot;/&quot;&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;
    &lt;span class=&quot;sp1cst&quot;&gt;def&lt;/span&gt; Index():&lt;br /&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;sp1cst&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;sp3cst&quot;&gt;&quot;Hello World!&quot;&lt;/span&gt;
    
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Eğer bir yazı değil de html dosyasını göstermek istiyorsak &lt;b&gt;&#39;render_template&#39; &lt;/b&gt;adında bir kütüphaneyi daha dahil edeceğiz.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;highlighter&quot;&gt;

  &lt;span class=&quot;sp1cst&quot;&gt;from&lt;/span&gt; flask &lt;span class=&quot;sp1cst&quot;&gt;import&lt;/span&gt; render_template

&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Şimdi ise proje klasörümüzün içine &#39;&lt;b&gt;templates&#39; &lt;/b&gt;adında bir klasör oluşturalım. Flask bir HTML template kullanacağı zaman proje dizininde ki templates klasörünün içine bakar, o yüzden templates klasörü zorunludur.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Klasörü oluşturduktan sonra içine index.html adında bir dosya oluşturalım ve içerisini dolduralım. Eğer html ile ilgili bir şey bilmiyorsanız internetten biraz araştırma yapabilirsiniz.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Şimdi de nasıl template kullanacağınızı göstereyim. Bu aslında çok kolaydır. Yukarı da ki örnekte gösterdiğim &#39;&lt;b&gt;return&#39; &lt;/b&gt;kısmına &lt;b&gt;render_template&lt;/b&gt; fonksiyonunu çağıracağız.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;highlighter&quot;&gt;

  &lt;span class=&quot;sp1cst&quot;&gt;return&lt;/span&gt; render_template(&lt;span class=&quot;sp3cst&quot;&gt;&quot;index.html&quot;&lt;/span&gt;)  
&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Yukarıda ki ifadeyi düzenlediğimize göre artık kod dosyasını aşağıda ki ifade ile bitirebiliriz.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;highlighter&quot;&gt;
  &lt;span class=&quot;sp1cst&quot;&gt;if&lt;/span&gt; __name__ == &lt;span class=&quot;sp3cst&quot;&gt;&quot;__main__&quot;&lt;/span&gt;:&lt;br /&gt;
  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app&lt;span class=&quot;sp1cst&quot;&gt;.run&lt;/span&gt;(debug = &lt;span class=&quot;sp1cst&quot;&gt;True&lt;/span&gt;)
&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Şimdi artık dosyamızı kaydedip, çalıştırabiliriz. Eğer bir problem ile karşılaşmamışsanız (yukarıda ki adımları düzgün bir şekilde uygularsanız ve ben Alzheimer değilsem yüksek ihtimalle karşılaşmazsınız) &#39;&lt;b&gt;localhost:5000&lt;/b&gt;&#39; adresine gidip projenizi görebilirsiniz.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Yukarıda ki kodların tamamına aşağıda ki Github adresimden ulaşabilirsiniz.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/Enes-Kasapoglu/K-lavuzKod.git&quot;&gt;&lt;button class=&quot;btn-Custom&quot;&gt;Github&lt;/button&gt;&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Umarım bu yazım faydalı olmuştur. Flask ile ilgili daha fazla şey öğrenmek istiyorsanız kendi &lt;a href=&quot;https://flask.palletsprojects.com/en/1.1.x/&quot; target=&quot;_blank&quot;&gt;dökümantasyonunu&lt;/a&gt; inceleyebilirsiniz.&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/1579292305985896494/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/10/flask-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/1579292305985896494'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/1579292305985896494'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/10/flask-nedir.html' title='Flask Nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIsw9eWq1gkhyphenhyphenRlrYv0901YgJO-ENrzIQacmvAu02e-D8S23hYJ_L1hNN6rRRmeHRPvjnzEAED2PT4GhE3ST8s8Hspd8aoX418Psflk3rWCVHY9QIXbNBKW5szoKGSEugZVx7LtgbU0UeY/s72-c/flask3.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-4281682651001852294</id><published>2020-10-07T04:28:00.001-07:00</published><updated>2020-10-07T04:35:56.907-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="SSH"/><category scheme="http://www.blogger.com/atom/ns#" term="Sunucu"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>SSH Nedir?</title><content type='html'>&lt;style&gt;
  .highlighter {
	background:#21252e;
    color:#fff;
    padding:6px;
    border-radius:5px;
  }
&lt;/style&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia_m9s7S8fjXHk6eQ-NJiug07HHwrrrjeqoLHX8y5vZnOjVJizRmCWnM2NYhno4tz4pi6O82CbhCqtJ3_AxtTOf1_aNEF8YLe5rT1wWFI0309POVSWyzLnVyUyUcVgdF7AWR8zwohVlOes/s560/blogsshimage.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;315&quot; data-original-width=&quot;560&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia_m9s7S8fjXHk6eQ-NJiug07HHwrrrjeqoLHX8y5vZnOjVJizRmCWnM2NYhno4tz4pi6O82CbhCqtJ3_AxtTOf1_aNEF8YLe5rT1wWFI0309POVSWyzLnVyUyUcVgdF7AWR8zwohVlOes/s320/blogsshimage.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;SSH yani &lt;b&gt;Secure Shell&lt;/b&gt;, ağ işlemlerini uzaktaki bir makine ile fiziksel iletişim olmadan yapabilmemizi sağlayan bir ağ protokolüdür. Secure Shell denmesinin sebebi ise; uzaktaki makine ile yapılan işlemlerin şifrelenerek yani güvenli bir şekilde yapılmasıdır.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Şifreleme yapmadan çalışan &lt;b&gt;Telnet&lt;/b&gt;&#39;e alternatif olarak şifreleme yaparak güvenli bir şekilde çalışan SSH ağ işlemleri için daha güvenlidir.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Uzaktaki bir sunucu ile veri alışverişi yapabilmeniz için SSH protokolünü kullanabilirsiniz. Bu daha güvenli ve kolay bir şekilde işlem yapabilmenizi sağlar. Sadece sunucu değil, mesela iş yerinizde ki bilgisayarınız ile de bilgi alışverişi yapabilmenizi sağlar.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Nasıl Kullanılır?&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;SSH hizmetini kullanabilmek için elinizde uzakta ki &lt;u&gt;makinenin adı&lt;/u&gt; ve &lt;u&gt;ip adresini &lt;/u&gt;bilmeniz gerekmektedir (Linux, MacOS).&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Linux&lt;/h3&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Linux üzerinde kullanabilmeniz için ilk önce SSH paketini kurmanız gerekmektedir.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;highlighter&quot;&gt;$ sudo apt-get install ssh&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Daha sonra ise SSH servisini aktif etmeniz gerekiyor.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;highlighter&quot;&gt;$ sudo serive ssh start&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;SSH servisi aktif olduktan sonra SSH servisini kullanabiliriz. Bunun için ise aşağıda ki komutu yazmamız gerekiyor.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;highlighter&quot;&gt;$ sudo ssh root@ip_adress&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Burada gördüğünüz &#39;root&#39; yerine uzakta ki makinenin adını, &#39;ip_adress&#39; yerine ise uzakta ki makinenin ip adresini yazıyorsunuz.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Daha sonra size bir doğrulama sorusu soracaktır. Bunun nedeni ise ilk defa bağlanıyor olmanız. Ardından ise uzakta ki makinenin şifresini soracaktır. makinenin şifresini girdikten sonra uzakta ki makine ile iletişim kurabilirsiniz.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Windows&lt;/h3&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Windows üzerinde SSH servisini kullanabilmemiz için birçok program kullanabiliriz. Ama size tavsiyem &#39;&lt;a href=&quot;https://www.putty.org/&quot; target=&quot;_blank&quot;&gt;PuTTY&lt;/a&gt;&#39;. Web sitesinden PuTTY programını indirebilirsiniz.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;PuTTY programını açtığımız zaman aşağıda ki gibi bir görüntü gelecektir.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOy-HjODUbr93tX56uOVXTyNTK800a3htn3Wnt7RplbQ4-ct7tHlzAr3GojJ4eEiL6UjimEhmc-yR_u1d1W6jg0jUZz2UcbtxsxaPMYpg-uBWhTrutWYhoMvNAQ_S4mn-W9OsCCD8QzD3f/s466/asdsp.gif&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;446&quot; data-original-width=&quot;466&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOy-HjODUbr93tX56uOVXTyNTK800a3htn3Wnt7RplbQ4-ct7tHlzAr3GojJ4eEiL6UjimEhmc-yR_u1d1W6jg0jUZz2UcbtxsxaPMYpg-uBWhTrutWYhoMvNAQ_S4mn-W9OsCCD8QzD3f/s320/asdsp.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Burada ilk kısıma erişmek istediğiniz makinenin adını ve IP adresini yazıyoruz ve &lt;b&gt;open&lt;/b&gt; butonuna tıklıyoruz. Ardından ise terminal ekranı gelecektir ve burada size uzakta ki makinenin şifresini soracaktır. Bunu da yazdıktan sonra SSH servisini kullanabilirsiniz.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/4281682651001852294/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/10/ssh-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/4281682651001852294'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/4281682651001852294'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/10/ssh-nedir.html' title='SSH Nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia_m9s7S8fjXHk6eQ-NJiug07HHwrrrjeqoLHX8y5vZnOjVJizRmCWnM2NYhno4tz4pi6O82CbhCqtJ3_AxtTOf1_aNEF8YLe5rT1wWFI0309POVSWyzLnVyUyUcVgdF7AWR8zwohVlOes/s72-c/blogsshimage.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-4395082171105235613</id><published>2020-09-24T23:46:00.003-07:00</published><updated>2020-09-24T23:51:53.558-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Initramfs Nedir ve Nasıl Çözülür?</title><content type='html'>&lt;style&gt;
  .highligthercode {
  	background:#21252e;
    color:#fff;
    padding:6px;
    border-radius:6px;
  }
&lt;/style&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoRP9TZL53G_wEzjQZFM-DGUbd2C1Kd3YvVcQ02e3Uk7XOnWqAI4IMM72uBSSmrUTOpqpl__wX3tmYokB6xlX_8ntrvxwZkXlyzHv3-wogmlZlQlWMfJ2M6p-qaa7ZgMjm6aeRQKuN3QSk/s512/linux.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;512&quot; data-original-width=&quot;512&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoRP9TZL53G_wEzjQZFM-DGUbd2C1Kd3YvVcQ02e3Uk7XOnWqAI4IMM72uBSSmrUTOpqpl__wX3tmYokB6xlX_8ntrvxwZkXlyzHv3-wogmlZlQlWMfJ2M6p-qaa7ZgMjm6aeRQKuN3QSk/s320/linux.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtQdXuW6inTz3PQtS6wInsTqk8M8fwjFWAuIh5U2MAsrujySr9tN2wGsMM1jio-ni_-DuhYEDR11eBaXGY2cflLHOfLgGfUDnErx7UeZlZLgG6u7l0HiXbAV6K2uJZEOaGT_fIwIDH8Pxu/s512/linux.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Herkese merhabalar, bu yazımda sizlere Linux kullanıcılarının bilebileceği bir hatadan ve bu hatanın çözümünden bahsedeceğim.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Eğer siz de benim gibi bir Linux kullanıcısıysanız daha önceden karşılaşmış veya ileride karşılaşabileceğiniz bir hatadır. Bu hatanın sebebi; genellikle sistemi kapatırken oluşan yanlışlıklardan dolayı oluşan bir hatadır.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Şimdi ilk önce aşağıda ki komutu yazarak diskleri ve disklerin içinde ayrılmış alanları görüyoruz.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;div class=&quot;highligthercode&quot;&gt;
sudo fdisk -l
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Burada Linux&#39;un kurulu olduğu diski seçmemiz gerekiyor. Hangi diske kurulu olduğunu da &#39;&lt;b&gt;Device&lt;/b&gt;&#39;&lt;b&gt; &lt;/b&gt;kısmından öğrenebilirsiniz. Şimdi ise aşağıda ki komutu yazıyoruz.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;div class=&quot;highligthercode&quot;&gt;
sudo fsck -v -y /dev/sda?
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Bu kısım önemli, &lt;b&gt;fsck&lt;/b&gt; komutu bozulan sistem diskini düzeltmeye yarayan komuttur. ve /dev/sda? kısmına Linux&#39;un kurulu olduğu diski yazmanız gerekir.&lt;/p&gt;&lt;p&gt;Bu komutu yazdıktan sonra geriye kalan tek şey sistemi yeniden başlatmak olacaktır. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/4395082171105235613/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/09/initramfs-nedir-ve-nasl-cozulur.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/4395082171105235613'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/4395082171105235613'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/09/initramfs-nedir-ve-nasl-cozulur.html' title='Initramfs Nedir ve Nasıl Çözülür?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoRP9TZL53G_wEzjQZFM-DGUbd2C1Kd3YvVcQ02e3Uk7XOnWqAI4IMM72uBSSmrUTOpqpl__wX3tmYokB6xlX_8ntrvxwZkXlyzHv3-wogmlZlQlWMfJ2M6p-qaa7ZgMjm6aeRQKuN3QSk/s72-c/linux.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-5050604088866279479</id><published>2020-09-17T18:07:00.007-07:00</published><updated>2020-09-17T18:14:20.810-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bootstrap"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="Jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Php"/><title type='text'>Php ile Form Üzerinden Login İşlemi</title><content type='html'>&lt;style&gt;
  .higlightdiv {
  	color:#fff;
    background:#23252e;
    border-radius:5px;
    padding:6px;
  }
  .higlightdiv span {
  	color:#488bff;
  }
&lt;/style&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTsncaErQ2it2yLlvwfnYPhHnAvp4LJvw8I0CLmf28tPUmMjfmJNpfuvAGnLsz2yioMIel4Z6R3Y7tpyL3C2ikgsRYcypoMHauC6mIO3hV5TNRhQlXkFDB0JjavZYlkeMKkuELEtL7AU92/s2048/Ads%25C4%25B1z+tasar%25C4%25B1m.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1152&quot; data-original-width=&quot;2048&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTsncaErQ2it2yLlvwfnYPhHnAvp4LJvw8I0CLmf28tPUmMjfmJNpfuvAGnLsz2yioMIel4Z6R3Y7tpyL3C2ikgsRYcypoMHauC6mIO3hV5TNRhQlXkFDB0JjavZYlkeMKkuELEtL7AU92/s320/Ads%25C4%25B1z+tasar%25C4%25B1m.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;p&gt;&amp;nbsp;Herkese merhabalar, bu yazımda sizlere Php ile MySQL tablolarını parse ederek nasıl bir &lt;b&gt;login&lt;/b&gt; sistemi yapabileceğinizi anlatacağım.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Bizim için gerekli olan programlar şu şekilde:&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Php&lt;/li&gt;&lt;li&gt;MySQL&lt;/li&gt;&lt;li&gt;PhpMyAdmin&lt;/li&gt;&lt;li&gt;JQuery&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;İlk olarak bir dosya oluşturalım ve içerisine;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt; index.php&lt;/li&gt;&lt;li&gt;loginprocess.php&lt;/li&gt;&lt;li&gt;loginreject.php&lt;/li&gt;&lt;li&gt;style.css&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;dosyalarını oluşturalım. Burada index.php giriş panelimizin olduğu kısım, loginprocess.php veritabanı bağlantısı oluşturacağımız kısım, loginreject.php ise eğer yanlış kullanıcı adı ve parola girersek neler olacağını belirlediğimiz kısımdır.&lt;/p&gt;&lt;p&gt;Şimdi isterseniz hangi kısımda ne yapacağımızı görelim.&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;MySQL&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;ilk önce &lt;a href=&quot;http://localhost/phpmyadmin&quot;&gt;http://localhost/phpmyadmin&lt;/a&gt; adresine gidelim. Üst menüden SQL menüsüne tıklayalım ve bir SQL sorgusu yazalım.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
  &lt;div class=&quot;higlightdiv&quot;&gt;
    &lt;span&gt;CREATE DATABASE&lt;/span&gt; login
  &lt;/div&gt;
  
  &lt;br /&gt;Burada login yazan kısıma oluşturacağınız veritabanının adını yazıyorsunuz. Ardından sağ alt köşedeki git butonuna tıklıyorsunuz.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Görebileceğiniz üzere veritabanı listelerinin arasına login adında bir veritabanı eklendi. Onun üzerine tıklayıp tekrardan SQL yazan yere geliyoruz. Şimdi oluşturacağımız sorgu ise bir tablo oluşturmak ve bu tablolara değer yazmak.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
    &lt;div class=&quot;higlightdiv&quot;&gt;
    &lt;span&gt;CREATE TABLE&lt;/span&gt; account(&lt;br /&gt;
      usern &lt;span&gt;VARCHAR(20) NOT NULL&lt;/span&gt;,&lt;br /&gt;
      userp &lt;span&gt;VARCHAR(20) NOT NULL&lt;/span&gt;&lt;br /&gt;
      )&lt;br /&gt;&lt;br /&gt;
      
      &lt;span&gt;INSERT INTO&lt;/span&gt; account (usern,userp) &lt;span&gt;VALUES&lt;/span&gt; (&quot;admin&quot;,&quot;123456789&quot;)
  &lt;/div&gt;
    &lt;br /&gt;Yazıp tekrardan git butonuna tıklıyoruz ve veritabanı işlemlerimiz son buluyor. Artık bizim kullanıcı adımız &lt;b&gt;admin, &lt;/b&gt;şifremiz ise &lt;b&gt;123456789&lt;/b&gt;.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;index.php&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Burada dediğim gibi panel arayüzünü tasarlayacağız, buraya kodları tek tek yazarsam çok uzun olur. Aşağıya bırakacağım Github adresinden zaten kodlara ulaşabilirsiniz.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;loginprocess.php&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Burası Php ile veritabanımızı bağlamamız için en önemli kısım. Şimdi burada bir PDO nesnesi oluşturacağız ve SQL sorguları yazacağız.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;İlk önce bir SESSION oluşturalım:&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
      &lt;div class=&quot;higlightdiv&quot;&gt;
        &lt;span&gt;$_SESSION[&lt;/span&gt;&#39;login&#39;&lt;span&gt;]&lt;/span&gt; = &quot;no&quot;;
      &lt;/div&gt;
      
      &lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
      &lt;div class=&quot;higlightdiv&quot;&gt;
      	$db = new PDO(&quot;mysql:host=localhost;dbname=login&quot;,&quot;mysqlkullanıcıadınız&quot;,&quot;mysqlkullanıcısifreniz&quot;);
      &lt;/div&gt;
      
      &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Burada yaptığımız işlem, bir PDO nesnesi oluşturmak ve veritabanı bağlantısı için gerekli olan bilgileri yazmak. Burada ki dbname kısmına dikkat ediniz. Bu kısıma bağlanmak istediğimiz veritabanının adını yazıyoruz.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Şimdi ise bu bilgileri parse etmemiz gerekiyor.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
        
        &lt;div class=&quot;higlightdiv&quot;&gt;
        	
          		 $username = $_POST[&#39;username&#39;];&lt;br /&gt;
                  $password = $_POST[&#39;password&#39;];&lt;br /&gt;

                  $sql = $db-&amp;gt;prepare(&quot;SELECT * FROM account WHERE usern = ? AND userp = ?&quot;);&lt;br /&gt;
                  $sql-&amp;gt;execute([$username,$password]);&lt;br /&gt;

                  $datas = $sql-&amp;gt;fetch(PDO::FETCH_ASSOC);&lt;br /&gt;

          
          	
        &lt;/div&gt;
        
        &lt;br /&gt;

Şimdi burada ilk önce index.php sayfasından form aracılığı ile gönderdiğimiz verileri değişkenlere atadık. Ardından ise veri çekebilmek için bir SQL sorgusu yazdık, bunu prepare() ve execute() fonksiyonları ile php üzerinden kullanabileceğimiz hale getirdik. En sonunda ise giden verilerin kıyaslanmış halini boolean değer alan $datas değişkenine atadık. Şimdi kıyaslama doğru ise veya değil ise ne yapacağımızı göreceğiz. 
        
        &lt;div class=&quot;higlightdiv&quot;&gt;
        	if($datas) {&lt;br /&gt;
        $_SESSION[&#39;login&#39;] = &quot;ok&quot;;&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
            $_SESSION[&#39;login&#39;] = &quot;no&quot;;&lt;br /&gt;
        }&lt;br /&gt;
          
          	
        &lt;/div&gt;
        &lt;br /&gt;
        
        Burada ise eğer veriler uyuşuyor ise login SESSION&#39;umuzun değerini &#39;ok&#39; yaptık eğer değil ise &#39;no&#39; değerini aldı. Şimdi Eğer doğru ise nelerin gösterileceğini veya ne mesaj vereceğimiz kısıma geldik. Bunun için ise:
        
        &lt;div class=&quot;higlightdiv&quot;&gt;
        	if($_SESSION[&#39;login&#39;] == &quot;ok&quot;){&lt;br /&gt;
        //giriş başarılı ise ne yapılacağını yaz&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
          //giriş başarılı değil ise ne yapılacağını yaz.&lt;br /&gt;
        require(&quot;loginreject.php&quot;);&lt;br /&gt;
    }
          
          	
        &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Diğer dosyalar&lt;/h2&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Daha önce de dediğim gibi bunlar tasarım dosyaları ve yazmam çok uzun sürer. Bunların hepsine Github linkinden ulaşabilirsiniz.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
          
          &lt;a href=&quot;https://github.com/Enes-Kasapoglu/K-lavuzKod.git&quot;&gt;&lt;button style=&quot;background: rgb(33, 37, 46) none repeat scroll 0% 0%; border: medium none; color: white; height: 40px; width: 80px;&quot;&gt;Github&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/5050604088866279479/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/09/php-ile-form-uzerinden-login-islemi.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/5050604088866279479'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/5050604088866279479'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/09/php-ile-form-uzerinden-login-islemi.html' title='Php ile Form Üzerinden Login İşlemi'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTsncaErQ2it2yLlvwfnYPhHnAvp4LJvw8I0CLmf28tPUmMjfmJNpfuvAGnLsz2yioMIel4Z6R3Y7tpyL3C2ikgsRYcypoMHauC6mIO3hV5TNRhQlXkFDB0JjavZYlkeMKkuELEtL7AU92/s72-c/Ads%25C4%25B1z+tasar%25C4%25B1m.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-7749074677979564315</id><published>2020-07-22T03:47:00.000-07:00</published><updated>2020-07-22T03:47:59.039-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><category scheme="http://www.blogger.com/atom/ns#" term="MongoDB"/><category scheme="http://www.blogger.com/atom/ns#" term="NodeJS"/><category scheme="http://www.blogger.com/atom/ns#" term="React"/><category scheme="http://www.blogger.com/atom/ns#" term="Sunucu"/><category scheme="http://www.blogger.com/atom/ns#" term="Tasarım"/><category scheme="http://www.blogger.com/atom/ns#" term="Veritabanı"/><title type='text'>MERN Stack Nedir?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf3BU7_sSPjCKD5-nL8RHRgvmqQqyld6uV4qij6T4krzSN-Nzlo8Bd3WKlAfHr7g1UImf0e6i1TqPKEoA8eTVi6GEnrTZBpCpEs8bT8C1l1NDm14xWCTCB-ZJB6vlfOpk2Jtptp0BadHsW/s550/Mern-Stack-Program.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;294&quot; data-original-width=&quot;550&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf3BU7_sSPjCKD5-nL8RHRgvmqQqyld6uV4qij6T4krzSN-Nzlo8Bd3WKlAfHr7g1UImf0e6i1TqPKEoA8eTVi6GEnrTZBpCpEs8bT8C1l1NDm14xWCTCB-ZJB6vlfOpk2Jtptp0BadHsW/s320/Mern-Stack-Program.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MERN yani &lt;b&gt;M&lt;/b&gt;ongoDB&lt;b&gt; &lt;a href=&quot;http://www.kilavuzkod.com/2020/04/nodejs-nedir.html&quot; target=&quot;_blank&quot;&gt;E&lt;/a&gt;&lt;/b&gt;&lt;a href=&quot;http://www.kilavuzkod.com/2020/04/nodejs-nedir.html&quot; target=&quot;_blank&quot;&gt;xpressJS&lt;/a&gt;&lt;b&gt; R&lt;/b&gt;eact&lt;b&gt; &lt;a href=&quot;http://www.kilavuzkod.com/2020/04/nodejs-nedir.html&quot; target=&quot;_blank&quot;&gt;N&lt;/a&gt;&lt;/b&gt;&lt;a href=&quot;http://www.kilavuzkod.com/2020/04/nodejs-nedir.html&quot; target=&quot;_blank&quot;&gt;odeJS&lt;/a&gt; kütüphanelerinin baş harflerinin birleşimi ile oluşturulan bir çalışma ortamı ismidir. Bu kütüphaneler genellikle JavaScript dili ile bir proje oluşturmak için kullanılan bileşenlerdir. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;JavaScript ile bir proje geliştirirken:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;Veritabanı &lt;/b&gt;için - MongoDB&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;Url Yönetimi &lt;/b&gt;için - ExpressJS&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;Tasarım &lt;/b&gt;için - React&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;Server Yönetimi &lt;/b&gt;için - NodeJS&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;kütüphanelerini kullanırız. Az çok anlaşılabildiği üzere MERN bir proje için temel yapı taşlarıdır. İsterseniz bu teknolojilerin neler olduklarına bakalım.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;MongoDB&lt;/h3&gt;&lt;div&gt;MongoDB; Ölçeklenebilir bir NoSQL veritabanı uygulamasıdır. NoSQL olmasının avantajı, diğer ilişkisel veritabanlarına göre daha performanslı olmasıdır. Ayrıca NoSQL veri tabanı diğer veri tabanı sistemlerine göre bir farkı daha; diğer sitemler tablo ve sütunlar ile çalışırken, NoSQL sistemler JSON verisi ile çalışırlar.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MongoDB kullanırken; Verilerin birden fazla kopyası saklanabilir ve veri kaybı yaşanmaz. Ayrıca MongoDB birden fazla sunucu ile de çalışabilir.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;ExpressJS&lt;/h3&gt;&lt;div&gt;ExpressJS, NodeJS için geliştirilmiş bir URL Parsing framework&#39;üdür. Bu framework&#39;ü daha öncelerden yayınladığım, NodeJS için vazgeçilmez bir framework&#39;tür.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ExpressJS ile sunucu tarafından gelen url isteğine göre belirli bir işlemi yaptırabilirsiniz. Mesela bir dosya göstermek gibi.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;React&lt;/h3&gt;&lt;div&gt;React, açık kaynaklı bir MVC yani Model-View-Controller kütüphanesidir. Genellikle projenin frontend dediğimiz önyüz kısmında çalışır. Temel olarak NodeJS&#39;i kullanan bu kütüphane ile projenin tasarım kısmını oluşturur. Componentler oluşturabilmemiz sayesinde bir nesneyi birden fazla yerde kullanabiliriz. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Söz dizimi olarak &lt;b&gt;JSX&lt;/b&gt; formatını kullanır. JSX formatı hem javascript hem html kodlarını tek bir dosyada yazmamızı sağlar. Daha basit bir şekilde; javascript dosyasının içerisine html kodları yazıp bunu render etmemizi sağlar. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;NodeJS&lt;/h3&gt;&lt;div&gt;NodeJS&#39;i aslında kendi başına bir dil olarak görmeliyiz. SSR yani Server-Side-Rendering (Sunucu Tarafında Düzenlemek) şeklinde çalışan NodeJS projenin Server kısmında çalışır. GoogleV8 motorlarını kullanan NodeJS, projeyi bir tarayıcıya gerek kalmadan, her yerde çalıştırmamızı sağlar. Daha detaylı bilgi için NodeJS nedir adlı yazımı ziyaret edebilirsiniz.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Kaynak&lt;/h3&gt;&lt;div&gt;- https://mehmetcavdaroglu.blogspot.com/2018/12/mern-nedir-ne-ise-yarar.html&lt;/div&gt;&lt;div&gt;- https://medium.com/@berkekurnaz/nedir-bu-mongodb-994a94a9d1df&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/7749074677979564315/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/07/mern-stack-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/7749074677979564315'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/7749074677979564315'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/07/mern-stack-nedir.html' title='MERN Stack Nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf3BU7_sSPjCKD5-nL8RHRgvmqQqyld6uV4qij6T4krzSN-Nzlo8Bd3WKlAfHr7g1UImf0e6i1TqPKEoA8eTVi6GEnrTZBpCpEs8bT8C1l1NDm14xWCTCB-ZJB6vlfOpk2Jtptp0BadHsW/s72-c/Mern-Stack-Program.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-1649756250524859581</id><published>2020-07-12T07:55:00.007-07:00</published><updated>2020-07-20T03:35:50.968-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Kriptoloji"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Rot13 Nedir?</title><content type='html'>&lt;div&gt;Rot13 veya diğer adıyla Sezar Algoritması; Latin alfabesinde bir harfin kendinden sonra ki 13. harf ile yer değiştirmesi ile oluşan bir şifreleme yöntemidir. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_C5z4Ct404k2t-MwYgXwhMW5d9ueUqAH5Fjwvw89zm0HdWNMzJz2HiO5LrrmDmwCP7mTAZNyzpOkbXzv-uiIf1FWEPxIM0EX-1NGd3vmMLUHLonEztUOx26qGxdiaiNbXYcGFfcXBTlw5/s320/rot13.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;185&quot; data-original-width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_C5z4Ct404k2t-MwYgXwhMW5d9ueUqAH5Fjwvw89zm0HdWNMzJz2HiO5LrrmDmwCP7mTAZNyzpOkbXzv-uiIf1FWEPxIM0EX-1NGd3vmMLUHLonEztUOx26qGxdiaiNbXYcGFfcXBTlw5/s0/rot13.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bu şifreleme yöntemine &lt;b&gt;Sezar Algoritması &lt;/b&gt;denmesinin sebebi; Antik Roma&#39;da Jûl Sezar&#39;ın savaşlarda şifreli metinler kullanabilmek için oluşturduğu bir şifreleme yöntemidir.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Şu anda bu metinleri rot13 ile çevirebileceğiniz, rot13&#39;ün &lt;a href=&quot;https://rot13.com&quot; target=&quot;_blank&quot;&gt;web sitesine &lt;/a&gt;gidebilir veya aşağıda Github linkini bırakacağım proje ile Python3 kullanarak bu şifreleme yönteminin encode ve decode işlemlerini nasıl yapabileceğinizi inceleyebilirsiniz.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
  &lt;a href=&quot;https://github.com/Enes-Kasapoglu/Rot13EnDcoder.git&quot; target=&quot;_blank&quot;&gt;&lt;button style=&quot;background: rgb(33, 37, 46) none repeat scroll 0% 0%; border: medium none; color: white; height: 40px; width: 80px;&quot;&gt;Github&lt;/button&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/1649756250524859581/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/07/sezar-algoritmasrot13-nedir.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/1649756250524859581'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/1649756250524859581'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/07/sezar-algoritmasrot13-nedir.html' title='Rot13 Nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_C5z4Ct404k2t-MwYgXwhMW5d9ueUqAH5Fjwvw89zm0HdWNMzJz2HiO5LrrmDmwCP7mTAZNyzpOkbXzv-uiIf1FWEPxIM0EX-1NGd3vmMLUHLonEztUOx26qGxdiaiNbXYcGFfcXBTlw5/s72-c/rot13.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-5114343562885362092</id><published>2020-06-22T09:19:00.001-07:00</published><updated>2020-06-22T09:19:29.954-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tasarım"/><category scheme="http://www.blogger.com/atom/ns#" term="Test"/><title type='text'>Yazılım Geliştirme Adımları</title><content type='html'>&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTgyMRgfXU6Yn6ovVo27B0Y_CqrzsJ9JhlwPM0FXBqZNIr4LsyazM_uAFqppFY7Y4tBWc22HdBBEJG-b89Uslm0-b3bDGCqEj_db57_4BdnG4T2mf4Equgwy6y4FWadSE8z95NCemk8swG/s2240/Yaz%25C4%25B1l%25C4%25B1m.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1260&quot; data-original-width=&quot;2240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTgyMRgfXU6Yn6ovVo27B0Y_CqrzsJ9JhlwPM0FXBqZNIr4LsyazM_uAFqppFY7Y4tBWc22HdBBEJG-b89Uslm0-b3bDGCqEj_db57_4BdnG4T2mf4Equgwy6y4FWadSE8z95NCemk8swG/s320/Yaz%25C4%25B1l%25C4%25B1m.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yazılım geliştirmek için birden fazla yöntem vardır ama sağlıklı bir yazılım geliştirmek için gelişme süreçleri pek farklı değildir. Genelde bu süreç 5 adımdan oluşur. Bu adımlar sırası ile &lt;b&gt;İhtiyaç analizi&lt;/b&gt;, &lt;b&gt;Tasarım&lt;/b&gt;, &lt;b&gt;Programlama&lt;/b&gt;, &lt;b&gt;Sınama&lt;/b&gt;, &lt;b&gt;Bakım&lt;/b&gt;&#39;dır. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bu süreçleri takip ederek geliştirilen bir proje daha disiplinli ve düzenli olur. Aslında tüm projelerde farketmeden bu süreçleri geçiriyoruz ama bazı adımlara çok önem vermiyoruz bu nedenden dolayı projenin yürürlülüğü sıkıntıya giriyor.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Şimdi daha fazla uzatmadan bu adımlara geçelim.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;İhtiyaç/Gereksinim Analizi&lt;/h2&gt;&lt;div&gt;Bu süreçte geliştirmek istenilen projenin genel olarak veya günlük hayatta ki ihtiyaçların, problemlerin belirlenmesi ve bu problemlerin çözümü için gerekli olan proje belirlenir. Aslında geliştirilen bütün yazılımlar problemleri çözüp hayatı kolaylaştırmak için üretilir, baktığımız zaman bu süreci hepimiz uyguluyoruz ve bu adım projenin temelini oluşturur. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Tasarım&lt;/h2&gt;&lt;div&gt;Bu sürecin adından anlaşılabileceği gibi projenin tasarımı yapılır fakat bu süreçte kodlama yapılmaz. Bu işlemde projenin nasıl çalışacağı tasarlanır, nesneler belirlenir. Bu adımda projenizin tasarımı konusunda planlama yapmış olursunuz. Bu süreç önemlidir çünkü projenin kalitesini ve anlaşılabilirliğini bu süreçte belirleriz. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Programlama/Yazılım&lt;/h2&gt;&lt;div&gt;Projemizi belirledik, tasarımını yaptık. Artık geriye bu projenin bir programlama dili kullanılarak oluşturulması, yazılması kaldı. Bu süreçte tasarım kısmında belirlediğimiz kriterleri, argümanları bu kısımda bir programlama dili ile ifade ederiz ve projeyi oluştururuz. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Sınama/Test Etme&lt;/h2&gt;&lt;div&gt;Projemizi oluşturduk ve artık bu projemizi test etme vakti geldi. Projenin sonuçta, belirlenen kriterlere uyup uymadığını kontrol ederiz. Gereksinimlerimizi karşılayıp problemlerimizi çözüp çözmediğini kontrol ederiz. Eğer sonucumuz olumlu ise projeyi kullanıcılara açıp kullanmaları sağlanır. Ama eğer sonucumuz olumsuz ise projeyi düzeltip bu kriterlere uymayan kısımlar belirlenir ve bu kısımlar düzeltilir. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Bakım&lt;/h2&gt;&lt;div&gt;Projemizi tamamladık ve bu projeyi kullanıcılara sunduk. Eğer projemizin devamlılığını istiyorsak bu adımı dikkate almalı ve bu konuda özenli olmalıyız. Bu süreçte kullanıcıların yorumları alınır, projenin artı ve eksileri belirlenir ve bu eksikleri düzeltiriz. Bu adım önemlidir çünkü eğer kullanıcıların olumsuz yorumları karşısında projemizde bir bakım yapmaz isek bu projenin devamlılığı söz konusu değildir. Projeden gelir elde etmek, daha fazla kullanıcıya ulaşabilmek için bu adıma özen göstermek gereklidir. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Evet arkadaşlar bir proje geliştirirken içinde olduğumuz süreç bu şekilde işler. Projenin kaliteli olması, anlaşılır olması, kullanılabilirliği ve devamlılığı için yazmış olduğum adımlarda çok fazla özen göstermeliyiz. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Eğer yazdığımız proje spontane olarak gelişiyorsa ve projenin takibini yapmazsanız bu projeden fazla gelir alamazsınız. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Planlı bir aptal, plansız bir dahiyi yenebilir. - Warren Buffet&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aslında genel olarak hayatımızda bu adımların çoğunu yaşayarak hareket ediyoruz. Yani bu adımlara sadece programlama için bakmamalıyız, bu nedenle bu süreçler günlük hayat için bile çok önemlidir.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/5114343562885362092/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/06/yazlm-gelistirme-admlar.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/5114343562885362092'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/5114343562885362092'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/06/yazlm-gelistirme-admlar.html' title='Yazılım Geliştirme Adımları'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTgyMRgfXU6Yn6ovVo27B0Y_CqrzsJ9JhlwPM0FXBqZNIr4LsyazM_uAFqppFY7Y4tBWc22HdBBEJG-b89Uslm0-b3bDGCqEj_db57_4BdnG4T2mf4Equgwy6y4FWadSE8z95NCemk8swG/s72-c/Yaz%25C4%25B1l%25C4%25B1m.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-8185828555472389275</id><published>2020-06-03T13:04:00.001-07:00</published><updated>2020-08-12T08:13:48.656-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Cpp"/><title type='text'>C++ Structure ve Arraylar</title><content type='html'>&lt;style&gt;.whodivstyles{background:#21252e;padding:6px;color:#fff;}&lt;/style&gt;
&lt;div&gt;C++ üzerinde &lt;b&gt;Struct&lt;/b&gt; ve &lt;b&gt;Array&lt;/b&gt; adında birden fazla değeri veya birden fazla veritipini içeren yapılar vardır. Bu yapılar &lt;b&gt;OOP&lt;/b&gt;(Object Orianted Programming) yani &lt;u&gt;Nesne Yönelimli Programlama&lt;/u&gt; için gereklidir bu yüzden bu kavramları kavramanız gerekir. İsterseniz lafı daha fazla uzatmadan, Struct ve Array kelimeleri ne anlama geliyor anlatayım. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;h1&gt;Array&lt;/h1&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Arraylar veya diziler, bellekte sıralı biçimde bulunan ve
 aynı türden değişkenlerin olduğu veri yapılarıdır. Daha önceden Python 
dili ile programlama yaptıysanız, Python&#39;da ki liste yapıları ile aynı 
mantıktadır fakat tek fark C++&#39;da Arraylar dek bir veritipinden 
oluşturulabilmektedir mesela &#39;&lt;b&gt;string&lt;/b&gt;&#39;(kelime) veya &#39;&lt;b&gt;int&lt;/b&gt;&#39;(tamsayı) gibi.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Array tanımlarken ilk önce dikkat etmemiz gereken ayrıntı, o dizinin tipini belirtmektir. Ardından ise o diziye vermek istediğimiz ad ve boyutu. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;br /&gt;veritipi isim[boyut];&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mesela türü tamsayı olan 3 boyutlu bir dizi oluşturmak ve 3,5,8 sayılarını eleman olarak atamak istiyorum, bunun için aşağıda ki gibi bir yol izlemem gerekir.&amp;nbsp; &lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;whodivstyles&quot;&gt;
&lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; a[3] = {3,5,8};
&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
Evet, array tanımladık ve istediğimiz şekilde eleman atadık, bu atama işlemini süslü parantezler &#39;{}&#39; arasında yaptık ve noktalı virgül ile satırımızı bitirdik. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Array elemanları daha doğrusu elemanların sırası, index değeri her zaman &#39;0&#39; dan başlar, mesela yukarıda ki örnekte 3 elemanlı bir array oluşturduk. Bu elemanların sırası 1&#39;den değil de 0&#39;dan başlar. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bu durumu şöyle açıklayayım; mesela elemanları 2,5,1,3,4 olan bir arrayımız var. Bu arrayların elemanlarının sıra değeri 1,2,3,4,5, de 0,1,2,3,4 şeklindedir.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
  &lt;div class=&quot;whodivstyles&quot;&gt;
  &lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; a[] = {2,5,1,3,4};&lt;br /&gt;
  &lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;a[0]; &lt;span style=&quot;color: #41b375;&quot;&gt;// 2&lt;/span&gt;&lt;br /&gt;
  &lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;a[1]; &lt;span style=&quot;color: #41b375;&quot;&gt;// 5&lt;/span&gt;&lt;br /&gt;
  &lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;a[2]; &lt;span style=&quot;color: #41b375;&quot;&gt;// 1&lt;/span&gt;&lt;br /&gt;
  &lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;a[3]; &lt;span style=&quot;color: #41b375;&quot;&gt;// 3&lt;/span&gt;&lt;br /&gt;
  &lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;a[4]; &lt;span style=&quot;color: #41b375;&quot;&gt;// 4
  &lt;/span&gt;&lt;/div&gt;
  &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH26d8T431VKSXWMES9BmsjEOMmoULkLjPa0SB-GIfNOPwBCeuoChrzXV15GGhby5C4iiaWiLidjd2z3y7Jv743jrBOFntmoUTCT2fgzbltDGPL4COaz8iu_NByPfyGVrbXg0iOS4ZgTXt/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;160&quot; data-original-width=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH26d8T431VKSXWMES9BmsjEOMmoULkLjPa0SB-GIfNOPwBCeuoChrzXV15GGhby5C4iiaWiLidjd2z3y7Jv743jrBOFntmoUTCT2fgzbltDGPL4COaz8iu_NByPfyGVrbXg0iOS4ZgTXt/&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Yukarıda ki örnekte ve tabloda gördüğünüz üzere arraylarde sıra numaraları 0&#39;dan başlar. Bu çoğu programlama dilinde aynıdır. Genelde sıra numarası olarak değil de index değeri olarak geçer. &lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Şimdi yukarıda ki örnekte bazı ayrıntıları daha gösterdim, dizi elemanlarına ulaşmak ve eleman sayısı belirtmeden dizi oluşturmak. &lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Dizi elemanlarına ulaşmak için; ilk önce dizi adı ardından da index değeri yazılır ve formülü aşağıda ki gibidir.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;pre&gt;isim[index];&lt;br /&gt;&lt;/pre&gt;Yukarıda ki formul ile dizi elemanlarına ulaşabilirsiniz. Eğer dizi oluştururken eleman sayısını bilmiyor veya belirtmek istemiyorsanız, köşeli parantezlerin içerisini boş bırakabilirsiniz.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;İç İçe Diziler&lt;/h3&gt;&lt;div&gt;Bir dizi tanımlarken, dizi içerisine dizi tanımlayabilirsiniz. Biraz karmaşık duruyor gibi olabilir ama örnekler ile kavrayabilirsiniz. Yukarıda anlattığım gibi, dizilere eleman tanımlarken süslü parantezler içerisine tanımlıyoruz. Eğer iç içe dizi tanımlamak istersek süslü parantezlerin içerisine süslü parantezler ile tanımlıyoruz. Formulü aşağıda ki gibidir&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;pre&gt;int a[] = {{1,2,3},{4,5,6}};&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gördüğünüz gibi, dizi tanımlarken süslü parantez içine süslü parantez kullandım. Bu elemanlara erişebilmek için ilk önce dizi içerisinde ki dizinin index değeri, ardından da içinde ki dizinin elemanlarının index değeri ile ulaşabilirim. Mesela yukarıda ki örnekten devam ederek, elemanlara ulaşmak istersem aşağıda ki gibi bir yol izlemem gerekir. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;
  &lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; a[] = {{1,2,3},{4,5,6}};&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt; &lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;İlk Dizinin İlk Elemanı: &quot;&lt;/span&gt;&amp;lt;&amp;lt;a[0][0] &lt;span style=&quot;color: #41b375;&quot;&gt;// 1&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt; &lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;İkinci Dizinin İlk Elemanı: &quot;&lt;/span&gt;&amp;lt;&amp;lt;a[1][0] &lt;span style=&quot;color: #41b375;&quot;&gt;// 4&lt;/span&gt;&lt;br /&gt;
  &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dizi içerisinde dizi elemanlarına ulaşabilmek için iki tane köşeli parantezi yan yana yazarak kullanıyorum. &lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Ekstra Fonksiyonlar&lt;/h2&gt;&lt;div&gt;Şimdi array oluşturmayı ve array elemanlarına ulaşmayı anladığımıza göre
 size arraylar için bazı fonksiyonları anlatmak istiyorum. Bu 
fonksiyonlar dizideki eleman sayısı, dizi kopyalamak, diziye &#39;cin&#39; benzeri bir yapı ile 
eleman almak gibi işlevleri yerine getirir. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bu fonksiyonları kullanabilmek için &#39;cstring&#39; kütüphanesini dahil etmemiz gerekir. Kütüphanemizi aşağıda ki gibi dahil ediyoruz.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;text-align: left;&quot;&gt;#include &amp;lt;cstring&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Ardından ise fonksiyonlarımıza geçebiliriz. &lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Eleman Sayısı - strlen()&lt;/h3&gt;&lt;div&gt;Bir dizide ne kadar eleman sayısı olduğunu belirtmemişseniz ve bilmiyorsanız bu fonksiyonu kullanarak dizideki eleman sayısını öğrenebilirsiniz.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
  &lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; a[] = {1,2,3,4,5,6,7,8,9,};&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;&lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;a dizisindeki eleman sayısı: &quot;&lt;/span&gt;&amp;lt;&amp;lt;&lt;span style=&quot;color: #7b1fa2;&quot;&gt;strlen&lt;/span&gt;(a);&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Yukarıda ki örnekte bir dizi tanımladık ve bu dizinin eleman sayısını yazdırdık.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;puts() ve gets()&lt;br /&gt;&lt;/h3&gt;&lt;div&gt;Diziye &#39;cin&#39; ifadesine benzer bir yapı ile yani kullanıcının girdiği değeri eleman olarak almak için &lt;b&gt;gets() &lt;/b&gt;fonksiyonu kullanılır. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Eğer dizideki tüm elemanları yazdırmak istiyorsak bunun için de &lt;b&gt;puts() &lt;/b&gt;fonksiyonu kullanılır.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;
  &lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; isim[20];&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;&lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;İsminizi Giriniz: &quot;&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #7b1fa2;&quot;&gt;gets&lt;/span&gt;(isim);&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;&lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;İsminiz: &quot;&lt;/span&gt;&amp;lt;&amp;lt;&lt;span style=&quot;color: #7b1fa2;&quot;&gt;puts&lt;/span&gt;(isim);&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bu örnekte kullanıcıdan bir veri aldık ve bu veriyi dizimize eleman olarak atadık, ardından ise bu dizimizin tüm elemanlarını yazdırdık.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Dizi Kopyalamak - strcpy()&lt;/h3&gt;&lt;div&gt;&lt;b&gt;strcpy() &lt;/b&gt;fonksiyonunun kullanımı çok basittir, içerisine iki tane parametre alır. İlk parametre kopyalanacak olan dizi ve ikinci parametre ise kopyalamak istediğiniz nesne.&lt;/div&gt;&lt;div&gt; &lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #f4a900;&quot;&gt;char&lt;/span&gt; s[] = {&lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;a&quot;&lt;/span&gt;,&lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;b&quot;&lt;/span&gt;};&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #f4a900;&quot;&gt;char&lt;/span&gt; harf = &lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;c&quot;&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;strcpy&lt;/span&gt;(s,harf);&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;s[2]; &lt;span style=&quot;color: #41b375;&quot;&gt;// c&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Evet, C++ içerisinde arraylar için birçok fonksiyon vardır, fakat bu yazımda bunları anlatmak ile yetineceğim. Daha sonradan bu fonksiyonların tamamını bir yazıda anlatırım. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h1 style=&quot;text-align: left;&quot;&gt;Struct&lt;/h1&gt;&lt;div&gt;Birbirleri ile ilişki içinde bulunan veri kümelerine &lt;b&gt;Struct &lt;/b&gt;denir. Dizilere çok benzerler, bunun nedeni içerisinde birden fazla eleman bulunur fakat aralarında ki tek fark; diziler aynı türden eleman barındırırken struct&#39;lar farklı türden yapılar bulundurabilirler. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aslında bu yapı, Python&#39;da ki Listelere daha fazla benzer, çünkü Listelerde de olduğu gibi bu yapı farklı türden veritipleri bulundurabilir ama arraylarda böyle bir şey söz konusu değildir. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;pre&gt;&lt;b&gt;struct&lt;/b&gt; yapı ismi{&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;pre&gt;&amp;nbsp;veri tipi;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;pre&gt;}nesne ismi;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Struct tanımlamak için yukarıda ki formül kullanılır. Dikkat etmemiz gereken ayrıntı; structure tanımlarken &lt;b&gt;main &lt;/b&gt;fonksiyonunun dışına tnaımlanır. İlk önce &lt;b&gt;struct &lt;/b&gt;ifadesini yazarak, cpp&#39;ye bir structure tanımlayacağımızı belirtiriz. Ardından ise o yapıya vermek istediğimiz isimi yazarız ve süslü parantez açarız. Süslü parantezlerin sonuna o yapıya temsili bir isim veririz verilmese de yapı çalışır. Yapıya temsili isim vermemizin sebebi; &lt;b&gt;main&lt;/b&gt; fonksiyonunda veya başka bir fonksiyonda yapıyı bu temsili isim ile çağırırız, yapı ismi ile değil. Süslü parantezlerimizin içerisine değişkenler tanımlar ve bitiririz. Şimdi isterseniz bir örnek üzerinden açıklayalım.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #0f9d58;&quot;&gt;#include&lt;/span&gt; &amp;lt;iostream&amp;gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #4285f4;&quot;&gt;using&lt;/span&gt; &lt;span style=&quot;color: #9c27b0;&quot;&gt;namespace&lt;/span&gt; &lt;span style=&quot;color: #9c27b0;&quot;&gt;std&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;b&gt;struct&lt;/b&gt; tarih{&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; gun;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; ay;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; yil;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;}zaman;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;void&lt;/span&gt; tarihgetir(){&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;zaman.gun = 10;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;zaman.ay = 11;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;zaman.yil = 1938;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt;zaman.gun&amp;lt;&amp;lt;&lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;/&quot;&lt;/span&gt;&amp;lt;&amp;lt;zaman.ay&amp;lt;&amp;lt;&lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;/&quot;&lt;/span&gt;&amp;lt;&amp;lt;zaman.yil&amp;lt;&amp;lt;&lt;span style=&quot;color: #4285f4;&quot;&gt;&quot;- &lt;span class=&quot;st&quot;&gt;∞&lt;/span&gt;&quot;&lt;/span&gt;;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;}&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;int&lt;/span&gt; main(){&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;tarihgetir();&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #7b1fa2;&quot;&gt;return&lt;/span&gt; 0;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;

&lt;/div&gt;&lt;div&gt;Örnekte bir tane void fonksiyon içerisine yapı elemanlarını tanımladık. Farkettiğiniz gibi yapının temsili ismini; yapı elemanlarını tanımlarken kullanıyoruz. Eğer temsili isim vermezsek bu temsili ismi yapı elemanlarını tanımlayacağımız yerde de verebiliriz. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;whodivstyles&quot;&gt;&lt;b&gt;struct&lt;/b&gt; tarih{&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; x;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;&lt;span style=&quot;color: #f4a900;&quot;&gt;int&lt;/span&gt; y;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;whodivstyles&quot;&gt;};&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #9c27b0;&quot;&gt;int&lt;/span&gt; main(){&lt;/div&gt;&lt;div&gt;tarih sayi;&lt;/div&gt;&lt;div&gt;sayi.x = 10;&lt;/div&gt;&lt;div&gt;sayi.y=15;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #7b1fa2;&quot;&gt;return&lt;/span&gt; 0;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;}&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Kaynak&lt;/h3&gt;&lt;div&gt;Muhammed Mastar, Süha Eriş - C++ (syf. 65-82),(syf. 113-122)&lt;br /&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Evet arkadaşlar, C++ dili üzerinde Array(dizi) ve Struct(yapı) nesnelerini gördük. Umarım açıklayıcı olabilmişimdir. İyi Günler!.&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/8185828555472389275/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/06/c-structure-ve-arraylar.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/8185828555472389275'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/8185828555472389275'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/06/c-structure-ve-arraylar.html' title='C++ Structure ve Arraylar'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH26d8T431VKSXWMES9BmsjEOMmoULkLjPa0SB-GIfNOPwBCeuoChrzXV15GGhby5C4iiaWiLidjd2z3y7Jv743jrBOFntmoUTCT2fgzbltDGPL4COaz8iu_NByPfyGVrbXg0iOS4ZgTXt/s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-570806787544446077</id><published>2020-05-25T15:18:00.002-07:00</published><updated>2020-05-27T04:38:57.522-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Algoritma"/><title type='text'>Algoritma Nedir?</title><content type='html'>&lt;div&gt;Algoritma bir amaca ulaşmak için belirlenen durumları eleyerek sonuca ulaşmak için kullanılıan yöntemdir. İlk algoritma örneklerine &lt;a href=&quot;https://tr.wikipedia.org/wiki/Harezmi&quot; target=&quot;_blank&quot;&gt;Harezmi&lt;/a&gt;&#39;nin &#39;Hisab el-cebir&#39; kitabında görülmüştür. Algoritma adı Harezmi&#39;nin latin adı olan &#39;Algoritmi&#39; den gelmektedir. Algoritma hazırlanırken var olan bütün durumların göz önüne alınması gerekir. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mesela Bir ampülün yanıp yanmaması durumu ve yanmama durumunda neler yapılacağını aşağıda ki şemada ki gibi hazırlanması algoritmanın temel örneklerindendir. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6bT_QL4Wgw3EupH4HUoCQnCC5T7FgUdSm6PCczlC9i4RKRdcFKnSyQc1vo5lW_lkyfXsw5b2pAJmpQeMMx3qY2BTVqaqbjaICKoJSQNsPy4dT01odh3YV4MVGq5cEo6crR0lK3OeA5Y-z/&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;2160&quot; data-original-width=&quot;2160&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6bT_QL4Wgw3EupH4HUoCQnCC5T7FgUdSm6PCczlC9i4RKRdcFKnSyQc1vo5lW_lkyfXsw5b2pAJmpQeMMx3qY2BTVqaqbjaICKoJSQNsPy4dT01odh3YV4MVGq5cEo6crR0lK3OeA5Y-z/s320/algoritmi.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yukarıda ki örneğe akış şeması veya akış diyagramı denilmektedir ve durumun hangi şartlarda nasıl devam edeceğini bir örnek şekil ile gösterilmesi ile oluşur.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algoritmanın temel olarak kullanım alanı programlama ve matematiktir. Programlama demişken zaten var olan tüm programlama dilleri temel algoritmaların üzerine kuruludur. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algoritma kurarken bütün olasılıkları işin içerisine katmamız ve var olan durumun şansa göre ilerlemesini beklemememiz gerekir.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mesela not ortalamasına göre ortalamanın beşlik sisteme dönüştüren bir program yazıyorsunuz. Burada kuracağınız algoritma aşağıda ki akış şemasında ki gibi olmalıdır. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZcKIUZq1aMTJKooOKx3fS2Voyzi1X7nMg_34qYUf_qeqgpLwcyA3goqEpV8J2lY52Ixsl9ttx0BnwuuknDhEXUITJhMcDs1MokKLbb8oh5x3uRnpKn5A9zqIQsrLa5Fvne8hauMxch8uh/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3508&quot; data-original-width=&quot;2480&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZcKIUZq1aMTJKooOKx3fS2Voyzi1X7nMg_34qYUf_qeqgpLwcyA3goqEpV8J2lY52Ixsl9ttx0BnwuuknDhEXUITJhMcDs1MokKLbb8oh5x3uRnpKn5A9zqIQsrLa5Fvne8hauMxch8uh/w283-h400/algorithm.png.png&quot; width=&quot;283&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Şema üzerinde de gördüğünüz üzere algoritma sizi sonuca götüren basamaklar bütünüdür. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/570806787544446077/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/05/algoritma-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/570806787544446077'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/570806787544446077'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/05/algoritma-nedir.html' title='Algoritma Nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6bT_QL4Wgw3EupH4HUoCQnCC5T7FgUdSm6PCczlC9i4RKRdcFKnSyQc1vo5lW_lkyfXsw5b2pAJmpQeMMx3qY2BTVqaqbjaICKoJSQNsPy4dT01odh3YV4MVGq5cEo6crR0lK3OeA5Y-z/s72-c/algoritmi.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-2993413507353113288</id><published>2020-04-26T03:30:00.001-07:00</published><updated>2020-08-12T08:20:22.440-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Selenium"/><category scheme="http://www.blogger.com/atom/ns#" term="Test"/><title type='text'>Selenium Nedir?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaZczHIBCT-jBv0zmF9ZF5Gog0HYnaOyuobgpPIIdkFZZKpOTvHCw2H_ujgPo6wk0qvZHnnne1TEIoYleL0pxGS8pJ_cWPLi-12sbhhouapxZJxtWg1e4V6a-stgvWBg9FDagN34XMI3jf/s1600/Ads%25C4%25B1z+tasar%25C4%25B1m%25281%2529.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;315&quot; data-original-width=&quot;560&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaZczHIBCT-jBv0zmF9ZF5Gog0HYnaOyuobgpPIIdkFZZKpOTvHCw2H_ujgPo6wk0qvZHnnne1TEIoYleL0pxGS8pJ_cWPLi-12sbhhouapxZJxtWg1e4V6a-stgvWBg9FDagN34XMI3jf/s640/Ads%25C4%25B1z+tasar%25C4%25B1m%25281%2529.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;style&gt;
.highlightersl {
background:#21252e;
padding:7px;
  color:#fff;
}
&lt;/style&gt;&lt;br /&gt;
&lt;h2&gt;Nedir?&lt;/h2&gt;Selenium, browserlar için geliştirilmiş bir otomasyon aracıdır. Bu araç ile istediğiniz web sayfasını açıp web sayfasında istediğiniz işlemi yapabilirsiniz. Genellikle test işlemleri için kullanılır.&lt;br /&gt;
&lt;br /&gt;
İstediğiniz işlemi yapabilirsiniz derken kastım; web sayfasını açmak, web sayfasında ki buttonları ve inputları doldurmak gibi işlemleri yapabilirsiniz. Zaten selenium genellikle web sayfalarında ki inputları, buttonları vb. test etmek için kullanılıyor.&lt;br /&gt;
&lt;br /&gt;
Selenium&#39;u bir dilde değil 6 farklı dilde kullanabilirsiniz. Bu diller: &lt;b&gt;Java, Python, C#, Ruby, JavaScript ve Kotlin&lt;/b&gt;&#39;dir. Ben bu yazımda sizlere Java ve Python için nasıl kullanabileceğinizi anlatacağım.&lt;br /&gt;
&lt;br /&gt;
Selenium&#39;u &lt;b&gt;kendi IDE&#39;sinden&lt;/b&gt; veya &lt;b&gt;WebDriver&lt;/b&gt; kullanarak çalıştırabilirsiniz. Aralarında ki fark şöyledir: Selenium IDE browser kullanarak test işlemi gerçekleştirmenizi sağlar ve bir program şeklindedir. WebDriver yöntemi ise hazır veya kendi hazırladığımız web projelerini test etmek için kullanılır ve bir arayüze sahip değildir sadece kullandığınız browser açılır. Sizlere bu yazımda benim de sıklıkla kullandığım WebDriver yöntemini açıklayacağım.&lt;br /&gt;
&lt;br /&gt;
Daha dürüst olmak gerekirse Selenium IDE&#39;yi fazla kullanmadım ve mantığını da fazla bilmiyorum. Ben genellikle test otomasyonu yazarken WebDriver kullanırım.&lt;br /&gt;
&lt;br /&gt;
Ama kısaca bir google search işleminin sonucunda söyleyebilirim ki Selenium IDE bir tarayıcı eklentisi olarak geliyor ve eklenti üzerinden komutlar aracılığı ile test işlemlerini gerçekleştiriyorsunuz. Zaten &lt;a href=&quot;https://www.selenium.dev/documentation/en/getting_started/quick/#ide&quot; target=&quot;_blank&quot;&gt;kendi web sayfasında&lt;/a&gt; şöyle açıklıyor:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: #6b6b6b;&quot;&gt;&quot;Selenium test &#39;vakalarınızı&#39;! geliştirmek için kullandığınız araçtır.  Kullanımı kolay bir Chrome ve Firefox eklentisidir ve genellikle test  senaryoları geliştirmenin en etkili yoludur. Selenium komutlarını kullanarak o öğenin bağlamı tarafından tanımlanan  parametrelerle kullanıcıların tarayıcıdaki işlemlerini sizin için  kaydeder. Bu sadece zaman tasarrufu sağlamakla kalmaz, aynı zamanda  Selenium script söz dizimini öğrenmenin de mükemmel bir yoludur.&quot;&lt;/div&gt;&lt;br /&gt;
Eğer diğer dillerde de kullanmak istiyorsanız bu &lt;a href=&quot;https://www.selenium.dev/documentation/en/&quot; target=&quot;_blank&quot;&gt;adresi&lt;/a&gt; ziyaret ederek nasıl kullanıldığını görebilirsiniz. Zaten ben de göstereceğim örnekleri bu kaynak sayesinde gösteriyorum. Şimdi isterseniz nasıl kullanabileceğinizi anlatayım.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Nasıl Kullanılır?&lt;/h2&gt;İlk önce aşağıda ki adreslerden kullandığınız tarayıcıya göre bir webdriver indiriyorsunuz.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://chromedriver.chromium.org/downloads&quot; style=&quot;color: #fff; text-decoration: none;&quot;&gt;&lt;button style=&quot;background: #21252e; border: 1px solid #e5e5e5;color: #fff;&quot;&gt;Chrome&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/mozilla/geckodriver/releases&quot; style=&quot;color: #fff; text-decoration: none;&quot;&gt;&lt;button style=&quot;background: #21252e; border: 1px solid #e5e5e5;color: #fff;&quot;&gt;Mozilla Firefox&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Webdriver&#39;i indirdikten sonra proje dizininize atıyorsunuz. Şimdi ise test otomasyonunu yazmaya başlayalım.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Python&lt;/h3&gt;İlk önce sisteminize Selenium kütüphanesini indirmeniz gerekmekte. Bunun için aşağıda ki komutu kullanabilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;$ pip3 install selenium&lt;/div&gt;&lt;br /&gt;
Selenium&#39;u indirdikten sonra proje dosyanıza selenium üzerinden WebDriver kütüphanesini import etmeniz gerekmektedir. Bunun için ise python dosyanızın üst kısımlarına:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;from selenium import webdriver&lt;/div&gt;&lt;br /&gt;
İfadesini ekliyorsunuz.&lt;br /&gt;
&lt;br /&gt;
Ardından ise indirdiğimiz Webdriver&#39;i tanımlıyoruz.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;# Mozilla Firefox İçin&lt;br /&gt;
&lt;br /&gt;
path = &quot;./geckodriver&quot;&lt;br /&gt;
browser = webdriver.Mozilla(executable_path=path)&lt;br /&gt;
&lt;br /&gt;
# Chrome için &lt;br /&gt;
&lt;br /&gt;
path = &quot;./chromedriver&quot;&lt;br /&gt;
browser = webdriver.Chrome(executable_path=path) &lt;/div&gt;&lt;br /&gt;
Şimdi artık tüm işlemlerimizi &#39;&lt;b&gt;browser&lt;/b&gt;&#39; değişkeni üzerinden yapacağız. İlk önce tarayıcı üzerinden herhangi bir web sitesi açalım. Bunun için &#39;&lt;b&gt;get()&lt;/b&gt;&#39; fonksiyonunu kullanacağız. Get fonksiyonu hiçbir işlem yapmadan sadece web sayfasını açmak için kullanılır.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;browser.get(&quot;https://google.com&quot;)&lt;/div&gt;&lt;br /&gt;
İfadesini yazdıktan sonra dosyanızı kaydedip çalıştırdıktan sonra göreceksiniz ki tarayıcınızda belirttiğiniz adres açılmış bir şekilde açılacaktır.&lt;br /&gt;
&lt;br /&gt;
Şimdi ise açtığımız sayfada bir yere tıklama işlemini yapalım. Tıklama işlemi için &lt;b&gt;&#39;click()&#39;&lt;/b&gt; fonksiyonu kullanılır &lt;b&gt;click&lt;/b&gt; fonksiyonunu kullanmadan önce hangi öğe üzernde işlem yapmamız gerektiğini seçmemiz gerekiyor. &lt;br /&gt;
&lt;br /&gt;
Öğe seçmek için çeşitli yöntemler vardır, sayfanın HTML kodlarına erişebilmemiz gerekir. Eğer kendi projenizi test ediyorsanız zaten sayfa elemanlarını biliyorsunuzdur. Ama eğer başka bir web sitesini test ediyorsanız tarayıcınızda ki denetle veya öğeyi incele özelliğini kullanabilirsiniz. Yaklaşık 8 tane öğe seçmek için kullanılabilecek fonksiyon vardır fakat bu yazım ders niteliğinde olmadığı için sizlere 6 tanesini anlatacağım. Bunlar aşağıda ki gibi kullanılırlar&lt;code&gt;.&lt;/code&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;code&gt;find_element_by_id()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;find_element_by_class_name()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;find_element_by_name()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;find_element_by&lt;/code&gt;&lt;code&gt;&lt;code&gt;_tag_name()&lt;/code&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;code&gt;find_element_by_link_text()&lt;/code&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;code&gt;find_element_by_xpath()&amp;nbsp;&amp;nbsp;&lt;/code&gt; &lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Seçmek istediğiniz öğenin özelliğine göre(&#39;class,id&#39;) yukarıda ki öğelerden bir tanesini seçebilirsiniz. Mesela class&#39;ı btn olan bir button var ve biz bu buttona erişebilmek için aşağıda ki gibi bir yöntem izlememiz gerekiyor.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;button = browser.find_element_by_class_name(&quot;btn&quot;)&lt;/div&gt;&lt;br /&gt;
Gözünüze garip gelebilecek iki tane fonksiyon yazılı yukarıda. Bunlar: &#39;find_element_by_link_text&#39; ve &#39;find_element_by_xpath&#39; bunlar göze garip gelebilir ama kullanımı gayet kolaydır. İlk önce &#39;find_element_by_link_text&#39;in anlatımından başlayayım. Mesela bir tane link oluşturdunuz.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;&amp;lt;a href=&quot;#&quot;&amp;gt;LinkYazisi&amp;lt;/a&amp;gt;&lt;/div&gt;&lt;br /&gt;
Ardından ise içerisine bir kelime yazdınız. &#39;find_element_by_link_text&#39; fonksiyonunu kullandığınız zaman Link&#39;e verdiğiniz yazıyı seçmeniz gerekir.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;link = find_element_by_link_text(&quot;LinkYazisi&quot;)&lt;/div&gt;&lt;br /&gt;
Şeklinde kullanıyorsunuz. Xpath seçeneği de kolaydır. Erişmek istediğiniz öğenin xpath&#39;ını yazmanız gerekir ama eğer bilmiyorsanız kolay bir yolu vardır. Seçmek istediğiniz öğenin üzerine gelip öğeyi denetle&#39;ye tıklayın. Ardından ise seçili öğenin üzerine sağ tıklayıp copy kısmından xpath seçeneğine gelin.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK1BGGajXrrBnwHNv50cxfCN4PwoJ8c12Dh8VRWJs4JLPW6SsgUSoK5eSrk8FBvijGtvaBi8D4u62t3wKdnyktB12MhbESyW7zsUjwRTnG8jL6HyNTB7OQpZrk-q87iILHTsso43K6HNa3/s1600/seleniumnedirxpathss.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;735&quot; data-original-width=&quot;1209&quot; height=&quot;388&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK1BGGajXrrBnwHNv50cxfCN4PwoJ8c12Dh8VRWJs4JLPW6SsgUSoK5eSrk8FBvijGtvaBi8D4u62t3wKdnyktB12MhbESyW7zsUjwRTnG8jL6HyNTB7OQpZrk-q87iILHTsso43K6HNa3/s640/seleniumnedirxpathss.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Ardından ise fonksiyon içerisin parametre olarak xpath&#39;ı yapıştırın.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;xpathsecimi = browser.find_element_by_xpath(&quot;/html/body/div/div[3]/form/div[2]/div[1]/div[1]/div/div[2]/input&quot;)&lt;/div&gt;&lt;br /&gt;
Bu şekilde &#39;find_element_by_xpath&#39; seçeneğini de kullanabilirsiniz.&lt;br /&gt;
&lt;br /&gt;
Şimdi konuyu fazla saptırmadan sizlere click() fonksiyonunu nasıl kullanabileceğinizi anlatayım. Bir öğe seçiyorsunuz ve ardından ise click fonksiyonunu aşağıda ki gibi kullanıyorsunuz.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;btn = browser.find_element_by_class_name(&quot;btn&quot;)&lt;br /&gt;
btn.click()&lt;/div&gt;&lt;br /&gt;
şeklinde istediğiniz öğeye tıklama işlemini yapabilirsiniz. İsterseniz şimdi de seçili bir input&#39;a metin yazdıralım. Bu işlem için &#39;send_keys&#39; fonksiyonunu kullanabilirsiniz. click() fonksiyonunda olduğu gibi bir öğe seçiyorsunuz ve ardından da send_keys fonksiyonunu kullanabilirsiniz. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;searchinput = browser.find_element_by_xpath(&quot;/html/body/div/div[3]/form/div[2]/div[1]/div[1]/div/div[2]/input&quot;)&lt;br /&gt;
searchinput.click()&lt;br /&gt;
searchinput.send_keys(&quot;KilavuzKod&quot;)&lt;/div&gt;&lt;br /&gt;
Kullanımı bu şekildedir. Evet arkadaşlar Python için selenium kullanımı bu şekildedir. Daha çok örnek için&lt;a href=&quot;https://www.selenium.dev/documentation/en/&quot; target=&quot;_blank&quot;&gt; kendi web adresini&lt;/a&gt; ziyaret edebilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Java&lt;/h3&gt;Selenium&#39;u kullanabilmek için aşağıda ki kütüphaneleri import etmeniz gerekir.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;import org.openqa.selenium.By; &lt;br /&gt;
import org.openqa.selenium.WebDriver;&lt;br /&gt;
import org.openqa.selenium.WebElement; &lt;br /&gt;
import org.openqa.selenium.support.ui.ExpectedCondition;&lt;br /&gt;
import org.openqa.selenium.chrome.ChromeDriver; &lt;br /&gt;
import org.openqa.selenium.mozilla.MozillaDriver;&lt;br /&gt;
import org.openqa.selenium.support.ui.WebDriverWait;&lt;/div&gt;&lt;br /&gt;
Ardından ise webdriver&#39;ı tanıtmamız gerekir.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;# Chrome&lt;br /&gt;
System.setProperty(&quot;webdriver.chrome.driver&quot;, &quot;./chromedriver&quot;);&lt;br /&gt;
WebDriver browser = new ChromeDriver();&lt;br /&gt;
&lt;br /&gt;
# Mozilla&lt;br /&gt;
&lt;br /&gt;
System.setProperty(&quot;webdriver.mozilla.driver&quot;, &quot;./geckodriver&quot;);&lt;br /&gt;
WebDriver browser = new MozillaDriver();&lt;/div&gt;&lt;br /&gt;
Tanıttıktan sonra artık işlemlerimize başlayabiliriz. Java&#39;da Python&#39;da ki gibi nesne seçme işlemi kolay değildir. Evet&amp;nbsp; elemanlar aynı ama yöntem farklıdır. Mesela tekrardan Google&#39;a gidelim ve basit bir search işlemi yaptıralım.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlightersl&quot;&gt;browser.get(&quot;https://google.com&quot;);&lt;br /&gt;
browser.findElement(By.xpath(&quot;/html/body/div/div[3]/form/div[2]/div[1]/div[1]/div/div[2]/input&quot;)).sendKeys(&quot;KilavuzKod&quot;);&lt;br /&gt;
browser.findElement(By.xpath(&quot;/html/body/div/div[3]/form/div[2]/div[1]/div[2]/div[2]/div[2]/center/input[1]&quot;)).click();&lt;/div&gt;&lt;br /&gt;
Dosyayı çalıştırdığınız zaman Google&#39;da &#39;KilavuzKod&#39; kelimesini arayacaktır.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Kaynak&lt;/h4&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Selenium_(software)&quot;&gt;Wikipedia&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.selenium.dev/documentation/en/&quot;&gt;Selenium Web Site&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://devnot.com/2015/test-otomasyon-araci-seleniumu-taniyalim/&quot;&gt;Devnot&lt;/a&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/2993413507353113288/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/selenium-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/2993413507353113288'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/2993413507353113288'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/selenium-nedir.html' title='Selenium Nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaZczHIBCT-jBv0zmF9ZF5Gog0HYnaOyuobgpPIIdkFZZKpOTvHCw2H_ujgPo6wk0qvZHnnne1TEIoYleL0pxGS8pJ_cWPLi-12sbhhouapxZJxtWg1e4V6a-stgvWBg9FDagN34XMI3jf/s72-c/Ads%25C4%25B1z+tasar%25C4%25B1m%25281%2529.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-1136095337846607982</id><published>2020-04-20T12:50:00.002-07:00</published><updated>2020-08-12T08:23:00.013-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><category scheme="http://www.blogger.com/atom/ns#" term="Next.js"/><category scheme="http://www.blogger.com/atom/ns#" term="NodeJS"/><category scheme="http://www.blogger.com/atom/ns#" term="React"/><category scheme="http://www.blogger.com/atom/ns#" term="Sunucu"/><title type='text'>Next.JS Nedir ?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimU4C9YSVuHq8LgfHn1gXhDFpFQewG_kujp1tjskmYKazyxHu3itVOXr-U9kreppIxIHlKEnU9MOClEYTleYXHrPJmdR-6MA9H1xmHCMWLzJHFTov0LqSlIqU6Y8QBtWVL7JdJK-TK0tIA/s1600/nextjlogo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;315&quot; data-original-width=&quot;560&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimU4C9YSVuHq8LgfHn1gXhDFpFQewG_kujp1tjskmYKazyxHu3itVOXr-U9kreppIxIHlKEnU9MOClEYTleYXHrPJmdR-6MA9H1xmHCMWLzJHFTov0LqSlIqU6Y8QBtWVL7JdJK-TK0tIA/s1600/nextjlogo.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;style&gt;
.highlighternx {
background:#21252e;
padding:6px;
  color:#fff;
}
&lt;/style&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Nedir? &lt;/h2&gt;
NextJS, bir React FrameWork&#39;üdür. Sunucu taraflı web uygulamaları yazmak için kullanılır. Ücretsiz ve Open source olan NextJS&#39;; Node.js ve Babel.js kullanır.&lt;br /&gt;
&lt;br /&gt;
NextJS&#39;in frontend kısmı tamamen JavaScript kodlarının içine yazılan HTML kodları ile sağlanır. &lt;u&gt;Tabi bu işlemi &lt;b&gt;SSR&lt;/b&gt; yani &lt;b&gt;&#39;Server Side Rendering&#39; &lt;/b&gt;ile gerçekleştirir,&lt;/u&gt; bu ayrıntı bizlere birçok avantaj kazandırır.&lt;br /&gt;
&lt;br /&gt;
Bu avantajlardan kastım; NextJS uygulamaları daha hızlı ve performanslı bir şekilde çalışmaktadır. Bunun yanı sıra web siteniz SEO uyumlu ve frontend kısmı yazılan Component&#39;ler sayesinde daha güzel görünmektedir.&lt;br /&gt;
&lt;br /&gt;
Daha önceden &#39;React&#39; ile uğraştıysanız bu terimler size fazla yabancı gelmeyecektir. Dediğim gibi NextJS bir React framework&#39;üdür fakat react yapısını fazla andırmıyor. NextJs ile ReactDom ile uğraşmıyorsunuz, bunun yanı sıra Webpack ile de uğraşmıyorsunuz. Bu da sizin işinizi önemli bir şekilde hızlandırıyor.&lt;br /&gt;
&lt;br /&gt;
NextJs&#39;in bir özelliği daha var; &lt;b&gt;Code Splitting&lt;/b&gt;. Google&#39;da &#39;code splitting&#39; diye arama yaptığınız zaman hemen en üst kısımlarda&lt;a href=&quot;https://tr.reactjs.org/docs/code-splitting.html&quot; target=&quot;_blank&quot;&gt; React&#39;ın web sitesi&lt;/a&gt; çıkıyor. React&#39;ın kendi web sitesinde bir açıklaması var:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;font-size: 16px; margin: left;&quot;&gt;
&quot;Uygulamanıza kod bölümlemesi yapmak, kullanıcının anlık olarak ihtiyaç duyduğu şeylerin “lazy yüklenmesine” yardımcı olarak uygulama performansını önemli ölçüde arttırabilir. Uygulamanızdaki toplam kod miktarını azaltmamış olsanız da kullanıcının hiçbir zaman ihtiyaç duymayacağı kodu yüklemekten kaçınmış ve ilk yükleme sırasında ihtiyaç duyulan kodu azaltmış olursunuz.&quot;&lt;/blockquote&gt;
Code splitting kısaca sadece işe yarar kodları çalıştırıyor ve bu sayede web site performansını önemli ölçüde arttırıyor. &lt;br /&gt;
&lt;br /&gt;
React uygulamalarında olduğu gibi en sevdiğim özelliğinden birisi de siz dosyanızı kaydettiğiniz andan itibaren tarayıcıda kendisini yeniliyor. Sürekli olarak tarayıcıda &#39;F5&#39; yapmaktan kurtarıyor.&lt;br /&gt;
&lt;br /&gt;
İçerisine HTML kodlarını yazıyoruz ve Nextjs bunu render ediyor demiştik ama yalın bir şekilde html kodlarını yazamıyoruz. Bu kodların &#39;JSX&#39; formatında olması gerekir, tabi bu biraz style kısmını etkiliyor ama bazı html taglarını JSX formatında değiştirmemiz gerekiyor.&lt;br /&gt;
&lt;br /&gt;
Mesela bir html tag&#39;ine &#39;class&#39; özelliği ve ismi vermek istiyorsak normalde &#39;&amp;lt;div class=&#39;divClassName&#39;&amp;gt;&amp;lt;/div&amp;gt;&#39; şeklinde veriyoruz. Fakat JSX formatında bir div&#39;e veya herhangi bir HTML tag&#39;ine class vermek için &#39;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighternx&quot;&gt;
&amp;lt;div className=&#39;divClassName&#39;&amp;gt;&amp;lt;/div&amp;gt;&#39; &lt;/div&gt;
şeklinde bir yol izlememiz gerekmekte. Gördüğünüz gibi &#39;class&#39; yerine &#39;className&#39; gibi bir anahtar sözcük kullandık .&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Nasıl Kullanılır?&lt;/h2&gt;
NextJS&#39;i kullanabilmek için NodeJS&#39;in kurulu olması gerekmektedir. Eğer NodeJS kurulu değil ise &lt;a href=&quot;https://kilavuzkod.blogspot.com/2020/04/nodejs-nedir.html&quot; target=&quot;_blank&quot;&gt;&#39;NodeJS Nedir&#39;&lt;/a&gt; adlı yazımı ziyaret etmenizi tavsiye ederim. NodeJS kurulu ise NextJS&#39;i kurma işlemine geçebiliriz. Bu işlemi iki şekilde yapabiliriz, otomatik olarak ve manual olarak.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Otomatik Kurulum&lt;/h3&gt;
İlk olarak Npm&#39;in sizin için otomatik olarak proje oluşturması için &#39;next-app&#39; komutu!. Bu komutu terminal ekranına gelip aşağıda ki şekilde yazarsanız npm bir proje oluşturacaktır. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighternx&quot;&gt;
$ npm init next-app &lt;br /&gt;
$ yarn create next-app&lt;/div&gt;
&lt;br /&gt;
Komutunu yazdıktan sonra size proje ismini soracaktır, proje ismini yazdıktan sonra işleminiz tamamdır.Bu komut sayesinde siz uğraşmadan npm kendisi sizin için bir NextJS App&#39;i oluşturuyor. Bu komutu kullanmadan önce NodeJS&#39;in 10.13+ üstü olması gerekmektedir. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Manual Kurulum&lt;/h3&gt;
Bu sefer ise kendimiz bir NextJS projesi oluşturalım. İlk önce proje dizininize gelip aşağıda ki komutu yazmanız gerekmektedir.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighternx&quot;&gt;
$ mkdir pages&lt;br /&gt;
$ npm init -y&lt;br /&gt;
$ npm install react reactdom next --save &lt;/div&gt;
&lt;br /&gt;
Bu komutu yazdıktan sonra göreceksiniz ki proje dizininizde pages adında bir dosya ve bir &lt;b&gt;&#39;package.json&#39;&lt;/b&gt; dosyası oluştu. Şimdi ise bu package.json dosyasını düzenlememiz gerekmekte. Bunun için package.json dosyasını bir text editöründe açalım ve &quot;script&quot;:{} kısmını aşağıda ki gibi değiştirelim.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighternx&quot;&gt;
,&quot;script&quot;:{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;dev&quot;:&quot;next&quot;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;build&quot;:&quot;next build&quot;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;start&quot;:&quot;next start&quot;&lt;br /&gt;
}&lt;/div&gt;
&lt;br /&gt;
package.json dosyamızın &quot;script&quot; kısmını değiştirdikten sonra yapmamız gereken tek şey &#39;pages&#39; klasörünün içerisine  &#39;index.js&#39; adında bir JavaScript dosyası oluşturmamız gerekiyor.&lt;b&gt;&lt;u&gt; NextJS dosyaları render ederken pages klasörüne bakıyor ve buradaki dosyaları sunucuda çalıştırıyor. index.js dosyası projemizin ana dizini yani &#39;home&#39; sayfasıdır.&lt;/u&gt;&lt;/b&gt; Oluşturduktan sonra text editörümüzde index.js dosyasını açalım ve içeriğini aşağıda ki gibi dolduralım ve kaydedelim. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighternx&quot;&gt;
export default function Index(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;h3&amp;gt;$Hello World!&amp;lt;/h3&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;
}&lt;/div&gt;
&lt;br /&gt;
veya&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighternx&quot;&gt;
const Index = {} =&amp;gt; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;h3&amp;gt;$Hello World!&amp;lt;/h3&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;
};&lt;/div&gt;
&lt;br /&gt;
Bu işlemi gerçekleştirdikten sonra tekrar proje dizinimize gelip serverimizi başlatmamız gerekmekte. Bunun için ise terminal ekranına:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighternx&quot;&gt;
$ npm run dev&lt;/div&gt;
&lt;br /&gt;
yazdıktan sonra &#39;localhost:3000&#39; adresinde projemizi görüntüleyebiliriz. localhost:3000 adresine geldikten sonra tarayıcımızda $Hello World&#39; yazısını görebileceğiz. Projede yapacağınız tüm değişiklikleri bu pages sayfasının içinde ki JavaScript dosyaları ile sağlıyoruz. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Routers&lt;/h3&gt;
NextJS&#39;in en iyi özelliklerinden bir tanesi de &#39;&lt;b&gt;pages&lt;/b&gt;&#39; klasörünün içerisinde ki dosyaları direkt olarak rotalıyor. Mesela basitçe şöyle anlatayım. &lt;b&gt;index.js &lt;/b&gt;dosyası bizim &#39;&lt;b&gt;/&lt;/b&gt;&#39; dizinimiz oluyor. &#39;pages&#39; klasörünün içerisine &lt;b&gt;deneme.js&lt;/b&gt; adında bir dosya oluşturup içerisini doldurduktan sonra &#39;&lt;b&gt;/deneme&lt;/b&gt;&#39; dizinine geldiğiniz zaman deneme.js dosyasını görüyorsunuz. Bu son derece iyi bir özellik ve tekrar tekrar dediğim gibi işimizi bayağı hızlandırıyor.&lt;br /&gt;
&lt;br /&gt;
NextJS için kendi web sitesinde geniş bir dökümantasyonu var. Bu dökümantasyona &lt;a href=&quot;https://nextjs.org/docs/getting-started&quot; target=&quot;_blank&quot;&gt;bu adresten&lt;/a&gt; ulaşabilirsiniz. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Kaynak&lt;/h4&gt;
- &lt;a href=&quot;https://nextjs.org/docs/getting-started&quot; target=&quot;_blank&quot;&gt;NextJS Website&lt;/a&gt;&lt;br /&gt;
- &lt;a href=&quot;https://medium.com/@serhanozcanjs/next-js-nedir-tercih-edilmeli-midir-kullan%C4%B1c%C4%B1-i%CC%87ncelemesi-3a8d9ebe395d&quot; target=&quot;_blank&quot;&gt;Medium&lt;/a&gt;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/1136095337846607982/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/nextjs-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/1136095337846607982'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/1136095337846607982'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/nextjs-nedir.html' title='Next.JS Nedir ?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimU4C9YSVuHq8LgfHn1gXhDFpFQewG_kujp1tjskmYKazyxHu3itVOXr-U9kreppIxIHlKEnU9MOClEYTleYXHrPJmdR-6MA9H1xmHCMWLzJHFTov0LqSlIqU6Y8QBtWVL7JdJK-TK0tIA/s72-c/nextjlogo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-8865255581874416423</id><published>2020-04-16T15:11:00.001-07:00</published><updated>2020-04-16T19:58:42.119-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bootstrap"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="Jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="Tasarım"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Sitesi"/><title type='text'>Bootstrap Nedir?</title><content type='html'>&lt;style&gt;.highlighterbt{background:#21232e;color:#fff;padding:6px 0px 6px 8px;border-radius:4px}&lt;/style&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYdV-_1ms-un3GCwiidsjh8kXKuUD86r_D1lM9N7LRTzDsCBZsKtC8DBMlnfbWC5UoDDJCs-iL5dZu7kU9Hqfy2AYlEumrKhNOvmyLw_MbcsI_RPsl0j81iZm7je3H3o8B1sbdTzxkRj4B/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1080&quot; data-original-width=&quot;1080&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYdV-_1ms-un3GCwiidsjh8kXKuUD86r_D1lM9N7LRTzDsCBZsKtC8DBMlnfbWC5UoDDJCs-iL5dZu7kU9Hqfy2AYlEumrKhNOvmyLw_MbcsI_RPsl0j81iZm7je3H3o8B1sbdTzxkRj4B/s400/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h3&gt;Nedir?&lt;/h3&gt;Bootstrap, web uygulamaları veya web siteleri için kullanılabilir, open source yani açık kaynak kodlu ve ücretsiz bir önyüz çatısıdır. Mobil uyumlu yani responsive sayfalar için biçilmiş kaftandır. Bootstrap içerisinde HTML ve CSS şablonlarını içerir ve bu sayede navigasyon, button, card, toast gibi nesneleri html formatında yazmak mümkündür.&lt;br /&gt;
&lt;br /&gt;
Bu öğelerin hepsinin nasıl web sayfasına ekleneceğini öğrenmek istiyorsanız bu &lt;a href=&quot;https://getbootstrap.com/docs/4.0/components&quot; target=&quot;_blank&quot;&gt;adresi&lt;/a&gt;&amp;nbsp;ziyaret edebilirsiniz. Şimdi isterseniz nasıl kullanabileceğinizi anlatayım.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Nasıl Kullanılır?&lt;/h3&gt;İlk önce &lt;a href=&quot;https://getbootstrap.com/&quot; target=&quot;_blank&quot;&gt;Bootstrap&lt;/a&gt;&amp;nbsp;adresini ziyaret ederek Css ve JavaScript dosyalarını indirip proje dizininize taşıyıp ve ardından html dosyasına tanımlayabilirsiniz. Ama bunlar ile uğraşmak istemiyorsanız aşağıda ki CDN kayıtlarını web sayfanızın &#39;head&#39; kısmına ekleyebilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighterbt&quot;&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css&quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&quot;https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;br /&gt;
Bootstrap&#39;i projenize eklerken dikkat etmeniz gereken bir ayrıntı var. Jquery&#39;i de eklemeniz gerekmektedir. Bunun sebebi ise Bootstrap&#39;in çalışırken Jquery&#39;i kullanıyor olmasıdır. Eğer Jquery&#39;i eklemezseniz consol ekranında size bir hata verecektir. Son olarak responsive yani mobil uyumlu bir web sayfası hazırlıyorsanız aşağıda ki kodu da head tagları eklemeniz gerekmektedir. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighterbt&quot;&gt;&amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,initial-scale=1&quot;&amp;gt;&lt;/div&gt;&lt;br /&gt;
Bu kodları da ekledikten sonra web sayfanızın head tagleri aşağıda ki gibi olmalıdır.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighterbt&quot;&gt;&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;title&amp;gt;Bootstrap Sayfası&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;script src=&quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;/div&gt;&lt;br /&gt;
Artık bootstrap&#39;i projemize dahil ettiğimize göre nesneleri nasıl oluşturabileceğinize bakalım. Daha önceden de dediğim gibi Bootstrap&#39;in sayfasına gidebilir veya &lt;a href=&quot;https://www.w3schools.com/bootstrap4/default.asp&quot; target=&quot;_blank&quot;&gt;W3Schools&lt;/a&gt; adresinden istediğiniz nesnenin nasıl oluşturulduğuna bakabilirsiniz. &lt;br /&gt;
&lt;br /&gt;
Şimdi, ilk önce kendi nesnenizi nasıl oluşturabileceğinizi anlatayım. İlk önce class&#39;ı &lt;b&gt;&#39;container&#39;&lt;/b&gt; olan bir div oluşturalım. Ardından da içerisine class&#39;ı &lt;b&gt;&#39;row&#39;&lt;/b&gt; olan bir div daha oluşturalım. Bu row div&#39;ini satır olarak düşünebilirsiniz. Eğer alt alta iki tane nesne oluşturacaksanız aynı container&#39;in içerisine iki tane class&#39;ı row olan div oluşturabilirsiniz. Son olarak row divinin içerisine class&#39;ı &lt;b&gt;&#39;col&#39;&lt;/b&gt; olan bir div oluşturmanız gerekiyor. Bu &#39;col&#39; divini ise gruplar gibi düşünebilirsiniz. Yani yan yana iki tane nesne oluşturacaksanız aynı &#39;row&#39; divinin içerisine iki tane &#39;col&#39; divi oluşturmanız gerekmektedir. &lt;br /&gt;
&lt;br /&gt;
Col divlerinin boyutlarını belirlemeniz için belirli class isimleri vardır. Bunlar &lt;b&gt;col-lg-6&lt;/b&gt; şeklinde kullanılırlar. Boyutlar aşağıda ki gibidir. &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-col = &amp;lt;576px&lt;/li&gt;
&lt;li&gt;-col-sm- = &amp;gt;= 576px&lt;/li&gt;
&lt;li&gt;-col-md- = &amp;gt;= 768px&lt;/li&gt;
&lt;li&gt;-col-lg- = &amp;gt;=992px&lt;/li&gt;
&lt;li&gt;-col-xl- = &amp;gt;= 1200px&lt;/li&gt;
&lt;/ul&gt;Boyutlar için daha ayrıntılı bilgiye bu &lt;a href=&quot;https://getbootstrap.com/docs/4.0/layout/grid/&quot; target=&quot;_blank&quot;&gt;adresten&lt;/a&gt; ulaşabilirsiniz. Şimdi örnek bir div oluşturalım.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighterbt&quot;&gt;&amp;lt;div class=&quot;container&quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&quot;row&quot; style=&quot;text-align:center;background:orange;color:#fff;&quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&quot;col-sm-8&quot;&amp;gt;&lt;br /&gt;
Hello World;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;br /&gt;
Bu div artık responsive bir şekilde çalışacaktır. Buraya örneğini bırakmak istedim ama sanırım blogger buna izin vermiyor. Ama &lt;a href=&quot;https://codepen.io/lynx0/pen/GRpZmPz&quot; target=&quot;_blank&quot;&gt;CodePen&lt;/a&gt; adresimden bu div&#39;in örneğine bakabilirsiniz. Bıraktığım Codepen adresini ziyaret ettiğinizde görebileceğiniz üzere bir de navbar bulunuyor. Bunu Bootstrap&#39;in kendi web sitesinden aldığım örnek ile ekledim. Sizler de dediğim gibi Bootstrap&#39;in kendi web sitesinden &#39;Component&#39; kısmında tüm nesnelere ulaşabilirsiniz. &lt;br /&gt;
&lt;br /&gt;
Eğer Codepen&#39;de ki &lt;a href=&quot;https://codepen.io/lynx0/pen/GRpZmPz&quot; target=&quot;_blank&quot;&gt;örneğimi&lt;/a&gt; ziyaret ederseniz göreceğiniz üzere Bootstrap web sayfaları hazırlarken geliştiricilere çok hız kazandırıyor. Zaten dünya genelinde bu kadar fazla kullanılmasının sebebi de bizlere hız kazandırmasıdır. &lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
Evet arkadaşlar, bu yazımda sizler ile Bootstrap&#39;in ne olduğunu gördük. Umarım işinize yaramıştır ve açık bir dil ile anlatabilmişimdir. İyi Günler!.</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/8865255581874416423/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/bootstrap-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/8865255581874416423'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/8865255581874416423'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/bootstrap-nedir.html' title='Bootstrap Nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYdV-_1ms-un3GCwiidsjh8kXKuUD86r_D1lM9N7LRTzDsCBZsKtC8DBMlnfbWC5UoDDJCs-iL5dZu7kU9Hqfy2AYlEumrKhNOvmyLw_MbcsI_RPsl0j81iZm7je3H3o8B1sbdTzxkRj4B/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-250974858597072935</id><published>2020-04-02T19:56:00.001-07:00</published><updated>2020-08-12T08:27:11.928-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><category scheme="http://www.blogger.com/atom/ns#" term="NodeJS"/><category scheme="http://www.blogger.com/atom/ns#" term="Sunucu"/><title type='text'>Node.js Nedir?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIahJ3cWA30yJ8WG8YMQycA55uFEA-xaH_X4M-KVr2d3kT_xMQgD-WhyC51i0HrSTMLJuxqJI6v0XPpxkKfJxC_PKODfPsNTvWwfV2_Qd6jqeNyaw4Uvm218WJNXbr3dh6RIyyttzBDhEd/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1080&quot; data-original-width=&quot;1080&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIahJ3cWA30yJ8WG8YMQycA55uFEA-xaH_X4M-KVr2d3kT_xMQgD-WhyC51i0HrSTMLJuxqJI6v0XPpxkKfJxC_PKODfPsNTvWwfV2_Qd6jqeNyaw4Uvm218WJNXbr3dh6RIyyttzBDhEd/s320/2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Node.js, sunucu taraflı çalışan uygulamalar için geliştirilmiş bir &lt;b&gt;runtime environment (çalışma ortamı)&lt;/b&gt;&#39;dir. Dil olarak ise JavaScript&#39;i kullanır. &lt;br /&gt;
&lt;br /&gt;
Node.js Google V8 JavaScript motorunu kullanır. İçerisindeki kütüphaneler ile (ör:&lt;a href=&quot;https://expressjs.com/&quot;&gt;Express&lt;/a&gt;) tek başına sunucu görevini görür. Bu nedenle dünya üzerinde popüler ve popüleritesi giderek artmaktadır. Ayrcıa açık kaynaklıdır bu nedenle sürekli olarak geliştirilmektedir. &lt;br /&gt;
&lt;br /&gt;
Node.js asenkron çalışması özelliği ile sunucu tarafında rakiplerine göre daha hızlıdır. Bunun yanı sıra yüksek veri aktarabilmesi ve yüksek ölçeklenebilirliği Node.js&#39;in avantajlarındandır. &lt;br /&gt;
&lt;br /&gt;
Şimdi Node.js&#39;in ne olduğundan kısaca bahsettiğime göre nasıl kurulduğunu ve nasıl kullanabileceğinizden bahsedeyim.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Kurulum&lt;/h2&gt;&lt;br/&gt;&lt;h3&gt;Windows&lt;/h3&gt;Windows&#39;ta Node.js kurulumu için Node.js&#39;in kendi web sitesinden &#39;&lt;b&gt;LTS&lt;/b&gt;&#39; sürümünden kendi sistem mimarinize göre olan &#39;&lt;b&gt;.msi&lt;/b&gt;&#39; uzantılı dosyasını indirmeniz gerekmektedir. İndirdikten sonra normal setup işlemlerini gerçekleştirdikten sonra kurulum tamamlanmış olacaktır.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Linux&amp;nbsp;&lt;/h3&gt;Linux için kurulum ise terminalden yapılabilir seviyededir. Yapmanız gereken tek şey; terminal ekranına:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;$ sudo apt-get install nodejs&lt;/div&gt;&lt;br /&gt;
yazmaktır. Son olarak Node için paket yükleyici yani &lt;b&gt;npm&lt;/b&gt; (Node Package Manager)&#39;i yüklemeniz gerekiyor. Bunun için de tekrar terminal ekranına:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;$ sudo apt-get install npm&lt;/div&gt;&lt;br /&gt;
komutunu yazıyoruz ve artık Linux için Node.js&#39;i kurulumunu tamamlamış olduk, artık kullanabiliriz.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Paket Kurulumu&lt;/h2&gt;Node için paket kurulumu işlemine geçmek istiyorum. Node.js&#39;te paket kurmak için &#39;&lt;b&gt;npm install&lt;/b&gt; &lt;b&gt;paketadi&lt;/b&gt;&#39; komutunu kullanıyoruz.&amp;nbsp; Paketlerimizi iki türlü kurabiliriz; global ve local olarak paketlerimizi kuruyoruz.&lt;br /&gt;
&lt;br /&gt;
Eğer sürekli paket indirme işlemini gerçekleştirmek istemiyorsanız paketlerinizi global olarak kurabilirsiniz. Global olarak kurmak için &#39;&lt;b&gt;-g&lt;/b&gt;&#39; ifadesini ekliyoruz yani global olarak bir paket indirmek istediğimizde komutumuz aşağıda ki gibi olmalıdır&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;$ npm install -g paketadi&lt;/div&gt;&lt;br /&gt;
şeklinde komutumuzu yazdıktan sonra paketimiz global olarak kuruluyor. Peki global olarak paket kurulduğunda ne oluyor? Bunun cevabı npm paket dosyalarını sistemde ki klasörüne indiriyor ve her projenizde tekrardan o paketi indirmenize gerek kalmıyor.&lt;br /&gt;
&lt;br /&gt;
Eğer paketimizi local olarak kurmak istersek komut satırımız aşağıda ki gibi olmalıdır&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;$ npm install --save paketadi &lt;/div&gt;&lt;br /&gt;
Peki paketlerimizi local olarak kurduğumuzda ne farkediyor? Eğer paketlerimizi local olarak kurarsak npm paketi sizin üzerinde çalıştığınız klasöre kuruyor ve başka bir projede tekrar o paketi indirmeniz gerekiyor. Fakat local olarak kurmanızın şöyle bir avantajı var; taşınabilirliği arttırıyor. Mesela projenizi kişisel bilgisayarınızda hazırladınız ve başka bir cihazda çalıştırmak istiyorsunuz o zaman paketleri tek tek kurmak yerine local olarak kurulmuş paketleri tek bir komut ile taşıdığınız cihaza kurabiliyorsunuz.&lt;br /&gt;
&lt;br /&gt;
Peki bu nasıl sağlanıyor? npm local olarak kurulan paketi &#39;package.json&#39; dosyasına kaydediyor ve başka bir cihaza taşındığı zaman aşağıda ki komut ile package.json dosyasına kaydedilen paketleri kuruyor.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;$ npm install&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;Kullanım&lt;/h2&gt;&lt;br /&gt;
Node.js&#39;i kullanmak için bir klasör oluşturalım ve kod editörümüzü açalım. İlk önce &#39;&lt;b&gt;package.json&lt;/b&gt;&#39; adında bir json dosyası oluşturmamız gerekmektedir, dosya adının package olmasına dikkat etmenizi tavsiye ederim. Package.json dosyamızın içeriğini basit bir şekilde aşağıda ki gibi doldurmanız gerekmektedir. İlk önce süslü parantezler açılır ve bu süslü parantezlerin içerisine projemize vermek istediğimiz özellikleri yazıyoruz. &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;{&lt;br /&gt;
&quot;name&quot;:&quot;Proje-Adi&quot;,&lt;br /&gt;
&quot;version&quot;:&quot;1.0.0&quot;,&lt;br /&gt;
&quot;script&quot;:{&lt;br /&gt;
&quot;start&quot;:&quot;node serverdosyasi.js&quot;&lt;br /&gt;
}&lt;br /&gt;
}&lt;/div&gt;&lt;br /&gt;
Bu şekilde package.json dosyamızı oluşturmamız gerekmektedir. Burada dikkat etmemiz gereken şey projemizin özelliklerini tırnaklar içerisinde belirtmemiz gerekmektedir. Projemizin versiyonunu adını, kimin yazdığını bu package.json dosyasına kaydedebilirsiniz.&lt;br /&gt;
&lt;br /&gt;
Yukarıda ki &lt;b&gt;script&lt;/b&gt; özelliği örnek olarak eğer projemizi başlatmak istersek &#39;&lt;b&gt;node serverdosyasi.js&lt;/b&gt;&#39; yazmak yerine sadece &#39;&lt;b&gt;npm start&lt;/b&gt;&#39; yazdığımız zaman projemiz başlatma görevini görüyor.&lt;br /&gt;
&lt;br /&gt;
Eğer paket kurduğumuz zaman local olarak kurarsak package.json dosyasına &#39;dependencies&#39; şeklinde kaydedildiğiniz görürsünüz.&lt;br /&gt;
&lt;br /&gt;
Package.json dosyamızı oluşturduğumuza göre, artık server dosyamızı oluşturabiliriz.&lt;br /&gt;
&lt;br /&gt;
Server dosyamızı&amp;nbsp; bir JavaScript dosyası şeklinde oluşturmamız gerekmektedir. Genellikle &#39;app&#39; veya &#39;server&#39; adında oluşturulur. JavaScript dosyamızı oluşturduktan sonra serverimizi yapılandırmaya başlayabiliriz. Server dosyamızda serverimizi yapılandırırız ve adres yönetimini yani istenilen adrese göre bir dosya gösterme işlemini yapabiliriz.&lt;br /&gt;
&lt;br /&gt;
Bu yazımda sizlere temel olarak bir server dosyası oluşturmayı öğretmeyeceğim. Bunun yerine daha hızlı bir şekilde bu işlemleri gerçekleştirmenizi sağlayacak olan &#39;&lt;b&gt;Express&lt;/b&gt;&#39; kütüphanesi ile server oluşturmayı ayrıca dosya yönetimi için ise &#39;&lt;b&gt;fs&lt;/b&gt;&#39; kütüphanesinden bahsedeceğim. Ayrıca sürekli olarak npm start yazmamanız için &#39;&lt;b&gt;nodemon&lt;/b&gt;&#39; kütüphanesini kullanacağız, bu kütüphane sürekli olarak değişiklik yaptığınız zaman npm start komutunu yazmamanızı sağlıyor. Nodemon kütüphanesi ile sadece bir kere npm start yapıyoruz ve artık sürekli olarak server dosyasını başlatmamız gerekmiyor. Bunlar için terminal ekranımıza&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;$ npm install --save express &lt;br /&gt;
$ npm install --save nodemon&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
komutlarını yazıyoruz ve projemize dahil ediyoruz. Ardından ise server dosyamızda bu kütüphaneleri çağırmamız gerekiyor. Bunlar için ise&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;const fs = require(&#39;fs&#39;);&lt;br /&gt;
const express = require(&#39;express&#39;);&lt;br /&gt;
const app = express();&lt;/div&gt;&lt;br /&gt;
şeklinde yazıyoruz. Burada gördüğünüz gibi app adında bir değişken daha oluşturdum. Bunun sebebi ise işlemlerimizi app adı üzerinde Express ile yapacağız. &lt;br /&gt;
&lt;br /&gt;
Şimdi index.html adında bir html dosyası oluşturalım ve bunun içeriğini rastgele bir şekilde dolduralım. Ardından ise server dosyamıza gelip aşağıda ki yazıları ekleyelim.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;app.get(&quot;/&quot;,function(req,res){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.readFile(&quot;index.html&quot;,function(err,data){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;res.write(data);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;res.end(&quot;&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;
});&lt;br /&gt;
app.listen(&quot;4000&quot;);&lt;/div&gt;&lt;br /&gt;
şeklinde dolduruyoruz.&lt;br /&gt;
&lt;br /&gt;
Yukarıda gördüğünüz &lt;u&gt;app.get &lt;/u&gt;fonksiyonu ile serverimize gelen isteği yani adres çubuğuna ne yazılırsa ona göre bir işlem yapmamızı sağlıyor. &lt;u&gt;fs.readFile&lt;/u&gt; fonksiyonu ise belirttiğimiz dosyayı bize göstermeye yarıyor. Son olarak &lt;u&gt;app.listen() &lt;/u&gt;fonksiyonu ise serverimizin kaçıncı portta çalışmasını istiyorsak onu belirlememize yarıyor.&lt;br /&gt;
&lt;br /&gt;
Şimdi; package.json dosyamızı oluşturduk, server dosyamızı oluşturduk ve index adında bir html dosyası oluşturduk. Artık terminale &#39;npm start&#39; yazdıktan sonra sunucumuz hazır ve adres çubuğuna&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;localhost:4000&lt;/div&gt;&lt;br /&gt;
yazdığımız zaman bize index.html dosyasının geldiğini göreceksiniz.&lt;br /&gt;
&lt;br /&gt;
Son olarak belirtmem gereken bir husus var; eğer nodemon kütüphanesini kullanacak isek package.json dosyamızda ki script bölümünde yazan &#39;node dosyaadi.js&#39; kısmını &#39;nodemon dosyaadi.js&#39; şeklinde değiştirmeniz gerekmekte. Eğer npm start komutunu kullanmak istemiyorsak, &lt;b&gt;nodemon dosyaadi.js&lt;/b&gt; komutunu yazdığımız zaman aynı sonucu alırız.&lt;br /&gt;
&lt;br /&gt;
Sizlere benim ilk başlarda yaşadığım bir sorunu anlatmak istiyorum. Yazdığım projeyi tablet gibi diğer cihazlardan  localhost:port yazarak erişim sağlayamıyorsunuz. Bu durumu şöyle anlatayım; mesela bilgisayarınızda projenizi hazırladınız ve telefonunuzda denemek istiyorsunuz, işte bu durumda telefon tarayıcınıza localhost yazarak projeye erişim sağlayamıyorsunuz. Bunun için bilgisayarınızın ip adresini öğrenmeniz gerekmekte. Ip adrsinizi öğrendikten sonra ise tarayıcımızın adres çubuğuna &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;http://ipadresiniz:portsayisi&lt;/div&gt;&lt;br /&gt;
şeklinde yazmanız gerekiyor. Bu sayede bilgisayarınızdan yazdığınız node projesine telefon veya tablet gibi diğer cihazlardan erişim sağlayabiliyorsunuz.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Örnek&lt;/h2&gt;Sizlere Node.js&#39;in nasıl çalıştığını parçalar halinde anlatmaya çalıştım fakat bunların hepsini bir bütün olarak görüp çalıştırmanız sizler için daha faydalı olabileceğini düşündüm.&lt;br /&gt;
&lt;br /&gt;
Yukarıda yazan her şeyi bir projede topladım ve bu projeyi inceleyerek node.js&#39;in çalışma mantığını anlayabilirsiniz.&lt;br /&gt;
&lt;br /&gt;
Projede yukarıda anlattığım bilgilerden başka hiçbir şey bulunmuyor fakat siz bu kodları birazcık kurcalayarak daha iyi kavrayabilirsiniz.&lt;br /&gt;
&lt;br /&gt;
Projeye Github adresimden ulaşabilirsiniz linkini aşağıya bırakıyorum.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Enes-Kasapoglu/KilavuzKod-Node-Example.git&quot; style=&quot;color: white;&quot;&gt;&lt;button style=&quot;background: #21252e;color:#fff; border: 1px solid #fff; height: 40px; width: 80px;&quot;&gt;Github&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Dosyaları Github adresimden indirebilir veya terminale aşağıda ki komutu yazabilirsiniz&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; padding: 6px;color:#fff;&quot;&gt;git clone https://github.com/Enes-Kasapoglu/KilavuzKod-Node-Example.git&lt;/div&gt;&lt;br /&gt;
komutunu yazdıktan sonra dosyalar bulunduğunuz dizine inecektir.&lt;br /&gt;
&lt;br /&gt;
Dosyaları indirdikten sonra yapmanız gereken şey terminal ekranına &#39;npm start&#39; ve tarayıcınızda adres çubuğuna &#39;localhost:4000&#39; yazmak.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Kaynaklar&lt;/b&gt;&lt;br /&gt;
Wikipedia&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
Bu yazımda sizlere Node.js nedir onu açıklamaya çalıştım ve sizler için bir örnek hazırladım. Umarım açıklayıcı olabilmişimdir. İyi günler!.</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/250974858597072935/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/nodejs-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/250974858597072935'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/250974858597072935'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/nodejs-nedir.html' title='Node.js Nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIahJ3cWA30yJ8WG8YMQycA55uFEA-xaH_X4M-KVr2d3kT_xMQgD-WhyC51i0HrSTMLJuxqJI6v0XPpxkKfJxC_PKODfPsNTvWwfV2_Qd6jqeNyaw4Uvm218WJNXbr3dh6RIyyttzBDhEd/s72-c/2.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-6821613260097986682</id><published>2020-04-01T15:20:00.000-07:00</published><updated>2020-04-01T15:20:01.745-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Tasarım"/><category scheme="http://www.blogger.com/atom/ns#" term="Tkinter"/><title type='text'>Birim Çevirme Programı</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Herkese merhabalar, &lt;b&gt;Python3&lt;/b&gt; ve daha önceden kullanımını anlattığım&amp;nbsp;&lt;b&gt;Tkinter&lt;/b&gt; modülü ile sizler için bir &lt;b&gt;Birim Çevirme&lt;/b&gt; programı hazırladım. &lt;br /&gt;
&lt;br /&gt;
Programın işlevi; sadece bazı sıcaklık ve uzunluk birimlerini birbirlerine çeviriyor. Programı iki şekilde hazırladım, Tkinter modülünü kullanarak ve consol ekranında kullanabileceğiniz şekilde yazdım. Consol için olan kod biraz daha ayrıntılı oldu ama yine de GUI kısmı da işinizi görecektir.&lt;br /&gt;
&lt;br /&gt;
Tkinter modülünü kullanarak yaptığım kısımın biraz daha geliştirilmesi gerekmekte ama dediğim gibi bu haliyle de işinizi görecektir.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Projeyi Github adresimden alabilirsiniz, aşağıya linkini bırakıyorum.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Enes-Kasapoglu/Unit-Converter.git&quot;&gt;&lt;button style=&quot;background: #21232e; border: 1px solid #fff; color: white; height: 40px; width: 80px;&quot;&gt;Github&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Veya hiç uğraşmadan konsol ekranına &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background: #21232e; color: white; padding: 8px;&quot;&gt;
$ git clone https://github.com/Enes-Kasapoglu/Unit-Converter.git&lt;/div&gt;
&lt;br /&gt;
yazarak var olduğunuz dizine indirebilirsiniz.&lt;br /&gt;
&lt;br /&gt;
Projeyi Python3 ile çalıştırmanızı tavsiye ederim. Bunun yanı sıra eğer çevirme programını consol ekranından başlatmak istiyorsanız ConsoleConverter klasöründe ki dosyayı çalıştırmanız gerekmektedir. &lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
Evet arkadaşlar, umarım bu proje işinize yaramıştır. İyi Günler! </content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/6821613260097986682/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/birim-cevirme-program.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/6821613260097986682'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/6821613260097986682'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/04/birim-cevirme-program.html' title='Birim Çevirme Programı'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-3327798313461891046</id><published>2020-03-18T13:05:00.001-07:00</published><updated>2020-08-12T08:29:51.434-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Tasarım"/><category scheme="http://www.blogger.com/atom/ns#" term="Tkinter"/><title type='text'>Python ile Ansiklopedi Projesi</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Daha öncelerden kullanımını anlattığım Tkinter Modulü ile sizler için bir &lt;u&gt;&lt;b&gt;Ansiklopedi&lt;/b&gt;&lt;/u&gt; projesi hazırladım.&lt;br /&gt;
&lt;br /&gt;
Bu projeyi yine bir Python modulü olan &lt;b&gt;Wikipedia&lt;/b&gt; modülünü kullandım. Wikipedia modulü kısaca Wikipedia&#39;da ki bulunan yazıları size getiriyor, bu sayede python ile wikipedia verilerine ulaşmış oluyoruz.&lt;br /&gt;
&lt;br /&gt;
Wikipedi modülünün kullanımı için daha detaylı bir kaynağa &lt;a href=&quot;https://pypi.org/project/wikipedia/&quot; target=&quot;_blank&quot;&gt;buradan&lt;/a&gt; ulaşabilirsiniz.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Projede aşağılarda ekran görüntüsünü verdiğimde göreceğiniz üzere bir &lt;u&gt;normal şekilde&lt;/u&gt; arama sonucunu getirme bir de arama sonucunu &lt;u&gt;sesli&lt;/u&gt; bir şekilde söyleyen iki farklı modu var.&lt;br /&gt;
&lt;br /&gt;
Projenin kaynak kodlarını Github adresimden ulaşabilirsiniz. Github adresimi sizler için aşağıya bırakıyorum. Ya da Linux kullanıyorsanız&amp;nbsp; aşağıda ki komutu uçbirime yazmanız yeterli olacaktır.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #21232e; border: 1px solid #fff; padding: 6px;color:#fff;&quot;&gt;
$ git clone https://github.com/Enes-Kasapoglu/Ansiklopedi.git&lt;/div&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.blogger.com/git%20clone%20https://github.com/Enes-Kasapoglu/Ansiklopedi.git&quot; style=&quot;color: white; text-decoration: none;&quot;&gt;&lt;button style=&quot;background-color: #21232e; border: 1px solid #fff; padding: 6px;color:#fff;&quot;&gt;Github&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Github adresimden dosyaları indirdikten sonra birkaç modül indirmeniz gerekmektedir. Bunlar için tekrar uçbirime gelip sırasıyla&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #21232e; border: 1px solid #fff; padding: 6px;color:#fff;&quot;&gt;
$ pip install tkinter&lt;br /&gt;
$ pip3 install playsound&lt;br /&gt;
$ pip3 install wikipedia&lt;br /&gt;
$ pip3 install gtts&lt;/div&gt;
&lt;br /&gt;
yazmanız yeterli olacaktır.&lt;br /&gt;
&lt;br /&gt;
Tüm bunları tamamladıktan sonra uçbirime gelip sadece;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #21232e; border: 1px solid #fff; padding: 6px;color:#fff;&quot;&gt;
$ python3 main.py&lt;/div&gt;
&lt;br /&gt;
yazdıktan sonra programı kullanabilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Ekran Görüntüsü&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTiPfBomoCItJsiblOdAfQNzbqJad29igdDKqwZP6VUeSNeDFUgJuPW8xt6eM-UmO0Bcdz0e8ZSXncq-P-DoGO4DGzEG9GkD8ZwLLnm1pFsX6UG82c2gTu5EpLrOlHO2lbcXDE4OpcwvEv/s1600/AnsiklopediSS.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;433&quot; data-original-width=&quot;660&quot; height=&quot;261&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTiPfBomoCItJsiblOdAfQNzbqJad29igdDKqwZP6VUeSNeDFUgJuPW8xt6eM-UmO0Bcdz0e8ZSXncq-P-DoGO4DGzEG9GkD8ZwLLnm1pFsX6UG82c2gTu5EpLrOlHO2lbcXDE4OpcwvEv/s400/AnsiklopediSS.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
Evet arkadaşlar, bu yazımda sizler için hazırladığım Ansiklopedi projesini kısaca anlattım ve kaynak kodlarını sundum. Umarım işinize yaramıştır. İyi Günler.!</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/3327798313461891046/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/03/python-ile-ansiklopedi-projesi.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/3327798313461891046'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/3327798313461891046'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/03/python-ile-ansiklopedi-projesi.html' title='Python ile Ansiklopedi Projesi'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-5269105904792050213</id><published>2020-03-12T13:22:00.001-07:00</published><updated>2020-03-13T15:38:15.820-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ISO"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><category scheme="http://www.blogger.com/atom/ns#" term="İşletim Sistemi"/><title type='text'>Linux Ortamında Windows ISO&#39;su Yazdırmak</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiobzV-rXNKXx7SrmewbAiOw2MER3HT85s2jVSweuDgMNz7XX_gZI6pmj8OtpQXbgNN2lJHwkwi1GI43XClG7r5QP2bP8Gg9wM1USfhmgReYD_Qyfpt6m3GYYiAEOaErPV_Cx0zvne8BZV3/s1600/8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiobzV-rXNKXx7SrmewbAiOw2MER3HT85s2jVSweuDgMNz7XX_gZI6pmj8OtpQXbgNN2lJHwkwi1GI43XClG7r5QP2bP8Gg9wM1USfhmgReYD_Qyfpt6m3GYYiAEOaErPV_Cx0zvne8BZV3/s320/8.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows ortamında Linux ISO&#39;su yazdırmak kolaydır fakat Linux ortamında Windows ISO&#39;su yazdırmak için aynı şeyi söyleyemeyeceğim.&lt;br /&gt;
&lt;br /&gt;
Daha önce ki yazımda belirttiğim gibi Linux üzerinden belirli programlar ve terminal ekranında belirli komutlar ile iso yazdırabilirsiniz. Ancak bu yöntem ile Windows ISO&#39;su yazdıramazsınız.&lt;br /&gt;
&lt;br /&gt;
Bunun sebebi ise &#39;dd&#39; komutu UEFI olarak değil de ISO9606 formatında biçimlendiriyor ve bu yüzden çoğu BIOS ekranında tanımlanamıyor.&lt;br /&gt;
&lt;br /&gt;
Ancak Windows ISO&#39;su hazırlamak için daha kolay bir yöntem göstereceğim. Üstelik bir komut ile.&lt;br /&gt;
&lt;br /&gt;
Bu komut; &lt;u&gt;&lt;b&gt;mount &lt;/b&gt;&lt;/u&gt;komutudur. Bu komut ile ISO dosyasının içeriğini görüp bir işlem yapacağız.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
İlk Önce&lt;/h3&gt;
İlk önce GParted uygulamasını açıyorsunuz. Eğer yoksa aşağıdaki komut ile yükleyebilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highiso&quot;&gt;
$ sudo apt-get install gparted&lt;/div&gt;
&lt;br /&gt;
komutunu yazdıktan sonra karşınıza gelen (E/y) yazısına &#39;E&#39; dedikten sonra indirebilirsiniz. &lt;br /&gt;
&lt;br /&gt;
GParted uygulamasını açtıktan sonra sağ üst ekrandan disk bölümünü seçmeniz gerekmektedir.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkI5k74vgb2p-9q7gRzdt597MNVnZDLi78JZ4sJBbjEmeLKztGZoILiT_mRPTxdL9NAW9W5rh4AKFxuZcXjBdixhvxfIaK407GoB3tozgpCIast0tYP0Nyu8UndcdSOW_-f1_frAoY_zUY/s1600/WindowsWriteISOGparted.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;147&quot; data-original-width=&quot;773&quot; height=&quot;75&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkI5k74vgb2p-9q7gRzdt597MNVnZDLi78JZ4sJBbjEmeLKztGZoILiT_mRPTxdL9NAW9W5rh4AKFxuZcXjBdixhvxfIaK407GoB3tozgpCIast0tYP0Nyu8UndcdSOW_-f1_frAoY_zUY/s400/WindowsWriteISOGparted.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
/dev/sdb yazan kısımda eğer flash disk&#39;e yazdıracaksanız /dev/sdb kısmını seçmeniz ve ardından gelen ekrandan alt kısımda flash diskinizi seçmeniz gerekmektedir.&lt;br /&gt;
&lt;br /&gt;
Flash Disk&#39;i seçtikten sonra seçtiğiniz flash diske sağ tıklayıp eğer disk ayrılmamış ise ayır demeniz. Ayırılmış ise Biçimlendir kısmına mousenizi getirmeniz gerekir ardından yan taraftaki formatlardan &#39;&lt;u&gt;&lt;b&gt;fat32&lt;/b&gt;&lt;/u&gt;&#39; formatını seçmeniz gerekiyor. Son olarak gelen uyarıyı onayladıktan sonra diskiniz biçimlendirilecektir.&lt;br /&gt;
&lt;br /&gt;
Ardından tekrar disk üzerine sağ tıklayıp &#39;bayrakları yönet&#39; seçeneğine gelip yan taraftan &#39;&lt;u&gt;&lt;b&gt;boot&lt;/b&gt;&lt;/u&gt;&#39; ve &#39;&lt;b&gt;&lt;u&gt;lda&lt;/u&gt;&lt;/b&gt;&#39; seçeneklerini seçiyoruz ve kapatıyoruz. Artık diskimiz kullanıma hazır.&lt;br /&gt;
&lt;br /&gt;
Şimdi ise ISO dosyasının içine erişmemiz gerekmektedir. Bunu bildiğim kadarıyla Linux üzerinde hiçbir program ile yapamıyoruz ancak &#39;mount&#39; komutu ile diske ISO dosyasını bağlamanız dosyanın içeriğine ulaşmanızı sağlar.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
İçeriğe ulaşmak&lt;/h3&gt;
ISO dosyasının içeriğine ulaşmak için uçbirime aşağıda ki komutu yazmanız gerekmektedir.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highiso&quot;&gt;
$ mount isodosyaniz.iso&lt;/div&gt;
&lt;br /&gt;
Komutunu yazdıktan sonra bir disk gibi ISO dosyasına erişebilirsiniz. Şimdi yapmanız gereken; ISO dosyasına gelmek ve içerisinde ki her şeyi biçimlendirdiğimiz diskin içerisine kopyalıyorsunuz. Burada dikkat etmeniz gereken şey ISO dosyasının içeriğinin tamamının kopyalanmasıdır.&lt;br /&gt;
&lt;br /&gt;
Bütün dosyaları diskimize aktardıktan sonra işlemimiz tamamdır, artık Windows işletim sistemini kurabilirsiniz. Bu yöntemi &#39;dd&#39; komutu ile yazdıramadığınız çoğu ISO dosyası üzerinde kullababilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
Evet, bu yazımda sizlere Linux ortamında Windows ISO&#39;su yazdırma yöntemini anlattım, umarım işinize yaramıştır. İyi Günler!. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/5269105904792050213/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/03/linux-ortamnda-windows-isosu-yazdrmak.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/5269105904792050213'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/5269105904792050213'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/03/linux-ortamnda-windows-isosu-yazdrmak.html' title='Linux Ortamında Windows ISO&#39;su Yazdırmak'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiobzV-rXNKXx7SrmewbAiOw2MER3HT85s2jVSweuDgMNz7XX_gZI6pmj8OtpQXbgNN2lJHwkwi1GI43XClG7r5QP2bP8Gg9wM1USfhmgReYD_Qyfpt6m3GYYiAEOaErPV_Cx0zvne8BZV3/s72-c/8.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-112893538901571912</id><published>2020-02-26T16:00:00.001-08:00</published><updated>2020-02-26T16:01:32.988-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Python ile Arduino Serial Port Verilerine Ulaşmak</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpAt4cOWsPeqNztE9gcvGk3pEuWRR5LBmvIIE0u4F4WR80WLa7Pr8aFddnv0mOoyyjLOKE2I1TsyKlfNbUFbu_fhil6gUPYxWeAb8OhHgOtZvE4h7dU_NHdn9_TAGvt9tj7HAnvz0QAJLJ/s1600/Birka%25C3%25A7+sat%25C4%25B1r+g%25C3%25B6vde+metni+ekle.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpAt4cOWsPeqNztE9gcvGk3pEuWRR5LBmvIIE0u4F4WR80WLa7Pr8aFddnv0mOoyyjLOKE2I1TsyKlfNbUFbu_fhil6gUPYxWeAb8OhHgOtZvE4h7dU_NHdn9_TAGvt9tj7HAnvz0QAJLJ/s320/Birka%25C3%25A7+sat%25C4%25B1r+g%25C3%25B6vde+metni+ekle.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;style&gt;
.highlighterserial{
width:325px;
height:auto;
background-color:#21252E;
color:#fff;
padding:10px;
border-radius:8px;
&lt;/style&gt;&lt;br /&gt;
Herkese merhabalar, bu yazımda sizlere Python&#39;da &lt;b&gt;serial&lt;/b&gt; kütüphanesini kullanarak, Arduino serial port verilerine ulaşmayı göstereceğim. İsterseniz hemen konuya geçelim.&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
İlk önce serial kütüphanesini indirmeniz gerekmektedir. Bunun için uçbirim ekranına:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighterserial&quot;&gt;
$ pip|pip3 install pyserial&lt;/div&gt;
&lt;br /&gt;
yazıyoruz ve indiriyoruz. &lt;br /&gt;
&lt;br /&gt;
Ardından bir Python dosyası oluşturalım ve işin kodlama kısmına geçelim. &lt;br /&gt;
&lt;br /&gt;
İlk önce Arduino projemizin kod dosyasına gelip Setup() ve Loop() kısmını şu şekilde tanımlıyoruz.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighterserial&quot;&gt;
void setup(){&lt;br /&gt;
Serial.begin(&quot;9600&quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
Serial.println(&quot;Sensör verisi&quot;);&lt;br /&gt;
}&lt;/div&gt;
&lt;br /&gt;
Eğer kodu sıfırdan yazıyorsanız bu şekilde tanımlamanız gerekmektedir, fakat sıfırdan değil de sonradan serial port verilerine erişmek istiyorsanız bu kodları gösterilen fonksiyonlara eklemeniz gerekmektedir. &lt;br /&gt;
&lt;br /&gt;
Bunları yaptıktan sonra Python dosyamıza geçelim, Python dosyamıza aşağıda ki kodu yazıyoruz: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;highlighterserial&quot;&gt;
import serial&lt;br /&gt;
&lt;br /&gt;
serialRead = serial.Serial(&#39;/dev/ttyUSB0&#39;)&lt;br /&gt;
#Bu kısıma Arduino&#39;nun bağlı olduğu portu giriniz&lt;br /&gt;
&lt;br /&gt;
while 1:&lt;br /&gt;
serialData = serialRead.readline()&lt;br /&gt;
print(serialData)&lt;/div&gt;
&lt;br /&gt;
kodları yukarıda belirtilen şekilde düzenledikten sonra, Arduino&#39;muzu çalıştırıyoruz ve ardınan Python dosyamızı çalıştırıyoruz.&lt;br /&gt;
&lt;br /&gt;
Görebileceğiniz üzere serial port verilerini Python kütüphanesi kullanarak eriştik ve bunları ekrana yazdırdık.&lt;br /&gt;
&lt;br /&gt;
Mesela ben bir Mesafe Sensörü(HC-SR04) çalıştırdım ve serial portta mesafe verilerini bastırmak istiyorum, yukarıda yazanları uyguladıktan sonra benim aldığım sonuç: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp22c7kFZ9vzPpEKXUBdrRq0LnJHQEQBmVf7WHOxeni6Mg4JTbjr6d8ey1PDeLKTD_eb0nPuvRfsWxiRmj_-N5fM_drsYBXWEBnTB9OXmLxK57Gyk-C622oPuLweKhE8PVFm_DoanOcUzE/s1600/SerialSS.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;363&quot; data-original-width=&quot;399&quot; height=&quot;290&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp22c7kFZ9vzPpEKXUBdrRq0LnJHQEQBmVf7WHOxeni6Mg4JTbjr6d8ey1PDeLKTD_eb0nPuvRfsWxiRmj_-N5fM_drsYBXWEBnTB9OXmLxK57Gyk-C622oPuLweKhE8PVFm_DoanOcUzE/s320/SerialSS.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
Evet arkadaşlar, bu yazımda sizlere Python ile Arduino Serial Port verilerine ulaşmanın yöntemini gösterdim, umarım yardımcı olmuştur. Yeni yayımlanan Java derslerimize göz atmayı unutmayın!! İyi Günler.</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/112893538901571912/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/02/python-ile-arduino-serial-port.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/112893538901571912'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/112893538901571912'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/02/python-ile-arduino-serial-port.html' title='Python ile Arduino Serial Port Verilerine Ulaşmak'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpAt4cOWsPeqNztE9gcvGk3pEuWRR5LBmvIIE0u4F4WR80WLa7Pr8aFddnv0mOoyyjLOKE2I1TsyKlfNbUFbu_fhil6gUPYxWeAb8OhHgOtZvE4h7dU_NHdn9_TAGvt9tj7HAnvz0QAJLJ/s72-c/Birka%25C3%25A7+sat%25C4%25B1r+g%25C3%25B6vde+metni+ekle.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-2599083262888120742</id><published>2020-02-22T15:56:00.000-08:00</published><updated>2020-02-22T15:56:45.155-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Tasarım"/><category scheme="http://www.blogger.com/atom/ns#" term="Tkinter"/><title type='text'>Asistan 2.0</title><content type='html'>&lt;style&gt;
a{
color:#fff;
text-decoration:none;
}
button{
width:80px;
height:40px;
background:#21252E;
color:#fff;
border:1px solid #fff;
}
button:hover{
border:1px solid yellow;
}
&lt;/style&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Herkese merhabalar, bu yazımda sizler için geliştirdiğim Asistan 2.0&#39;ı sunuyorum. Bildiğiniz üzere Asistan 1.0 çok basit bir yapıda, tek dosyadan oluşuyordu.&lt;br /&gt;
&lt;br /&gt;
Asistan 1.0 çok basit bir sözdizimine sahipti ve sadece belirli işlemleri yapabiliyordu. Asistan 2.0 ise böyle değil.&lt;br /&gt;
&lt;br /&gt;
Asistan 2.0 ile Wikipedia&#39;dan istediğiniz kelimeyi aratabilirsiniz ve çıktısını alabilirsiniz. Hava Durumu bilgisini öğrenip, QR Kod oluşturabilirsiniz.&lt;br /&gt;
&lt;br /&gt;
1.0&#39;dan ayıran en önemli özelliği daha fazla fonksiyonu olmasıdır. Bu fonksiyonlar arasında:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Hava Durumu Bilgisi Öğrenme&lt;/li&gt;
&lt;li&gt;QR Kod oluşturma&lt;/li&gt;
&lt;li&gt;Wikipedi&#39;den araştırma yapmak&lt;/li&gt;
&lt;li&gt;Selamlaşmak&lt;/li&gt;
&lt;li&gt;Mail Göndermek&lt;/li&gt;
&lt;li&gt;Papağan&lt;/li&gt;
&lt;/ul&gt;
Gibi özellikler bulunmaktadır. Bütün bu komutları Komutlar.txt dosyasında bulabilirsiniz.&lt;br /&gt;
&lt;br /&gt;
Asistan 2.0&#39;ı geliştirmenizi rica ediyorum, zaten dosyaları kurcalarsanız siz de yeterli düzeyde Python3 biliyorsanız, kolayca geliştirebilirsiniz. Açık Kaynak(Open Source) olmasının sebebi de budur.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Ekran Görüntüleri&lt;/h3&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitzaZ1fG4ktGcUDncpARwLyV6g4iE-Qp4PBpb0e14NnMqeHvwIHm1ZWljYW6mlPyyq_S4TyFuA_-LnztETc4xwkFIblB3GrMaONwMkZbvHe22rOePmEMnNZPy2DCrq9lv5eGfg0CIcDymD/s1600/asistan2.0.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;588&quot; data-original-width=&quot;1028&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitzaZ1fG4ktGcUDncpARwLyV6g4iE-Qp4PBpb0e14NnMqeHvwIHm1ZWljYW6mlPyyq_S4TyFuA_-LnztETc4xwkFIblB3GrMaONwMkZbvHe22rOePmEMnNZPy2DCrq9lv5eGfg0CIcDymD/s400/asistan2.0.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Göründüğü üzere bir banner bulunmaktadır. Bu banner&#39;i koymamın sebebi güzel bir görüntü oluşturmaktır. &lt;br /&gt;
&lt;br /&gt;
Asistan&#39;ı çalıştırırken ilk önce ekrana bir pencere gelmektedir;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLryl_O6cF91fjuPobWSvC69dME7M4qbFRGTBtimj-GO1odAsPuY7SNT43kjq5OICXPIEPkAscuZ_fSQtjVRKCDqIzjw3zWs_Gw9WzFSa8bJvxPBELQmJ8VjdKmG0HK_APu6l4iyN8UwsH/s1600/Baslarken.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;333&quot; data-original-width=&quot;695&quot; height=&quot;191&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLryl_O6cF91fjuPobWSvC69dME7M4qbFRGTBtimj-GO1odAsPuY7SNT43kjq5OICXPIEPkAscuZ_fSQtjVRKCDqIzjw3zWs_Gw9WzFSa8bJvxPBELQmJ8VjdKmG0HK_APu6l4iyN8UwsH/s400/Baslarken.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Bu pencereyi de Tkinter modülünü kullanarak oluşturdum, bunun nasıl yapıldığını daha önce ki yazılarımda bahsetmiştim.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQRz0meQ36Q7zIdYFmmpCmczQYp4xNnw8l8dWRgqApbO0jCf2Z78GuKtdALDTHSjuWco_DyL_ZptTFvN87oShe8ikO8O3RfLXAJlWVp6iQ1Wax7WV-aApEw2lohyM-DoNehDEIgcFsLrfy/s1600/wikipedi.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;588&quot; data-original-width=&quot;1028&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQRz0meQ36Q7zIdYFmmpCmczQYp4xNnw8l8dWRgqApbO0jCf2Z78GuKtdALDTHSjuWco_DyL_ZptTFvN87oShe8ikO8O3RfLXAJlWVp6iQ1Wax7WV-aApEw2lohyM-DoNehDEIgcFsLrfy/s400/wikipedi.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Wikipedi özelliğini kullandığınız zaman, gördüğünüz görüntü böyle olmaktadır.&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;b&gt;Önemli:&lt;/b&gt;&amp;nbsp; Çalıştırmanız gereken dosya &#39;main.py&#39;dır. Bu dosyayı python3 ile çalıştırmanızı tavsiye ederim.&lt;br /&gt;
&lt;br /&gt;
Kodlara ulaşmak için GitHub adresime aşağıda ki buttondan gidebilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Enes-Kasapoglu/Asistan-2.0.git&quot;&gt;&lt;button&gt;GitHub&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Umarım bu proje işinize yaramıştır, lütfen sosyal medya adreslerimden takip etmeyi unutmayınız. İyi Günler.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/2599083262888120742/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/02/asistan-20.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/2599083262888120742'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/2599083262888120742'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/02/asistan-20.html' title='Asistan 2.0'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-77069388324841362</id><published>2020-02-05T11:35:00.001-08:00</published><updated>2020-08-12T08:34:06.324-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Tasarım"/><category scheme="http://www.blogger.com/atom/ns#" term="Tkinter"/><title type='text'>Tkinter Nedir?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;style&gt;
.tkhighlighter {
width:330px;
height:auto;
background:#21252F;
border: 1px solid #6b6b6b;
line-height:40px;
padding-left:10px;
  color:#fff;
}
a {
color:#fff;
}
button{
width:80px;
height:40px;
background:#21252E;
border:1px solid #fff;
transition:1s;
cursor:pointer;
color:#fff;
}
button:hover{
border:1px solid yellow;
}
span{
color:purple;
}
&lt;/style&gt;&lt;br /&gt;
&lt;br /&gt;
Tkinter, python dilinde bir grafiksel kullanıcı arayüzüdür. Linux, Windows ve MacOS&#39;ta sorunsuz çalışabilen tkinter, sizlere basit bir sözdizimi ile grafiksel arayüz kullanan programlar yazabilirsiniz.&lt;br /&gt;
&lt;br /&gt;
Dediğim gibi tkinter modülü son derece basit bir sözdizimi kullanır, mesela ilk arayüz formunu sadece iki(2) satır kod ile oluşturuyorsunuz.&lt;br /&gt;
&lt;br /&gt;
Bu sebepten dolayı Tkinter, özellikle son zamanlarda çok popüler bir GUI (Graphical User Interface) modülüdür.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Tkinter Kullanımı&lt;/h2&gt;Tkinter&#39;i projemize dahil etmek için sadece; &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;tkhighlighter&quot;&gt;$ from tkinter import *&lt;/div&gt;&lt;br /&gt;
yazmanız yeterlidir.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Form Oluşturmak&amp;nbsp;&lt;/h3&gt;Tkinter ile form oluşturmak için;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;tkhighlighter&quot;&gt;1. window = Tk()&lt;br /&gt;
2. mainloop()&lt;/div&gt;&lt;br /&gt;
yazıyoruz ve sonuç:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjROGfke8pse77-ihaoL_drhOwlNRkF88QF7puh2zlawEM0bxzbqWMbDOtkR1vqPrJ-nS22HhER8FushFnhgetGa9Swtnw7FbrzVVxqB4sB0sYcOVRrYpqp1-QANppGsK5UA1H-oVFIpN8I/s1600/whattkinter1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;233&quot; data-original-width=&quot;210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjROGfke8pse77-ihaoL_drhOwlNRkF88QF7puh2zlawEM0bxzbqWMbDOtkR1vqPrJ-nS22HhER8FushFnhgetGa9Swtnw7FbrzVVxqB4sB0sYcOVRrYpqp1-QANppGsK5UA1H-oVFIpN8I/s1600/whattkinter1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Form oluşturduk, şimdi sıra bu formun özelliklerini belirlemede. Aşağıda ki komutlar ile formumuzun özelliklerini değiştirebiliriz. Bunun için:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;tkhighlighter&quot;&gt;1. window.title(&quot;KılavuzKod&quot;)&lt;br /&gt;
// Fonksiyonu Form elemanına başlık vermek için kullanılır.&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;tkhighlighter&quot;&gt;1. window.geometry(&quot;400x400&quot;)&lt;br /&gt;
// Fonksiyonu Form elemanının boyutunu belirlemek için kullanılır.&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;tkhighlighter&quot;&gt;1. window.resizable(False,False)&lt;br /&gt;
// Fonksiyonu Form elemanının boyutunun değiştirilmesine izin vermek için kullanılır. Eğer False, True yazarsanız Width oranını değiştirilmesini yasaklarsınız ve değişmez, aynı zamanda height oranı için de ikinci parametre yi değiştirmeniz gerekir.&lt;/div&gt;&lt;br /&gt;
Bunun gibi birçok özelliğini değiştirebilirsiniz, bunları başka bir yazımda yayınlamayı düşünüyorum, neyse Formumuzu oluşturduk ve özellikler verdik şimdi bu forma biraz nesne eklememiz gerekir.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Form Elemanları&lt;/h3&gt;Tkinter da birden fazla form elemanı vardır, bunlar: Button, Label, Frame,Image, slider, dropbox, menü vb. form elemanı bulunur.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Label&lt;/h3&gt;Label, Tkinter&#39;da yazı veya resim gibi nesnelerin yerleşimi için kullanılır.&lt;br /&gt;
Örnek verecek olursak; HTML&#39;da ki &amp;lt;div&amp;gt; etiketi gibidir.&lt;br /&gt;
&lt;br /&gt;
Label kullanımı için:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;tkhighlighter&quot;&gt;1. label = Label(text=&quot;Bu bir label nesnesidir&quot;)&lt;br /&gt;
2. label.pack()&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
yazdıktan sonra ve programı çalıştırdıktan sonra karşınıza böyle bir ekran gelecektir:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIqWeZA4CK_cVBxBtUIEXpuvog28tmfOXIVzqhIu4xKQb0A38UGlSIxHF3GGCn30QLRY61H9JMpB8nlTd_PFsAfbXAxJaD1zKsSQxeif1F53wMYYcLdraHh9gg7W8m4JNr_8cqIFMiziDH/s1600/whattkinter2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;233&quot; data-original-width=&quot;210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIqWeZA4CK_cVBxBtUIEXpuvog28tmfOXIVzqhIu4xKQb0A38UGlSIxHF3GGCn30QLRY61H9JMpB8nlTd_PFsAfbXAxJaD1zKsSQxeif1F53wMYYcLdraHh9gg7W8m4JNr_8cqIFMiziDH/s1600/whattkinter2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
gördüğünüz gibi bir label nesnesi oluşturduk ve ona yazı ekledik. Burada ki &#39;pack()&#39; fonksiyonu nesneleri form da göstermek için kullanılır. Eğer &#39;pack()&#39; fonksiyonunu kullanmazsanız nesneyi yazsanız bile form da görünmeyecektir.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Button&lt;/h4&gt;Tkinter&#39;da button, fonksiyon çalıştırmak için kullanılır. Button fonksiyonunu kullanmak için:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;tkhighlighter&quot;&gt;1. button = Button(text=&quot;Button&quot;)&lt;br /&gt;
2. button.pack()&lt;/div&gt;&lt;br /&gt;
yazıyoruz ve Form ekranımıza şu şekilde bir button geliyor:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiVvP_pDIQC9G9LkSvUKid-U7CJGsw8-UEYu28eXa9nEgz0QeHEh8y7WglRPkeaA3PTTaCWMybUWSlGr2fvqlx0LZZJ_RFPi368ildp1JJeR2OYYARDkpnli9kAeaSZFIJhtT6nQCRiZRa/s1600/whattkinter3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;233&quot; data-original-width=&quot;210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiVvP_pDIQC9G9LkSvUKid-U7CJGsw8-UEYu28eXa9nEgz0QeHEh8y7WglRPkeaA3PTTaCWMybUWSlGr2fvqlx0LZZJ_RFPi368ildp1JJeR2OYYARDkpnli9kAeaSZFIJhtT6nQCRiZRa/s1600/whattkinter3.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
tabi unutmamak gerekir ki button tasarımı işletim sistemlerine göre değişir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bu nesnelerin kullanımı hakkında aşağıya bir referans sayfası bırakıyorum,&amp;nbsp; bu referans sayfasından bir çok nesnenin kullanımını öğrenebilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://docs.python.org/3/library/tk.html&quot; style=&quot;color: white;&quot;&gt;&lt;button&gt;Referans&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ben de kendi projelerim de sıklıkla Tkinter modülünü kullanıyorum, bu içeriklere de göz atmanız sizin için faydalı olabilir. &lt;br /&gt;
&lt;br /&gt;
Yukarıda ki kodlara ulaşmak için:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://repl.it/@Lynx0/whatkinter&quot;&gt;&lt;button style=&quot;width:120px;&quot;&gt;Tüm Kodlar&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Umarım açıklayıcı olmuşumdur ve sizlerin işine yarayabilmiştir. İyi Günler! </content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/77069388324841362/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/02/tkinter-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/77069388324841362'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/77069388324841362'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/02/tkinter-nedir.html' title='Tkinter Nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-5889688481051597073</id><published>2020-02-02T16:03:00.001-08:00</published><updated>2020-08-12T08:35:48.025-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>QR Kod Çevirici</title><content type='html'>&lt;style&gt;
.qrhighlighter {
width:330px;
height:40px;
background:#21252F;
border: 1px solid #6b6b6b;
line-height:40px;
padding-left:10px;
  color:#fff;
}
a {
color:#fff;
}
button{
width:80px;
height:40px;
background:#21252E;
border:1px solid #fff;
transition:1s;
cursor:pointer;
  color:#fff;
}
button:hover{
border:1px solid yellow;
}
&lt;/style&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Herkese merhabalar, bu yazımda sizler için hazırladığım QR kod çeviricisini paylaşacağım.&lt;br /&gt;
&lt;br /&gt;
Öncelikle programın doğru çalışması için bir kaç tane modül indirmeniz gerekmektedir bunun için Uçbirim&#39;e:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;qrhighlighter&quot;&gt;
$ sudo pip3 install tkinter
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;qrhighlighter&quot;&gt;
$ sudo pip3 install pyqrcode&lt;/div&gt;
&lt;br /&gt;
bu modülleri indirdikten sonra dosyamıza dahil edebiliriz.&lt;br /&gt;
&lt;br /&gt;
Not: QR kodları kendi dizinine kaydetmektedir.&lt;br /&gt;
&lt;br /&gt;
Şimdi tek yapmanız gereken dosyayı Github adresimden indirip QR kod çevirmesi yapmaktır.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Enes-Kasapoglu/QRCodeGenerator.git&quot;&gt;&lt;button&gt;Github&lt;/button&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&amp;nbsp;Ekran Görüntüsü &lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyImHFfeZkTAjZtA23ERYlPpIttmCRiNB3bIvPNV7BRw0luQoQf7jLtSsLM_HiiL_SuRBCFQO93v7jVYuse8fdEftGbXMor7sAOTu3wPIiQb1TOIiSv7GklCqTSvwXxpa5he4128_icfnv/s1600/QRcodeGeneratortwo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;283&quot; data-original-width=&quot;460&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyImHFfeZkTAjZtA23ERYlPpIttmCRiNB3bIvPNV7BRw0luQoQf7jLtSsLM_HiiL_SuRBCFQO93v7jVYuse8fdEftGbXMor7sAOTu3wPIiQb1TOIiSv7GklCqTSvwXxpa5he4128_icfnv/s320/QRcodeGeneratortwo.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Görüldüğü üzere son derece sade bir yapıya sahip. Sadece çevirmek istediğiniz adresi ardından dosyayı hangi isim ile kaydedeceğinizi yazmanız yeterli olacaktır.&lt;br /&gt;
&lt;br /&gt;
Dosyayı indirdikten sonra Uçbirim&#39;e gelip sadece şu komutu yazmanız yeterli olacaktır:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;qrhighlighter&quot;&gt;
$ python3 main.py&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Evet, umarım bu proje işinize yaramıştır bir sonra ki yazımı takip etmeyi unutmayın!
</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/5889688481051597073/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/02/qr-kod-cevirici.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/5889688481051597073'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/5889688481051597073'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/02/qr-kod-cevirici.html' title='QR Kod Çevirici'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rOfRs_uY28d5kYfej_sz5G0T7jDUHmp9Hm10S8lSgY_woJEvXMlDv564A_EhP89TH018LsUeV3r983sfgaO1Kk9bUFxbAyduemUoA3zzB5bKhg-i6roBr2Y57wNSdWtsptvvGkwv3EBw/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-8067369752003028639</id><published>2020-01-29T14:27:00.000-08:00</published><updated>2020-01-29T14:33:02.019-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Fibonacci Dizisi</title><content type='html'>&lt;style&gt;
a{
color:#fff;
}
button{
width:80px;
height:40px;
background:#21252F;
color:#fff;
border:1px solid #fff;
transition:1s;
}
button:hover{
background:#cc181e;
border-radius:80px;
}

&lt;/style&gt;

Herkese merhabalar, bu yazımda sizlere Python, Java ve C++ dillerinde &lt;b&gt;Fibonacci dizisi&lt;/b&gt; algoritmasını göstereceğim.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
İlk önce Fibonacci dizisi nedir onu öğrenelim:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr&gt;
Fibonacci dizisi 0&#39;dan başlayarak kendinden önce ki iki ardışık sayının toplanması ile oluşur &lt;br /&gt;
&lt;br /&gt;
Fibonacci dizisi = [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987...]&lt;br /&gt;
&lt;br /&gt;
diye devam eder. Gördüğünüz gibi kendinden önce ki iki sayının toplanması ile oluşuyor.&lt;br /&gt;
&lt;hr&gt;
&lt;br /&gt;
&lt;br /&gt;
Fibonacci dizisi, bu aloritmayı kullanarak bir çok dilde yazılabilir &lt;br /&gt;
sadece mantığını anlamak gerekir.&lt;br /&gt;
&lt;br /&gt;
Aşağıya sırası ile Python Java ve C++ dillerinde ki algoritmayı görmeniz için &lt;b&gt;repl&lt;/b&gt; linklerini bırakıyorum. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://repl.it/@Lynx0/FibonacciPython&quot;&gt;&lt;button&gt;Python&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://repl.it/@Lynx0/FibonacciJava&quot;&gt;&lt;button&gt;Java&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://repl.it/@Lynx0/FibonacciC&quot;&gt;&lt;button&gt;C++&lt;/button&gt;&lt;/a&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
repl.it adresimi ziyaret ederek kodları çalıştırabilir ve Fibonacci dizisinin oluştuğunu görebilirsiniz.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/8067369752003028639/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/01/fibonacci-dizisi.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/8067369752003028639'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/8067369752003028639'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/01/fibonacci-dizisi.html' title='Fibonacci Dizisi'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-4872679387802310407</id><published>2020-01-28T23:25:00.000-08:00</published><updated>2020-01-28T23:27:43.588-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>Cygwin nedir?</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiobzV-rXNKXx7SrmewbAiOw2MER3HT85s2jVSweuDgMNz7XX_gZI6pmj8OtpQXbgNN2lJHwkwi1GI43XClG7r5QP2bP8Gg9wM1USfhmgReYD_Qyfpt6m3GYYiAEOaErPV_Cx0zvne8BZV3/s1600/8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiobzV-rXNKXx7SrmewbAiOw2MER3HT85s2jVSweuDgMNz7XX_gZI6pmj8OtpQXbgNN2lJHwkwi1GI43XClG7r5QP2bP8Gg9wM1USfhmgReYD_Qyfpt6m3GYYiAEOaErPV_Cx0zvne8BZV3/s320/8.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Cygwin Windows işletim sistemine sahip bilgisayarlarda çalışan açık kaynak kodlu tamamen özgür bir UNIX simülatörüdür.&lt;br /&gt;
&lt;br /&gt;
Cygwin’in asıl amacı UNIX, linux, BSD gibi POSIX tabanlı işletim sistemlerinde yer alan yazılımların Windows işletim sistemine sahip bilgisayarlarda çalışmasıdır. Cygwin Red Hat çalışanlarının katılımı ile sürekli güncellenmektedir.&lt;br /&gt;
&lt;br /&gt;
Cygwin projesi 1995 yılında Amerikalı Cygnus Solutions şirketinde görev yapmakta olan bilgisayar mühendisi Steve Chamberlain tarafından başlatılmıştır. Chemberlain’in Windows NT ve Windows 95 işletim sisteminde obje dosyası formatında COFF kullanıldığını fark etmesi ve GNU’nun halihazırda hem x86 hem de COFF formatlarını ve newlib C kütüphanesini desteklediğini bilmesi Cygwin projesinin doğmasına yol açmıştır.&lt;br /&gt;
&lt;br /&gt;
Chamberlain GCC’yi yeniden yönlendirerek POSIX tabanlı bazı programların kodlarını derlemiş ve bunların Windows işletim sisteminde sorunsuz olarak çalışmasını sağlamıştır. Proje, 1996 yılından itibaren diğer yazılım uzmanı mühendislerin de katılımı ile kısa sürede duyularak başarılı olmuştur. Cygwin sistemi, 1998 yılından itibaren web sitesi üzerinden isteyenlere ücretsiz olarak dağıtılmaktadır.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://tr.wikipedia.org/wiki/Cygwin&quot; target=&quot;_blank&quot;&gt;bkz. Wikipedia&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Nasıl Kurulur&lt;/h3&gt;
Cygwin’i &lt;a href=&quot;https://cygwin.com/install.html&quot;&gt;kendi internet sayfasından&lt;/a&gt; sisteminize uyumlu dosyayı indirmeniz gerekir.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ7iJQNAwYoij-pLdeU6RpYawS2xJR0U3s-AuWwAfB2w4CzoWQOQcm-hinfStaIckTNMeZwX02kIVYRayolH9lDjYA1pi1-YBMBfdZLpY0mu-_KgxKlEkU8oSSpmpppjlb-ubwjrb92Mij/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;502&quot; data-original-width=&quot;1010&quot; height=&quot;316&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ7iJQNAwYoij-pLdeU6RpYawS2xJR0U3s-AuWwAfB2w4CzoWQOQcm-hinfStaIckTNMeZwX02kIVYRayolH9lDjYA1pi1-YBMBfdZLpY0mu-_KgxKlEkU8oSSpmpppjlb-ubwjrb92Mij/s640/1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Ardından dosyayı açın, ve karşınıza setup ekranı gelecektir. O ekranda 
ilk size internetten mi indirsin yoksa locale olarak mı indirsin diye 
soracaktır, siz internetten seçeneğini seçin ardından programı ve 
paketleri nereye indireceğini belirleyin. Sonra karşınıza böyle bir 
kısım gelecektir;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNhCl1rhyphenhyphenn7QAha39Aq81JC0xRz394NaDsTIrxWmMcKAS0axF5DiaiZQrmfuxutiJMYCY5Q9ebvXgtbq1Pkrqxn4rhKhRqQQkawyTiQunt6wR-YtbCvCp40j63yH7sLUjessgJCSz7J-ZO/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;390&quot; data-original-width=&quot;765&quot; height=&quot;326&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNhCl1rhyphenhyphenn7QAha39Aq81JC0xRz394NaDsTIrxWmMcKAS0axF5DiaiZQrmfuxutiJMYCY5Q9ebvXgtbq1Pkrqxn4rhKhRqQQkawyTiQunt6wR-YtbCvCp40j63yH7sLUjessgJCSz7J-ZO/s640/2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Burada resimde seçili olan adresi seçin, eğer adresler yoksa ‘User URL: ‘ kısmına aşağıda ki adreslerden birtanesini yazın.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;http://cygwin.mirror.constant.com&lt;/li&gt;
&lt;li&gt;http://cygwin.mirrors.pair.com&lt;/li&gt;
&lt;/ul&gt;
Bu adresleri girdikten sonra devam edin ve indirmeye başlayacaktır 
ondan sonra paket indirme ekranı gelecektir orada yapmanız gereken bir 
şey yok devam edin ve kurulumunu bekleyin. Kurulduktan sonra rahatca 
Cygwin terminali kullanabilirsiniz.</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/4872679387802310407/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/01/cygwin-nedir.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/4872679387802310407'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/4872679387802310407'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/01/cygwin-nedir.html' title='Cygwin nedir?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiobzV-rXNKXx7SrmewbAiOw2MER3HT85s2jVSweuDgMNz7XX_gZI6pmj8OtpQXbgNN2lJHwkwi1GI43XClG7r5QP2bP8Gg9wM1USfhmgReYD_Qyfpt6m3GYYiAEOaErPV_Cx0zvne8BZV3/s72-c/8.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-1381945524039967149</id><published>2020-01-28T23:06:00.001-08:00</published><updated>2020-08-12T08:38:04.492-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Hesap Makinesi"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Python ile Hesap Makinesi</title><content type='html'>&lt;style&gt;
a{
color:#fff;
}
.python-calc-git{
width:80px;
height:40px;
background:#21252F;
border:1px solid #fff;
transition:0.5s;
  color:#fff;
}
.python-calc-git:hover{
width:85px;
border:1px solid #488bff;
}
&lt;/style&gt;

&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrHNbSNg-VWU_bSwGIJG7AGz_y89tLF7qUAILGIvUqH3w0s27O_gZgnqCC0Dxo_w-TbgfugFvqy4katjTmOgCci90kY16zwdx7ekelWc452xNTtZ__HmrRAu-x7KG4MhXVBsxOEZX3UMXL/s1600/7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrHNbSNg-VWU_bSwGIJG7AGz_y89tLF7qUAILGIvUqH3w0s27O_gZgnqCC0Dxo_w-TbgfugFvqy4katjTmOgCci90kY16zwdx7ekelWc452xNTtZ__HmrRAu-x7KG4MhXVBsxOEZX3UMXL/s320/7.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Herkese merhabalar, Python ile sade bir hesap makinesi yaptım ve bu 
projenin kodlarını kendi bloğumda yayımlamaya karar verdim. Kodları 
GitHub&#39;dan alabilirsiniz. İşte linki;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Scorpionn0/Python-hesap-makinesi.git&quot;&gt;&lt;button class=&quot;python-calc-git&quot;&gt;Github&lt;/button&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Ekran Görüntüleri&lt;/h3&gt;
&lt;h3&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwfEtsWZ6ydIHEpETIHPCrQLC84YvJM-qlRIpvv8hcQ1TOcuZo-QLlFb3peU2aGldDhhYeeEKz9sD7GieGUUobhpvHbIdttnlYBVz_c6IWuldA3c1-3fPUEkZtKqnz8V2xpjVg1lsvbobO/s1600/pythimage.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;125&quot; data-original-width=&quot;367&quot; height=&quot;108&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwfEtsWZ6ydIHEpETIHPCrQLC84YvJM-qlRIpvv8hcQ1TOcuZo-QLlFb3peU2aGldDhhYeeEKz9sD7GieGUUobhpvHbIdttnlYBVz_c6IWuldA3c1-3fPUEkZtKqnz8V2xpjVg1lsvbobO/s320/pythimage.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Python ile sade bir hesap makinesi yapmak için gerekli kaynak kodlar bunlardır. Umarım işinize yaramıştır.</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/1381945524039967149/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/01/python-ile-hesap-makinesi.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/1381945524039967149'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/1381945524039967149'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/01/python-ile-hesap-makinesi.html' title='Python ile Hesap Makinesi'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrHNbSNg-VWU_bSwGIJG7AGz_y89tLF7qUAILGIvUqH3w0s27O_gZgnqCC0Dxo_w-TbgfugFvqy4katjTmOgCci90kY16zwdx7ekelWc452xNTtZ__HmrRAu-x7KG4MhXVBsxOEZX3UMXL/s72-c/7.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-169732362629921367.post-6372394679294623094</id><published>2020-01-28T22:50:00.000-08:00</published><updated>2020-01-28T23:09:32.282-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="MacOS"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><category scheme="http://www.blogger.com/atom/ns#" term="İşletim Sistemi"/><title type='text'>İşletim Sistemlerinde Iso Yazdırmak.</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiobzV-rXNKXx7SrmewbAiOw2MER3HT85s2jVSweuDgMNz7XX_gZI6pmj8OtpQXbgNN2lJHwkwi1GI43XClG7r5QP2bP8Gg9wM1USfhmgReYD_Qyfpt6m3GYYiAEOaErPV_Cx0zvne8BZV3/s1600/8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiobzV-rXNKXx7SrmewbAiOw2MER3HT85s2jVSweuDgMNz7XX_gZI6pmj8OtpQXbgNN2lJHwkwi1GI43XClG7r5QP2bP8Gg9wM1USfhmgReYD_Qyfpt6m3GYYiAEOaErPV_Cx0zvne8BZV3/s320/8.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Herkese merhabalar, bu yazımda sizlere İşletim 
Sistemlerinde(Linux,Windows,MacOS) iso kalıbı yazdırmayı anlatacağım. 
İsterseniz uzatmadan içeriğe geçelim.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Windows&lt;/h2&gt;
İlk olarak Windows işletim sisteminden başlamak istedim. İso kalıbı 
yazdırmak için programlar kullanmalısınız bu programlardan bazıları ise:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
–&lt;a href=&quot;https://rufus.ie/&quot;&gt;Rufus&lt;/a&gt;&lt;br /&gt;
–&lt;a href=&quot;https://www.linuxliveusb.com/&quot;&gt;LiLi (LinuxLive USB Creator)&lt;/a&gt;&lt;br /&gt;
–&lt;a href=&quot;https://www.gezginler.net/indir/win32-disk-imager.html&quot;&gt;Win32DiskImager&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ben bu üç programdan Win32DiskImager’ı tavsiye ederim çünkü hepsini 
kullandım ve sıkıntısız olarak sadece Win32DiskImager’ı kullanabildim. 
Bilmelisiniz iso kalıbı yazılırken doğru bir şekilde yazılması çok 
önemlidir, aksi takdirde kurulum gerçekleşmez.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Linux&lt;/h2&gt;
Linux’ta iso kalıbı yazdırmak çok kolaydır bu işlemi Terminal’den de 
yapabilirsiniz. Ayrıca dağıtımlar ile birlikte gelen programları 
kullanabilir ya da gerekli programları bir kod satırı ile 
kurabilirsiniz.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Terminal&lt;/h3&gt;
Öncelikle Terminal üzerinden yazdırma yöntemini göstereceğim, ilk olarak diski biçimlendiriyorsunuz bunun için de: &lt;br /&gt;
&lt;br /&gt;
&lt;code class=&quot;plain plain&quot;&gt;$ sudo mkfs.vat /dev/sdb1 -I&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;plain plain&quot;&gt;&lt;span style=&quot;background-color: #444444;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;
komutunu giriyorsunuz. ‘/dev/sdb1’ yerine iso kalıbını yazdırmak 
istediğiniz diskin adresini yazıyorsunuz. Bunu öğrenmek için ise; &lt;br /&gt;
&lt;br /&gt;
&lt;code class=&quot;plain plain&quot;&gt;$ sudo blkid &lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
yazmanız yeterli olacaktır.&lt;br /&gt;
Şimdi sıra geldi iso kalıbını yazdırmak için gerekli komuta. bunun için ise:&lt;br /&gt;
&lt;br /&gt;
&lt;code class=&quot;plain plain&quot;&gt;$ sudo dd bs=4M if=isokalibi.iso of=/dev/sdb1&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code class=&quot;plain plain&quot;&gt;komutunu vermeniz yeterli olacaktır. ‘of=/dev/sdb1’ kısmına kendi diskinizin adresini yazıyorsunuz.&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Araçlar ile&lt;/h3&gt;
Herhangi bir linux dağıtımında bu işlem için bir araç vardır. Fakat yok 
ise size Brasero’yu öneririm. Brasero’yu yüklemek için terminale:&lt;br /&gt;
&lt;br /&gt;
$ sudo apt-get install brasero&lt;br /&gt;
&lt;br /&gt;
yazmanız yeterli olacaktır. Bundan sonra yapmanız gereken şey diski ve iso dosyasını seçip dosyayı yazdırıyorsunuz.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
MacOS&lt;/h2&gt;
MacOS’ta disk kalıbı yazdırmak için ‘Disk İzlencesi’ programını 
kullanabilirsiniz. İlk olarak Boş bir disk takın ve Disk izlencesini 
açın.&lt;br /&gt;
Ardından iso kalıbını gerekli adımları izleyerek diske yazdırın. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evet, işletim sistemlerinde bu adımları izleyerek iso kalıbını 
yazdırabilirsiniz. Sizin için en iyi linux dağıtımını seçmek 
istiyorsanız &lt;a href=&quot;https://kilavuzkod.blogspot.com/2020/01/5-maddede-hangi-linux-dagtmn.html&quot; target=&quot;_blank&quot;&gt;Linux Dağıtımları&lt;/a&gt; yazımı okuyabilirsiniz. Umarım bu yazı sizlere yardımcı olmuştur. İyi günler, hatasız kodlar.</content><link rel='replies' type='application/atom+xml' href='https://kilavuzkod.blogspot.com/feeds/6372394679294623094/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='https://kilavuzkod.blogspot.com/2020/01/isletim-sistemlerinde-iso-yazdrmak.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/6372394679294623094'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/169732362629921367/posts/default/6372394679294623094'/><link rel='alternate' type='text/html' href='https://kilavuzkod.blogspot.com/2020/01/isletim-sistemlerinde-iso-yazdrmak.html' title='İşletim Sistemlerinde Iso Yazdırmak.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiobzV-rXNKXx7SrmewbAiOw2MER3HT85s2jVSweuDgMNz7XX_gZI6pmj8OtpQXbgNN2lJHwkwi1GI43XClG7r5QP2bP8Gg9wM1USfhmgReYD_Qyfpt6m3GYYiAEOaErPV_Cx0zvne8BZV3/s72-c/8.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>