18 Şubat 2024 Pazar

Firefoxla İngilizce-Türkçe Çeviri Yapmak

 Firefox eklentisi kendi içerisinde bir çeviri aracıyla gelmiyor fakat çok hızlı bir şekilde eklentiler(extension) ile ister seçtiğimiz bir metne yada sayfanın hepsine çeviri yeteneği kazandırabiliriz.

Bunun için önce ektension(uzantılar) kısmına gidelim. (ctrl+shift+a)


Eklentisini kullanalım.

Sayfaları çevirmek için kısayolları kullanmak çok harika olacak.

3 Şubat 2024 Cumartesi

Ortam Değişkenlerindeki PATH Yoluna Birden Fazla Yol Eklemek

 PATH ortam değişkenine birden fazla yol eklemek, mevcut PATH değerine yeni yolların eklenmesiyle gerçekleştirilir. Yeni yollar, mevcut yolların arasına veya sonuna ; (noktalı virgül) kullanarak ayrılmış olarak eklenir. Noktalı virgül, Windows işletim sistemlerinde PATH değişkenindeki farklı dizin yollarını ayırmak için kullanılan standart ayraçtır.

Komut İsteminden PATH Değişkenine Yollar Eklemek

Windows'ta, setx komutu ile PATH ortam değişkenine kalıcı olarak birden fazla yol ekleyebilirsiniz. Ancak, setx komutunu kullanırken PATH'in mevcut değerini koruyarak yeni değerler eklemek önemlidir. Aksi takdirde, mevcut PATH değerleri kaybolabilir ve bu sistem üzerinde çeşitli sorunlara neden olabilir.

Aşağıdaki komut, PATH değişkenine iki yeni yol (Yol1 ve Yol2) ekler:

cmd
setx PATH "%PATH%;Yol1;Yol2"

Bu komutu kullanırken dikkat etmeniz gereken noktalar:

  • Yol1 ve Yol2, eklemek istediğiniz gerçek dizin yollarını temsil eder. Bu yolları kendi ihtiyaçlarınıza göre değiştirin.

  • %PATH% ifadesi, mevcut PATH değişkeninin değerini temsil eder ve bu komutla birlikte kullanıldığında, yeni yolların mevcut yollara eklenmesini sağlar.

  • Komutu çalıştırdıktan sonra, değişikliklerin etkili olması için mevcut komut istemini kapatıp yeni bir komut istemi açmanız gerekebilir.

  • setx komutu kullanılarak yapılan değişiklikler, sadece komutun çalıştırıldığı kullanıcı için geçerlidir ve sistem genelindeki tüm kullanıcılar için değildir. Sistem genelinde değişiklik yapmak için, setx komutuna /M parametresini ekleyebilirsiniz:

    cmd
  • setx /M PATH "%PATH%;Yol1;Yol2"
  • setx komutunun karakter sınırı olduğunu unutmayın. Bu sınırı aşmamak için, eklemek istediğiniz yolların uzunluğuna dikkat edin.

Yukarıdaki yöntemlerle PATH değişkenine yollar eklerken dikkatli olun ve hangi yolların eklenmesi gerektiğini bilin. Yanlış yolların eklenmesi, sistemdeki diğer programların çalışmasını olumsuz etkileyebilir.

26 Ocak 2024 Cuma

Flutterfire Configure Çalıştırılırken Alınan Hata

PS > flutterfire configure
flutterfire : The term 'flutterfire' is not recognized as the name of a cmdlet, function, script file, or op
erable program. Check the spelling of the name, or if a path was included, verify that the path is correct a
nd try again.
At line:1 char:1
+ flutterfire configure
+ ~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (flutterfire:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Şeklinde hata alıyorsanız denemeniz gerek ilk şey Henüz yapmadıysanız Firebase CLI'yi yüklemek .

Yüklediniz ve hala sorun devam ediyorsa ortam değişkenlerine  eklemek yada en iyisi
Pub installs executables into C:\Users\kullanici adi\AppData\Local\Pub\Cache\bin, which is not on your path.
You can fix that by adding that directory to your system's "Path" environment variable.
A web search for "configure windows path" will show you how.


C:\Users\kullanici adi\AppData\Local\Pub\Cache\bin\flutterfire configure     

şeklinde çalıştırın gitsin :)

