Kayıtlar

Swift Fonksiyonlar

Resim
  Merhabalar, bu yazıda swift'te fonksiyonları nasıl kullanacağımızı öğreneceğiz.   1.Swift'te Fonksiyon Tanımlama          Swift üzerinde fonksiyon tanımlarken 'func' ifadesi ile başlamamız gerekiyor. Ardından fonksiyona vereceğimiz isim gelmelidir. İsimden sonra açtığımız parantezin içerisine parametreleri, parantezi kapattıktan sonra da geri dönüş tipini belirmemiz gerekmektedir. Örneğin; func sayHello ( person: String )-> String { return "Hoş geldin " + person } print ( sayHello ( person: "Selim" ))           Bu kod parçasında ilk olarak 'func' anahtar kelimesi ile başlayarak bunun bir fonksiyon tanımlaması olduğunu belirtiyoruz. Ardından gelen  'sayHello' değeri bizim fonksiyon ismimiz olacaktır. Parantezin içerisinde 'person' adlı bir parametre alacağımızı ve bunun türünün String olması gerektiğini belirtiyoruz. Parantezi kapattıktan sonra -> (arrow) işaretinden sonra ise geri dönüş yapacaks...

Execution failed for task ':flutter_blue:generateDebugProto'. > Could not resolve all files for configuration ':flutter_blue:protobufToolsLocator_protoc'.

Resim
Hatanın tamamı: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':flutter_blue:generateDebugProto' . > Could not resolve all files for configuration ':flutter_blue:protobufToolsLocator_protoc' . > Could not find protoc - 3.11 . 4 - osx - aarch_64.exe (com.google.protobuf:protoc: 3.11 . 4 ). Searched in the following locations: https: //jcenter.bintray.com/com/google/protobuf/protoc/3.11.4/protoc-3.11.4-osx-aarch_64.exe           Flutter' da bluetooth işlemleri için kullanılan flutter_blue paketi özellikle M1 çipli macbooklarda hata vermektedir. Bu hatayı çözmek için flutter_blue paketinin içerisindeki build.gradle dosyasında bir değişiklik yapmamız gerekmektedir.     Bunun için iki türlü yöntem izleyebiliriz. Biri android studio üzerinden 'External Libraries' kısmından flutter_blue paketini bulup değişiklikleri yapmak. Diğeri de paketin diskteki konumu...

Algoritma Karmaşıklığı Nedir ? Zaman ve Hafıza Karmaşıklığı Nedir ? Nasıl Hesaplanır ?

Resim
Algoritmanın Zaman  ve  Hafıza Karmaşıklığı Bilgisayar bilimleri ve benzeri bilimlerde istenilen soruya karşılık her zaman istenilen cevaplar en hızlı veya en kesin sonucu verecek yöntemler olmayabilir. Her zaman bulunduğumuz durumları göz önünde bulundurarak sonuçlar üretmeyiz. Bir proje için bazen zaman daha önemli olacakken bazen de kesinlik ve bu yönden de harcanacak bellek miktarı daha önem arz etmiş olabilir. Bu durumlar altında kullandığımız algoritmaların bize olan zaman ve hafıza maliyetlerini hesaplamak, bunlar hakkında bilgi sahibi olmak çok önemlidir. Bu iki terim aslında beraber algoritmanın verimliliğini belirtiyor. İyi bir algoritmadan az yer kaplaması ve az zaman harcaması beklenir. Burada çoğu zaman bir takas söz konusu ve bu biraz ters orantılı olabiliyor. Hafıza Karmaşıklığı Hafıza karmaşıklığı algoritmanın işlevini yerine getirmesi için kullandığı bellek miktarı olarak söylenebilir. Bunun için öncelikle genel olarak bilinen programlama d...

Program Karmaşıklığı Nedir ? Nasıl Ölçülür ? McCabe Karmaşıklık Ölçütü Nedir ?

Resim
Program Karmaşıklığı         Karmaşıklık, yazılımın kalitesini düşürmenin temel bir nedeni olduğundan yazılımda istenmeyen bir özellik olarak kabul edilir. Karmaşık yazılımlardan kaçınmak için yazılımları test etmek üzere karmaşıklık ölçütleri büyük önem arz eder.     Yazılımın yaşam döngüsünde aşamalar arası geçişler olabildiğinden yazdığımız kodun sonradan anlaşılması çok önemlidir. Karmaşıklık yazılımın anlaşılmasını ve okumasını zorlaştırdığından ayrıca sonradan değiştirmenin zahmetli olabiliceği için genellikle yazılımda istenmeyen bir özelliktir. Yazılımın kalitesi yazılımın karmaşıklığıyla ters oranda artmaktadır. Kaliteli yazılım kolayca anlaşılabilir, kolayca bakımı yapılabilir, anlaşılabilir, iyi yapılandırılmış sistemlerdir.             Karmaşıklık Analizi Nasıl Yapılır ?    Yazılım karmaşıklığı ölçütleri neredeyse yazılım mühendisliği kadar eskidir. İlk geliştirilen Lines of Code ...

Docker Nedir ?

Resim
Docker Nedir?     Docker en temelde uygulamaları işletim sistemi (OS) bağımlılığından kurtarıp sanal ortamda hızlı bir şekilde derlemeye, test edilmesine ve dağıtımına imkan tanıyan bir yazılım platformudur.      Docker içerisinde LXC adlı bir sanallaştırma mimarisini kullanmıştır. LXC Linux çekirdeğinde aynı OS içerisinde birbirinden izole olmuş bir biçimde çalışan containerlar sağlamaktadır. Bu container adlı yapılar yazılımları geliştirme sürecinde birçok olanak sağlamaktadır. LXC işletim sistemi seviyesinde yaptığı sanallaştırma ile klasik sanallaştırmaya göre daha fazla miktarda fayda sağlar. Hypervisor (Vmware,VirtualBox) ile yapılan sanallaştırmada sanal ortam,sunucu kendine ait bir Guest OS ‘a ihtiyaç duyar. LXC bu masraflı durumu containerların Host OS’u kullanması ile ortadan kaldırmıştır. LXC bu yönüyle kaynak tasarrufu sağlar. Docker ile LXC daha düzenli,efektif,paket yönetimi yüksek ve sade bir halde dünyaya sunmuştur.Docker i...

TCP Bağlantı Oluşturma, 3-Way Handshake ?

TCP 3-way Handshake Nedir?  2-way Yeterli Değil mi ? TCP doğası gereğince güvenilir (reliable) bir transfer sağlaması açısında öncelikle transferi uygulayacağı tarafla önceden bir bağlantı kurması gerekmektedir. Bu arada bu güvenli terimi “security” anlamındaki terimden uzaktır burdaki güvenli ifadesi paketin emniyetli bir şekilde ulaşması “loss” yaşanmamasıdır. Bu durum için önceden kuracağı bağlantıya terminolojide “3-way handshake” adı verilir. Bu el sıkışma olayının adımları şöyledir: İlk olarak client istekte bulunacağı server'a içerdiği ISN (Initial Sequence Number) verisini kendisini tanıtmak üzere “syn” paketini gönderir. Server aldığı “syn” paketini doğrulamak için “ack” paketini ve ayrıca kendini tanıtmak için de kendi ISN'yla birlikte “syn” paketini gönderir. Son olarak Client aldığı “syn” paketini doğrulamak için bir alındı bilgisi olarak “ack” paketini gönderir. Client ------SYN-----> Server Client <---ACK/SYN---- Server Clien...