Kayıtlar

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...

Syn Flood Attack nedir ? Nasıl önlenir ? Syn Cookie ve Syn Proxy nelerdir?

Syn Flood Attack nedir ?   Nasıl önlenir ? Syn Cookie ve Syn Proxy nelerdir?       En temel DoS ataklarından biri olan Syn Flood atağı TCP ile haberleşmek isteyen client ile server arasında yapılacak olan “ 3-way handshake ” olayına müdahele ederek mümkün olmaktadır. Syn Flood saldırıları teorik olarak ilk 1994 yılında Firewalls And Internet Security adlı kitapta geçmiştir.      El sıkışmasının ilk adımında client servera bir syn paketi gönderdikten sonra server tekrar paketi aldığına ve kendi bağlantı isteğini göndermek için bir syn-ack paketi gönderir. Ardından tekrar client da bu syn paketi aldığına dair bir ack paketi gönderiyor ve bağlantı sağlanmış oluyor. Syn Flood atağında atağı yapacak olan kişi server'a farklı IP'lerden çok fazla syn paketi gönderir. Server'da bu paketler alındıkça işletim sistemi gelen paket için bellekte bir yer açar. Alınan paketler için belli bir kapasite olduğu ve bu kapasite do...