Progressive Web App (PWA)

Posted on

pwa-nedir-pwa-yapma

Progressive Web App, bir websitenin uygulama benzeri özelliklerine sahip türüdür. Peki belli başlık özellikleri nelerdir?

  • Öncelikle çevrimdışı olarak kullanabilirsiniz, kullanıcının interneti olmadığı anlarda dâhi PWA sayesinde websitenizdeki faydalı bilgileri görüntüleyebilir.
  • Ana ekranda ikona sahip olması, bazı tarayıcılarla ana ekrana kısayol ekleyebildiğiniz zaman ikon değiştiremezsiniz ama PWA bunu sağlayabiliyor.
  • Responsive olması, ekranın mükemmel oranda dolmasını sağladığı için web siteleriniz mobil ve tablet uyumlu olması gerekiyor.
  • Push notification desteğine sahip olması ile uygulama çalışmasa bile bildirim alabiliyor, elbette herkes için değil yalnızca onay veren kişilerde bildirim gözüküyor.

Web App Manifest

Basit bir Web App manifest dosyası örneği oluşturdum.

{
  "name": "Burak Sakallı Kişisel Blog",
  "short_name": "BS",
  "icons": [
      {
        "src": "brk144",
        "type": "image/PNG",
        "sizes": "144x144"
      }
],
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#282828"
}
  • name: PWA açılırken görüntülenecek metin
  • short_name: Tarayıcılarda “Ana ekrana kısayol ekle” metoduyla eklenirken görüntülenecek metin, ayrıca ana ekranda bu metin ile görüntülenir.
  • icons: PWA açılırken name’in üzerinde görünecek ikonlar ve ayrıca uygulamanın ana ekrandaki ikonu
  • display: standalone olduğu zaman uygulama gibi duruyor, adres çubuğu bulunmuyor. Diğer seçenek ise “browser” bunda ise adres çubuğu bulunuyor.
  • background_color: Açılış ekranının arkaplan rengi
  • theme_color: Eğer display:browser şeklinde kullanırsanız adres çubuğunun rengini ayarlamanıza yarıyor.

Daha sonrasında yazmış olduğunuz manifest dosyanızı “manifest.json” şeklinde kaydedip web sitenizde;

<link rel="manifest" href="manifest.json">

şeklinde çağırmalısınız.

İlerleyen zamanlarda Push notification özelliği ile bildirim göndereceğiz.

Otomobiller Konuşabilir Mi?

Posted on

mercedes-e-2017-akilli

Otomobiller birbirleriyle konuşurken eminim Cars animasyon serisindeki karakterlere benzemiyorlardır. Araçtan-araca iletişim sistemi (V2V) gelecek yıllarda bir standart durumunda olacak ve araçlar durumlarını şifreli bir şekilde diğer araçlara bildirecektir. Mercedes bu konuda E sınıfı otomobillerinde 4G desteği sunarak Cloud üzerinden aynı yönde giden araçlarının bilgilendirilmesini sağlıyor. Ağ sadece Mercedes’lerin haberleşmesini sağlamakta ama V2V standartları oturduğu zaman bütün markaların birbirleri ile haberleşmesi daha kolay hâle gelecektir.

Bu sistem başarılı bir şekilde hayatımıza uygulandığı zaman ise daha güvenli yolculuk yapabileceğiz. Şu an için 4G alt yapısı kullanılsa da her noktada aynı kalitede sinyale sahip olamayabiliriz. Acil durumlarda sinyal kalitesinin kötü olması büyük sorunlara yol açabilir. Bundan dolayı 5G bir kenara 4G’nin daha da yaygınlaşması lazım. Elbette bu sorun sadece ülkemiz için geçerli değil, dünyanın her yerinde sonuçta bu araçlar kullanılıyor ve her yerde de sorun yaşanabilir.

 

Belki İlginizi Çekebilir

Genel Anahtar Algoritmalar

Posted on

Bir önceki yazıda Genel Anahtar Algoritmalar konusunu açıklamıştım: Kriptoloji ve Gizli Yazı Sanatı

Yerine Koyma Şifreleme Yöntemleri (Substitution Ciphers)