Flutter'da Firebase Nasıl Kurulur.


  1. Firebase Projesi Oluşturma:

  2. Uygulamanızı Firebase Projesine Ekleyin:

    • Firebase konsolunda, Android ve/veya iOS uygulamanızı ekleyin.
    • Android için, android/app/build.gradle dosyanızdaki applicationId'yi kullanın.
    • iOS için, Xcode'da Runner target'ının Bundle Identifier'ını kullanın.
  3. Firebase Yapılandırma Dosyalarını İndirin ve Ekleyin:

    • Android için, indirdiğiniz google-services.json dosyasını android/app/ dizinine yerleştirin.
    • iOS için, indirdiğiniz GoogleService-Info.plist dosyasını Xcode projenizin kök dizinine sürükleyin.
  4. Flutter Firebase Bağımlılıklarını Ekleyin:

    • pubspec.yaml dosyanıza Firebase bağımlılıklarını ekleyin:
      yaml
    • dependencies: flutter: sdk: flutter firebase_core: ^latest_version
  5. Firebase'i Başlatın:

    • main.dart dosyanızda, main fonksiyonunda Firebase'i başlatın:
      dart
    • void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); runApp(MyApp()); }
  6. Android ve iOS Yapılandırmasını Güncelleyin:

    • Android için, android/build.gradle ve android/app/build.gradle dosyalarını Firebase dokümantasyonunda belirtilen şekilde güncelleyin.
    • iOS için, Xcode'da gerekli Firebase yapılandırmalarını yapın ve CocoaPods kullanarak pod install komutunu çalıştırın.
  7. Uygulamanızı Derleyin ve Çalıştırın:

    • Flutter uygulamanızı temizleyin (flutter clean) ve yeniden derleyin (flutter pub get).
    • Uygulamanızı bir cihazda veya emülatörde çalıştırarak test edin.

pubspec.yaml Dosyasındaki Bağımlılıkların En Son Sürümüne Nasıl Ulaşırım.

Flutter paketlerinin güncel versiyonlarını bulmak için pub.dev web sitesini kullanabilirsiniz. Örneğin, firebase_core ve cloud_firestore paketlerinin güncel versiyonlarını buradan kontrol edebilirsiniz.

👉 pubspec.yaml Güncellemesi:

yaml
dependencies: flutter: sdk: flutter firebase_core: ^x.x.x # Buraya gerçek firebase_core versiyonunu yazın cloud_firestore: ^y.y.y # Buraya gerçek cloud_firestore versiyonunu yazın

x.x.x ve y.y.y yerine, ilgili paketlerin güncel versiyon numaralarını yazmanız gerekmektedir. Örneğin, eğer firebase_core paketinin güncel versiyonu 1.0.0 ve cloud_firestore paketinin güncel versiyonu 2.0.0 ise, pubspec.yaml dosyanız şöyle olmalıdır:

yaml
dependencies: flutter: sdk: flutter firebase_core: ^1.0.0 cloud_firestore: ^2.0.0

Bu versiyon numaralarını, her paket için pub.dev üzerinden kontrol edebilirsiniz. Bu sayede, bağımlılıklarınızı en güncel ve uyumlu versiyonlarla kullanmış olursunuz. 😊👨‍💻📦

Visual Studio Code ile Flutter Uygulaması Başlatma

Flutter uygulamasını Visual Studio Code ile başlatmak için aşağıdaki adımları takip edebilirsiniz:

  1. Flutter SDK'nın Kurulumu: Flutter'ın sisteminizde kurulu olduğundan emin olun. Eğer henüz kurmadıysanız, Flutter'ın resmi web sitesinden (flutter.dev) indirip kurulum talimatlarını takip edin.

  2. Visual Studio Code Kurulumu: Eğer Visual Studio Code (VS Code) programını henüz kurmadıysanız, Visual Studio Code web sitesinden indirip kurun.

  3. Flutter ve Dart Eklentilerinin Kurulumu:

    • VS Code'u açın.
    • Sol taraftaki eklenti paneline gidin (genellikle bir kare şeklindeki simge).
    • Arama çubuğuna "Flutter" yazın ve Flutter eklentisini bulun.
    • "Install" butonuna tıklayarak Flutter eklentisini yükleyin.
    • Dart eklentisi de genellikle otomatik olarak yüklenir, ama yüklenmediyse aynı adımları Dart için de uygulayın.
  4. Yeni bir Flutter Projesi Oluşturma:

    • VS Code'da, "View" menüsünden "Command Palette" seçeneğini açın.
    • "Flutter: New Project" yazın ve seçin.
    • Proje türünü seçin (genellikle "application" olur).
    • Proje için bir konum belirleyin ve bir proje adı girin.
    • Proje oluşturma işlemi biraz zaman alabilir.
  5. Emülatörün Başlatılması:

    • Android veya iOS emülatörünüzü başlatın. Bunun için Android Studio veya Xcode kurulu olması gerekir. Alternatif olarak, gerçek bir cihazı da kullanabilirsiniz.
    • VS Code'da, sağ alt köşede bulunan cihaz seçiciyi kullanarak emülatörünüzü veya bağlı cihazınızı seçin.
  6. Uygulamanın Çalıştırılması:

    • Projenizin kök dizinindeyken, "Run" menüsünden "Start Debugging" seçeneğini kullanarak uygulamanızı başlatın.
    • Alternatif olarak, ana dizinde "F5" tuşuna basarak da uygulamayı başlatabilirsiniz.

