AÖF online sınava yaparsa
AÖF 2023 de sınavları online yapma kararı almış. bende bir öğrenciyim ve bir tandığımın attığı linkte tıkladım ve sonuç beklediğim gibi… Ülkenin genel durumu burada belli oluyor. Herkes çalışmadan üretmeden en kısa yoldan köşeyi dönme derdinde. üye sayısı sürekli artıyor. şu an 10000 üzerinde kişi sürekli bir birine sınava giren varmı soru varmı diye soru soruyor… işin garip tarafı elle tutulur veride yok. 🙂
python kodlarını çalıştırılabilir (.exe) dosya yapmak
pythonda çalışmanın dezavantajlarından bir tanesi yazdığınız kodları işletim sisteminde çalıştırabilir dosya haline getirme konusudur. çok fazla tercih etmesemde bazen gerekebiliyor.. bu noktada birden fazla seçenek mevcut ancak genel olarak en popüler olanları kullanmak daha fazla kütüphane v.b. konuda soun yaşamamanızı sağlıyor.
pyinstaller seçeneklerin en popüleri diye biliriz. tabiki ilk önce kurmamız gerekiyor.
pip install pyinstaller
kurulumu tamamladıktan sonra kullanımı oldukça kolay. komut yorumluyacısında ihtiyacımız olan parametreleri girerek exe dosyasını oluşturuyoruz.
pyinstaller --onefile dosyaadi.py
komut tamamlandığından python dosyasının bulunduğu klasör içine dist ve build isimli iki yeni klasör oluştuğunu göreceksiniz. dist klasöründen exe dosyanız build klasöründen ise exe oluşturma sürecinde kullanılan dosyalar yer almaktadır.
yukarıdaki komut yapısını kullandığınızda yazdığınız kod ihtiyaç duyulan tüm sistem dosyalarını tek bir dosya içine dahil etmektedir. bu nedenden dolayı dist klasöründeki exe dosyasına incelediğinizde yazdığımız üç beş satır koda karşı oldukça büyük boyutlu olduğunuz göreceksiniz.
eğer gui şeklinde bir uygulama yaptızsanız programı çalıştırdığınız ilave bir console pencesi açılmaması adına noconsole parametresinin eklenmesi gerekmektedir.
pyinstaller --onefile --noconsole dosyaadi.py
oluşturlan dosyanın iconunu değiştirme gibi bir çok seçenek için https://pyinstaller.org/ adresi incelemenizi öneririm.
pythonda dosya içeriği karşılaştırma
iki text dosya içeriği arasındaki farkları bulmak için temel olarak dosyaları satır satır olarak okuyup satıları karşılaştırmak gerekmektedir. bu işlemi kod olarak basitleştirme adına python kullanabilieceğiniz bir çok kütüphane bulunmaktadır. bunlardan en kullanışlarıdan bir tanesi difflib dir.
aşagıdaki örnekte importlardan sonra dosyaların içeriğindeki satırları bir diziye atadıktan sonra difflib de dizi girişlerini ve istediğimiz çıktıyı tanımlarıyoruz..
import difflib
from pathlib import Path
first_file_lines = Path('fileA.txt').read_text().splitlines()
second_file_lines = Path('fileB.txt').read_text().splitlines()
html_out = difflib.HtmlDiff().make_file(first_file_lines, second_file_lines)
Path('diff_output.html').write_text(html_out)
fileA.txt | fileB.txt |
first_file_lines = Path(‘fileA.txt’) second_file_lines = Path(‘fileB.txt’) | first_file_lines = Path(‘fileA.txt’) second_file_lines = Path(‘file2.txt’).read_text() |
diff_output.html aşagıdaki şekilde görülecektir.
ngrok – statik ip ye sahip olmayan natlanmış kullanıcılar için
snap destekli bir linux dağıtım kullanıyorsanız
snap install ngrok
ile kurulumu yapalım. üyelik gerektiren
https://dashboard.ngrok.com/get-started/setup
adresine girerek tunel oluşumu için kullanılacak authtoken bilgisini ögrenelim ve
ngrok config add-authtoken <token>
ile bağlantıyı gerçekleştirelim. sonrasında bilgisayarımızdaki protokol ve portu tunelliyelim.
ngrok http 80
ekran çıktısında Forwarding satırında dış dünyadan bilgisayarımıza erişebileceğiniz bir ngrok.io adresi yer alacaktır.
Forwarding https://xxxx-xx-xxx-xx-xx.eu.ngrok.io -> http://localhost:80
bundan sonra olası tüm riskler tabiki sizeaittir 🙂
google haritalarda gariplikler
google haritalarda yer alan garip görüntüler bir ara çok popülerdi. istanbulda bir noktaya bakarken aşagıdali google-maps model bir minbüsle karşılaştım.
huawei network ekipmanları kart bilgisi
huawei network ekipmanlarında yazılım güncellemeri sonrası “display elabel” komutu çok daha kullanışlı duruma geldi.
herhangi bir router üzerinde kart hakkında temel bilgileri edinmek istersek aşagıdaki komut işimize yaracakır.
<router_fcicek>display elabel brief
Slot BoardType BarCode Description
================================================================================
LPU 2 CR57L2XEFGB23 211235505210M8123117 LPUI-51-E-2x10GBase LAN/WAN-SFP+
+ 24xGE-SFP
PIC 0 CR57L2XFC2 123PMJCNM8123036 2*10GBase LAN/WAN-SFP+
PIC 1 CR57EFGFB2 123PMHW0M7123064 24*100/1123Base-X-SFP
LPU 3 CR57L2XEFGB23 211235505210M7123046 LPUI-51-E-2x10GBase LAN/WAN-SFP+
+ 24xGE-SFP
PIC 0 CR57L2XFC2 123PMJCNM1234001 2*10GBase LAN/WAN-SFP+
PIC 1 CR57EFGFB2 123PMHW0M1234417 24*100/1123Base-X-SFP
MPU 4 CR52MPUD0 123KKR10A1234036
MPU 5 CR52MPUD0 123KKR10A1234010
PWR 8
PEM 0
PWR 9
PEM 0
FAN 10
<router_fcicek>
eğer belirli bir slot veya sub slot hakkında daha detaylı bilgi almak istersek brief parametresi yerine slot numarasnı yazmak yeterli olacaktır.
<router_fcicek>display elabel 2
python örnekleri : hafıza kullanım bilgileri
Python’da kullanılabilir hafıza bilgisini öğrenmek için psutil
adlı bir modül kullanabilirsiniz. Bu modül, sistem hafıza bilgisi gibi çeşitli sistem verilerine erişmenize izin verir. Örnek olarak, aşağıdaki kod parçacığı hafıza kullanım bilgisini gösterir:
import psutil
memory = psutil.virtual_memory()
print(f"Hafıza kullanım oranı: {memory.percent}%")
print(f"Kullanılabilir hafıza: {memory.available // (1024 ** 2)} MB")
Bu kod, hafıza kullanım oranını yüzdesini ve kullanabilir hafızayı MB cinsinden ekrana yazdıracaktır. psutil
modülünü kullanmadan önce sisteminize yüklemeniz gerekebilir. Bunun için aşağıdaki komutu kullanabilirsiniz:
pip install psutil
python örnekleri : cpu sayısı
Python’da bir sistemdeki CPU sayısını öğrenmek için multiprocessing modülünü kullanabilirsiniz. Örnek kod aşağıdaki gibidir:
import multiprocessing
# Sistemdeki CPU sayısını alın
cpu_count = multiprocessing.cpu_count()
print(f"CPU sayısı: {cpu_count}")
pip 3 de kurulum sırasında –no-warn-script-location uyarısı
linuxde pip ile paket yüklemek istediğinizde aşagıdaki hatayı alırsanız
WARNING: The script flask is installed in '/home/<username>/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
kabuk yorumlayıcı olarak bash kullandığınızı düşünerek
vi ~/.bashrc
ile bash konfigürasyon dosyasını açarak dosya içerisine
export PATH=$PATH:/home/$USER/.local/bin
satırını eklemek çözüm olacaktır.