Yüzyıllar boyunca pek çok yerine koyma şifreleyicileri kullanılmıştır. En basit seviyede mesajın harfleri, başka bir alfabenin harfleriyle yer değiştirilir. Açık metindeki harflerin ardışıklığı değişmez. Günümüzde cep telefonlarıyla mesaj iletiminde bu şifrelenmeden faydalanmaktayız. Örneğin, birçok telefonda olduğu gibi aşağıdaki harf düzenlemeleri vardır:

2 A B C 
3 D E F 
4 G H I
5 J K L
6 M N O
7 P Q R S
8 T U V
9 W X Y Z

Kelimeler arası boşluklar ve noktalama gibi işaretler için 1 rakamı kullanılmaktadır.

Açık metin: BEN GELDİM

Şifreli metin: 2 3 6 1 4 3 5 3 4 6 şeklinde olacaktır.

Burada şifrenin çözülmesinde her rakam 3 veya 4 harf için kullanıldığından sezgisellikten faydanılmaktadır. Kelimeleri ve cümleleri yakalayabilmek için sözcüklere gerek duyulabilir.

Ceasar Şifresi

Adını Julious Ceasar’dan alan basit yer değişme şifreleme türüdür. Burada her harf, belirli bir kaydırma dönüşümü kullanılarak elde edilen başka bir harf ile yer değiştirilir.

Açık metin: BEN GELDİM

Şifreli metin: CFO ĞFMEIN şeklinde şifrelenebilir.

Yer Değişme Şifreleme Yöntemleri ( Transposition Ciphers)

Bu şifreleme yönteminde, açık metin harflerinde değişiklik olmaz. Harflerin yeniden düzenlenmesi için çeşitli yöntemler vardır.

Çit (Picket Fence) Şifresi

Yer değişme şifreleme yöntemleri için en basit ve hızlı yöntem, mesajda pozisyonları tek sayı olan harflerin, çift sayı olanlardan ayrılması ve sonucun iki karakter dizisi şeklinde oluşturulmasıdır.

Mesaj: BEN GELDİM

Tek harfler: BNGLİ

Çift harfler: E_EDM

Şifreli mesaj bu iki karakter dizisinin birleştirilmesi ile aşağıdaki gibi olacaktır.

BNGLİE_EDM

Mesajı deşifrelemek için alıcı, toplam harf ve boşluk sayısını hesaplayıp, şifreli metni ikiye bölmelidir. Toplam sayı tek ise, büyük olan dizi üst küme olarak alınır.

Kriptoloji ve Gizli Yazı Sanatı

Posted on

kriptografi-kriptoloji

İnsanlar her zaman, ellerinde var olan bilginin bu veya diğer şekilde korunmasına ve gizliliğine önem vermiştir. Günümüzde bilgisayar ağının, yani internetin gelişimiyle ilgili olarak büyük ölçüde devlet, askeri ve ticari bilgilerin daha güvenli bir şekilde iletilmesi ve bütünlüğünün korunması problemleri ortaya çıkmıştır. Öte yandan ise, yeni bilgisayarların gelişimi, mevcut sistemlerin daha iyi korunmasını gerektirmektedir. İşletim sistemlerinin açıklarından çok akıllıca faydalanan hacker’ların yazdıkları virüsler, solucanlar ve trojanlar sonucunda kişisel bilgisayarlar bir anlamda genel bilgisayarlara dönüşmüş durumdadır. İnsan davranışlarını göz önünde bulunduran akıllı virüs programları, şifrelerin çözülmesinde kullanılan yöntemler yapay zekanın da bu çalışmaların içerisinde yer almasını gerektirmektedir.

Bilginin değiştirilerek korunması ile uğraşan bilim, kriptoloji olarak adlandırılır. Kriptoloji, kriptografi ve kriptoanaliz olmak üzere iki kısma ayrılır. Kriptografi, mesajların içeriğini gizleyecek bir şifreleme sistemi oluşturma sanatıdır. Bir kriptografik algoritma, şifreleme ve deşifreleme için kullanılan matematiksel fonksiyonlardan oluşur. Bu işlemlerde, bir anahtar değeri de kullanılmaktadır. Kriptoanaliz ise, şifreleme anahtarı bilinmeden şifreyi çözme sanatıdır. Başarılı bir kriptoanalizde, mesaj ya da anahtar elde edilir. Görüldüğü gibi kriptografi ile kriptoanaliz, birbirinin tersidir.

