Kategori arşivi: Programlama

Visual Studio Code ile C Programlama

  1. Visual Studio Code Kurulur. Açılır ve aşağıdaki eklentiler (extensions) kurulur. Ardından Visual Studio Code kapatılır.
    • C/C++ Extension Pack
    • C/C++
    • Code Runner (kurulumun ardından Code Runner ayarlarından “Run In Terminal” seçeneğini işaretlemelisiniz.)
    • MinGW kurulumu gerçekleştirilir. Varsayılan ayarlarla kurulumu gerçekleştirildikten sonra mingw32-base paketi kurulur.
    • Ortam değişkenlerine MinGW binary dosya klasörü eklenir.
      • Varsayılan dizin – C:\MinGW\bin
    • Visual Studio Code açılır ve kodlamaya başlanır.

    Arduino İpuçları

    Bazı başlık altında Arduino tecrübelerimden paylaşımlar yapacağım.

    • Yüklenmiş bir kütüphaneyi tamamen silme

    Arduino geliştirme yazılımınıza yüklediğiniz bir kütüphaneyi tamamen silmek için (silmek işkenceye dönüşebiliyor çünkü, arayüzden silinince toptan kalkmıyor) Windows’ta aşağıdaki dizinden kütüphanenizi siliyorsunuz.

    Belgeler(Documents)/Arduino/Libraries/kütüphanenizin_ismi

    • Manuel olarak kütüphane yükleme işlemi

    Manuel olarak kütüphane yüklemek için aşağıda verdiğim Windows dizinine kütüphane dosyanızı kopyalıyorsunuz.

    Belgeler(Documents)/Arduino/Libraries/

    Kopyaladıktan sonra Arduino program arayüzü açıp Taslak > Library Ekle diyip orada ismi bulunan kütüphanenizi seçiyorsunuz ve işlem tamam.

    Python İki Popülasyon İçin Z Skoru Hesaplama Kodu

    İki popülasyon için Python ile aşağıdaki kod vasıtasıyla iki kuyruklu Z Skoru hesaplayabilirsiniz. Girdi olarak n1, n2, p1 ve p2 değerlerini girmeniz gerekmektedir. Çıktı olarak Z Skoru değeri verilecektir.

    [pastacode lang=”python” manual=”%23!%2Fusr%2Fbin%2Fenv%20python%0A%23-*-%20coding%3A%20utf-8%20-*-%0Afrom%20__future__%20import%20division%0Aimport%20math%0A%0Ap1%20%3D%200.34%0Ap2%20%3D%200.67%0An1%20%3D%20300%0An2%20%3D%20200%0A%0Adef%20calculate_z_score(p1%2C%20p2%2C%20n1%2C%20n2)%3A%0A%09proportion_of_two_samples%20%3D%20(p1%20%2B%20p2)%2F2%0A%09z_score%20%3D%20(p1-p2)%20%2F%20math.sqrt((proportion_of_two_samples%20*%20(1-proportion_of_two_samples))%20*%20(1%2Fn1%20%2B%201%2Fn2))%0A%09return%20z_score%0A%0Aprint%20calculate_z_score(p1%2C%20p2%2C%20n1%2C%20n2)” message=”” highlight=”” provider=”manual”/]

    bash script rm no such file or directory

    Normalde rm ile komut istemcisinden silebildiğim dosyaları bash script ile silmeye çalıştığımda bu hata ile karşılaştım. Aşağıdaki şekilde script’te değişiklik yaptıktan sonra sorun halloldu.

    [pastacode lang=”bash” manual=”%23!%2Fbin%2Fbash%0A%0Afile_dir%3D%241%0Arm%20-rf%20%24file_dir%22subject%22*” message=”” highlight=”” provider=”manual”/]

    Burada dikkat edilmesi gereken husus subject’in yanında bulunan ‘*’ karakteri. Öncesinde bu karakter tırnağın içerisindeyken bunu dışarı çıkardığımda sorun kalmadı. Bu komutu ise aşağıdaki şekilde çalıştırıyorum.

    [pastacode lang=”bash” manual=”bash%20clean.sh%20%2Fhome%2Fnuh%2Ftemp%2F” message=”” highlight=”” provider=”manual”/]

    Python: iki string ifade arasındaki eşleşen blokları bulma

    İki string ifade arasındaki benzerliği bulmam gerekiyordu. Yaptığım araştırma neticesinde difflib kütüphanesi ile bu işi kolayca halledebildim. Aşağıdaki kod blogunun çıktısı hemen altında verilmiştir. Bu kod blogunda değişiklik yaparak ihtiyacınız doğrultusunda rahatlıkla kullabilirsiniz. Bu örnek şu bağlantıdan alınmıştır.

    [pastacode lang=”python” manual=”import%20difflib%0Astring1%20%3D%20%22abxcd%22%0Astring2%20%3D%20%22abcd%22%0Amatches%20%3D%20difflib.SequenceMatcher(%0A%20%20%20%20None%2C%20string1%2C%20string2).get_matching_blocks()%0Afor%20match%20in%20matches%3A%0A%20%20%20%20print%20string1%5Bmatch.a%3Amatch.a%20%2B%20match.size%5D%0A” message=”” highlight=”” provider=”manual”/]

    [pastacode lang=”markup” manual=”ab%0Acd%0A” message=”OUTPUT” highlight=”” provider=”manual”/]

    Python yararlı komutlar

    • Python çalıştırdığınız dosyanın adını görmek. Bu sayede dosya isminde geçen bir ifadeyi değişkene çevirebilirsiniz.
    os.path.basename(__file__)

    • Python scripte parametre göndermek ve onu kullanmak.
    import sys
    
    parameter1 = sys.argv[1]
    parameter2 = sys.argv[2]
    
    

    Dosyayı çalıştırırken ise şu şekilde komut göndereceğiz.

    python sample.py parameter1 parameter2

     

    PHP dosyalarını parametre göndererek çalıştırma

    Ubuntu’da komutla PHP dosyalarının çalıştırılabildiğini biliyorsunuzdur. Geçenlerde parametre göndererek bu işlemi yapmam gerekti. Bunun için öncelikle çağırmak istediğiniz php dosyasının başına aşağıdaki kodu eklemeniz gerekmektedir. Bu kod daha sonra kullanacağınız komutu uygun bir şekilde gönderecektir.

    parse_str(implode(‘&’, array_slice($argv, 1)), $_GET);

    Örneğin aşağıdaki şekilde tarayıcıdan gönderdiğiniz bir sorguyu altındaki komutu yazarak Ubuntu’dan çalıştırabiliriz.

    http://www.example.com/form.php?parametre1=deger1&parametre2=deger2

    php -f /…/…./form.php – parametre1=deger1 parametre2=deger2

    PHP Warning: exec() has been disabled for security reasons running Register Automation script

    Php’de karşılaşılan bu problemi php.ini dosyasını düzenleyerek çözülebilir. Bu dosya sunucunun  konfigürasyon dosyasıdır. Sunucuyla ilgili bir çok ayar ve kısıtlama buradan yapılabilir. Php.ini dosyasının yerini bulmak için bir php dosyası oluşturup phpinfo() fonksiyonunu kullabilirsiniz. Böylelikle sunucu ayarları görüntülenecektir. Php.ini dosyasının yeri görüntülenen sayfada Configuration File(php.ini) Path yazan yerdedir. Konfigürasyon dosyasını açıp orada

    disable_functions=system,system_exec,shell,shell_exec,passthru,escapeshellarg…

    şeklinde devam eden satıra gelip ilgili fonksiyonu oradan silerek enable duruma getiriyoruz. İstenirse aşağıdaki gibi tüm fonksiyonları silerek tüm fonksiyonları enable duruma getirebiliriz.

    disable_functions=

    Daha sonra apache web sunucusunu restart ederek değişiklikleri geçerli hale getiriyoruz.