25 Haziran 2022 Cumartesi

Türkçe Sezar Şifreleme Uygulaması C#

 Sezar şifreleme karakter kaydırma özelliğine dayalı basit bir şifreleme egzersizi olarak düşünülebilir. Kaydırma işlemi genellikle C dilindeki char bir değişken ile integer bir değerin toplanması sonucu yeni bir char değer elde edilmesine dayanır. Örneğin C dilinde char degisken; degisken = 'A'; dediğiniz ve değişkeni degisken = degisken + 2 ; denildiğinde  C değerini alır. Bu işlem Sezar şifrelemede kolaylık sağlasa da büyük küçük harf ve Türkçe karakter işin içine girdiğinde oldukça çetrefilli olmakta. ASCII tablosu üzerinden kaydırma yapmak yerine belirlenen bir dizi üzerinden kaydırma yapmak Sezar şifreleme için daha güzel bir çözüm olacaktır. Bu nedenle aşağıdaki kod bloğunda öncelikli olarak bir karakter dizisi belirlenmiş girilen metin bu char dizinde kaçıncı karaktere karşılık geldiği yeni bir integer dizi ile tutulmuş ve kullanıcıdan alınan sayı kadar bu integer dizi kaydırılmıştır. Kaydırma işlemi sonucunda dizinin sonu geçip başa dönmesi için Mod işlemi kullanmakta kaçınılmaz olacaktır.

Bu sezar şifreleme uygulaması Windows form üzerinde geliştirilmiştir ve uygulamanın görüntüsü ve kodları şöyledir;

 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text;

namespace SezarSifrelemeWindows
{
    public partial class Form1 : Form
    {
        char[] harfler = { 'a', 'b', 'c' ,'ç','d','e','f','g','ğ','h','ı','i','j','k','l','m', 'n', 'o', 'ö', 'p', 'r','s', 'ş', 't', 'u', 'ü', 'v', 'y','z','A', 'B', 'C' ,'Ç','D','E','F','G','Ğ','H','I','İ','J','K','L','M', 'N', 'O', 'Ö', 'P', 'R','S', 'Ş', 'T', 'U', 'Ü', 'V', 'Y','Z', ' ','.',',','?','!','+','-','1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };
        public Form1()
        {
            InitializeComponent();
        }


        private void btnsifrele_Click(object sender, EventArgs e)
        {
            char[] metin_char = txtmetin.Text.ToString().ToCharArray();
            int[] degerler = new int[txtmetin.Text.ToString().Count()] ;
          
            for (int i = 0; i < metin_char.Length; i++)
            {
                for (int k = 0; k < harfler.Length; k++)
                {
                    if (metin_char[i] == harfler[k])
                    {
                        degerler[i] = k;
                    }
                }
            }

            for (int m = 0; m < degerler.Count(); m++)
            {
                degerler[m] += Convert.ToInt16(combo_sifrele.Text.ToString());
            }

            for (int r = 0; r < degerler.Count(); r++)
            {
                if (degerler[r] >= harfler.Length)
                    degerler[r] = degerler[r] % harfler.Length;
            }

            char[] sifreli_metin = new char[txtmetin.Text.ToString().Count()];

            for (int t  = 0; t < degerler.Length; t++)
            {

                sifreli_metin[t] = harfler[degerler[t]];
            }

            string str_sifreli_metin = new string(sifreli_metin);
            txtsifreli.Text = str_sifreli_metin;

        }

        private void btncoz_Click(object sender, EventArgs e)
        {
            char[] metin_char = txtsifreli.Text.ToString().ToCharArray();
            int[] degerler = new int[txtsifreli.Text.ToString().Count()];

            for (int i = 0; i < metin_char.Length; i++)
            {
                for (int k = 0; k < harfler.Length; k++)
                {
                    if (metin_char[i] == harfler[k])
                    {
                        degerler[i] = k;
                    }
                }
            }

            for (int m = 0; m < degerler.Count(); m++)
            {
                degerler[m] -= Convert.ToInt16(combo_coz.Text.ToString());
            }

            for (int r = 0; r < degerler.Count(); r++)
            {
                if (degerler[r] < 0)
                    degerler[r] = degerler[r] + harfler.Length;
            }

            char[] cozulmus_metin = new char[txtsifreli.Text.ToString().Count()];

            for (int t = 0; t < degerler.Length; t++)
            {

                cozulmus_metin[t] = harfler[degerler[t]];
            }

            string str_cozulmus_metin = new string(cozulmus_metin);
            txtmetin.Text = str_cozulmus_metin;
        }
    }
}