Kriptografinin tarihi, dilin ortaya çıkması ile yaşıttır. Öte yandan, yazının kendisi de başlangıçta bir kriptografi sistemiydi. Morse alfabesi ve müzik eserleri notaları da birer kodlama örnekleridir. Alfabedeki harfler kaydırılarak, farklı alfabelerde elde edilebilir. Çeşitli alfabelerle işlem yapabilmek amacıyla bir anahtar kelime kullanılır. Bu anahtardaki harfler, kullanılacak alfabeyi belirler. Anahtar kelime, metin üzerinde devamlı tekrarlanır.

Pratikte, daha uzun bir anahtar kullanılabilir. Tüm şifreleme alfabelerinin birleşiminden oluşan tablo, Vigenere tablosu olarak adlandırılmış ve ilk kez 1586’da ortaya çıkmıştır. Başlangıçta güvenli olduğu sanılan bu şifrenin çözümü için genel bir yöntem, 1863 yılında, Kasiski tarafından açıklanmıştır.

Bir kriptografik algoritma, şifreleme ve deşifreleme için kullanılan matematiksel fonksiyonlardan oluşur. Genellikle, şifreleme ve deşifrelemede iki fonksiyon kullanılır.

Modern kriptografide, K ile ifade edilen bir şifreleme anahtarı kullanılır. Hem şifreleme, hem de deşifreleme işlemleri, bu anahtar kullanılarak gerçekleştirilir. Algoritmaların güvenliği anahtara bağlıdır. Algoritmayı bilen bir kişinin anahtarı bilmeden mesajları okuması mümkün değildir. Anahtar tabanlı algoritmaların, simetrik ve genel anahtar olmak üzere iki genel türü vardır.

Simetrik Algoritmalar

Simetrik algoritmalarda, şifreleme anahtarının deşifreleme anahtarından üretilmesi mümkün ve oldukça kolaydır. Bunun tersi de doğrudur. Çoğu simetrik algoritmalarda, şifreleme ve deşifreleme için kullanılan anahtar aynıdır. Anahtar kullanımına bağlı olarak bu algoritmalar tek anahtarlı, gizli anahtarlı algoritmalar olarakta adlandırılmaktadır. Alıcı ve göndericinin güvenli bir şekilde haberleşmesi için, öncelikle belirli bir anahtar üzerinde görüş birliğine varmaları gerekir. Bu algoritmaların güvenliği, anahtar ile bağlantılıdır. Anahtarı bilen herkes, mesajları şifreleyip deşifreleyebilir. Haberleşmenin güvenli olması için anahtar gizli tutulmalıdır.

Genel Anahtar Algoritmalar

Genel anahtar algoritmalar, asimetrik algoritmalar olarakta bilinir. Bu algoritmalarda şifreleme için kullanılan anahtar, deşifrelemede kullanılan anahtardan farklıdır. Öte yandan, şifreleme anahtarından faydalanılarak, deşifreleme anahtarının hesaplanması mümkün olmamaktadır. Şifreleme anahtarı, genel olarak herkesin kullanımına açık olduğu için bu algoritmalar genel anahtar olarak adlandırılır. Herhangi bir kişi bu anahtarı kullanarak mesajlarını şifreleyebilir, fakat yalnız deşifreleme anahtarına sahip alıcılar mesajları deşifre edip okuyabilir. Bu sistemde şifreleme anahtarı, genel anahtar olarak, deşifreleme anahtarı ise özel anahtar olarak adlandırılır.

Şifreleme ve deşifreleme işlemini gerçekleştiren ve şifreleme sistemi olarak bilinen algoritmalar aşağıdaki yöntemlerden ya da onların kominasyonlarından oluşabilir.

  1. Yerine Koyma Yöntemleri (Substitution Methods)
  2. Yer Değişme Yöntemleri (Transposition Methods)
  3. Cebirsel Yöntemler (Algebraic Methods)

Android 8.0: Olası İsimler ve Çıkış Tarihi

Posted on

android 8 geliyor

Google I/O 2017’nin düzenleceği tarihler belirlendi ve büyük gösteriye yalnızca birkaç ay kaldı. Google I/O geleneksel bir geliştirici konferansı ve Google’ın en yeni yazılım geliştirmelerini sunduğu bir platform. Halen, en yeni Android sürümü olan Nougat, Ağustos 2016’da piyasaya sürülmüştü.

Sıradaki İsim Ne Olacak?

2017’den itibaren bir sonraki Android güncellemesinin kullanımına daha yakınız. Google’ın Android sürümlerinde tatlı isimlerini kullanarak alfabetik adlandırma dizisine sonraki harf olan O ile de devam etmesi haliyle bekleniyor. Şimdiye dek Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop, Marsmallow ve Nougat sürümlerini gördük. Ayrıca güncellemenin sayısal adı da Android 8 veya 8.0 olacaktır.

Android 8.0 Sürüm Takvimi

Söylentilere göre, ilk Android 8.0 önizlemesi Mayıs ayında Google I/O 2017’de gerçekleşebilir. Yine de bu söylenti Google tarafından henüz teyit edilmemiştir. Android Nougat geçen yılın Google I/O etkinliğinden daha sonra piyasaya sürülmüştü. Android 8.0’ın yayınlanma zamanına gelince ise Android Nougat’a benzer bir zaman aralığı bekleyebiliriz, bu ise Ağustos veya Eylül civarı demek oluyor. Apple’ın da aynı zaman aralığında iOS 11’i piyasaya sürmesi beklendiğinden, iyi bir rekabet olacaktır. Ayrıca, Google’ın amiral gemisi telefonlarının da o sezon aralığında gelmesi bekleniyor, bu nedenle 2017’nin sonlarına doğru Android O yayınlanabilir.

Android O için Olası İsimler

Oreo, Orange, Oatcake, Oatmeal Cookies öne çıkan ihtimaller.

 

C# MSSQL Bağlantı Kütüphanesi

Posted on

C#’ta MSSQL bağlantı ve sorgu ihtiyaçlarınızı 2 satır koda indiren ufak bir kütüphane geliştirdim. Yapmanız gereken de iki şey var, bunlardan birincisi yazmış olduğum DLL’i projenize ve kütüphaneye eklemek diğeri ise sizden istediğim iki ayrı string ifade.

Bunlardan birincisi bağlantı adresi, ikincisi ise SQL sorgu metniniz.
csharp mssql baglanti
DLL’i ekledikten sonra kütüphanemize de eklemeyi unutmayalım.

using mssqlCon;

//String türünde adresi ve SQL sorgu metinlerimizi yazacağımız iki değişken tanımlayalım.
string adres,text;

//Herhangi bir event içerisinde değişkenlerimizi doldurabiliriz veya tanımlarken de yazabiliriz.
adres="Server=server_ip;Database=db_adı;user id=user_id;password=şifre";
text = "SQL Sorgunuz.";

mssqlBaglanti ms = new mssqlBaglanti(); //Sınıfımızı tanımladık.
string donus = ms.mssqlBaglan(adres, text); //Eğer sınıf bağlantısını string bir değişken içerisinde yaparsanız bağlantının başarılı olup olmadığını değişken içerisinde görebilirsiniz.

csharp mssql baglanti yapma

Sınıf sizlerden string türünde iki değişken istemektedir, bunları yukarıdaki örnekte olduğu gibi karşıladığınız zaman sorunsuz kullanabilirsiniz.

buraksakalli indir

Google, Şubat Ayı Versiyon Oranlarını Yayınladı

Posted on

Google tarafından düzenli olarak yayınlanan Android versiyon kullanım oranlarının Şubat sayıları yayınlandı ve Froyo geçen ay olduğu gibi son noktada değil, artık öldü diyebiliriz. Nougat ise sonunda %1 barajını 7.0 ve 7.1 sürümleri ile aştı. Ice Cream Sandwich ve Gingerbread %1.0 seviyelerine düşerek ölürken Jelly Bean‘in ise %0.3 oranında azaldığını görebiliyoruz. Lollipop ayrıca %0.5 oranında düştü. Marshmallow ise neredeyse %1.0 oranında büyümeye devam etti ve en büyük artış gösteren versiyon olarak yoluna devam ediyor. Bununla birlikte, Lollipop ise halen pastada en büyük dilime %32.9’luk pazar payı ile sahip. 5.1‘e kıyasla daha küçük bir paya sahip olan 5.0‘da düşüş başlamış durumda. 5.1 ise Ocak ayında zirvedeyken onun içinde artık küçülme zamanı.

google şubat ayı

Büyük ihtimalle, yeni amiral gemileri piyasaya çıktığında Nougat kullanım oranı artmaya başlayacak ve Marshmallow bu şekilde solmaya başlayacaktır. Froyo’nun ölmesi ve Gingerbread’in bu ay göründüğü üzere ölmeye başlamasıyla bizler için güzel haberler getiriyor.

Engelleri Aş v2 Beta Yayınlandı!

Posted on

21 Aralık’ta yapımına başlandığını duyurduğum Engelleri Aş v2 Beta bugün itibariyle Beta programına başvuranlardan 100 kişiye gönderildi. Yaklaşık olarak 2 hafta boyunca programı kullanarak bana yardımcı olacak test kullanıcılarına şimdiden teşekkür ederim.

Engelleri Aş v2 Engelleri Aş v2

Programın kararlı sürümü 1 ay sonra yayınlanacak ve birçok özellik dahil edilmiş olacak. Takipte kalın 🙂

Sunucu sponsorluğu için Ar-ge.org'a teşekkür ederim.

Lokal IP Adresi API

Posted on

IP adreslerine ihtiyaç duyduğunuz an da kolay bir şekilde ulaşmanızı sağlamak amacıyla ufak bir api yayınlıyorum. Bir projemde ihtiyaçtan doğunca, kalıcı bir şekilde sizler ile de paylaşmak istedim. Sonsuza dek istediğiniz gibi kullanabilirsiniz.

Text ya da JSON formatlarında lokal ip adresinin çıktısını alabilirsiniz.

Text = http://api.buraksakalli.org/ip

JSON = http://api.buraksakalli.org/ip?f=json

Örnek Kullanımlar

PHP
<?php

$ip = file_get_contents('http://api.buraksakalli.org/ip');

echo "Lokal IP Adresim:" . $ip;

?>
C#
WebClient webClient = new WebClient();

string ip = webClient.DownloadString("http://api.buraksakalli.org/ip");

Console.WriteLine("Lokal IP Adresim:" + ip);

 

 

Engelleri Aş v2 Geliyor!

Posted on

Engelleri Aş, ilk olarak 2014 yılında Türkiye’de Twitter ve Youtube engelini kaldırmaya yönelik yazmış olduğum minik bir yazılımdı. VPN, DNS veya Proxy ayarlarıyla uğraşmanıza gerek kalmayarak üzerinde bulunan bir buton yardımıyla engeli hızlıca kaldırabiliyordunuz, üstelik internet hızınız diğer giriş yöntemlerine göre düşmüyordu, çünkü yazılım yurtdışı üzerinden bağlantı sağlamıyor bu da bağlantı hızınızda bir değişim yaratmıyordu. Ancak tek kötü özelliği sadece Twitter ve Youtube engelini kaldırıyordu.

Program 35bin üzerinde kullanıcıya ulaşarak, engelsiz bir şekilde internete girmesini sağlamıştı. Bundan hareket ederek ikinci versiyonunu çıkarmaya karar vermiştim ki eğitimim buna engel oldu ve askıya almak zorunda kalmıştım. Askıdan 2015 başlarında almıştım ama bu seferde iştahım yoktu 🙂

Engelleri Aş v2 projesine yeniden başladım ve bu sefer yalnızda değilim. Bu versiyonda metin kutusuna gireceğiniz herhangi bir sitenin engelini kaldırabileceksiniz.

Programda düşündüğümüz gelişmiş birçok özellik var ve bunları yakında bloğumdan başka bir yazı ile duyuracağım. Ayrıca programın beta sürümünü 1 ay içerisinde (Finallerden dolayı, yoksa daha erken olabilirdi :)) yayınlayacağız. Beta sürümüne katılmak isteyen kişiler aşağıdaki iletişim formunu doldururlarsa beta sürümünü özel olarak kendilerine ileteceğiz ve bizlere geliştirme aşamasında yardımcı olacaklardır.