1 2 3 4 5 6 7

User Image journalctl Jan. 22, 2023, 7:58 p.m.


List boots

journalctl --list-boots


Logs of a previous boot


journalctl -b -1


-b -1 means boot logs of -1 index of boot list


Errors since boot

sudo journalctl -p 3 -xb

-p 3 means priority err

-x provides extra message information

-b means since last boot

priorities

  • 0: emerg
  • 1: alert
  • 2: crit
  • 3: err
  • 4: warning
  • 5: notice
  • 6: info
  • 7: debug


Logs of spesific daemon from a previous time

  1. journalctl -u nginx.service -u php-fpm.service --since today

e.g.:

--since 09:00 --until "1 hour ago"


Display Kernel Logs

  1. journalctl -k



No Pager

  1. journalctl --no-pager

Tail Like

-n and -f works just like in tail


Optimize

Get disk usage

  1. journalctl --disk-usage


Compress


  1. sudo journalctl --vacuum-size=1G

  1. sudo journalctl --vacuum-time=1years





Configure

  1. sudo mkdir -p /var/log/journal # if you planning to make it persistent to see previous bot logs
  2. sudo nano /etc/systemd/journald.conf

[Journal]
#Storage=auto # make persistent if you want to keep logs
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
SystemMaxUse=100M # max size of logs
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=no
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
#ReadKMsg=yes
#Audit=yes

User Image Cross Browser Sync Sept. 6, 2021, 9:43 p.m.
User Image Peewee- Create model from table July 13, 2020, 5:44 p.m.

 

This simple example creates peewee model from exisiting  database table by pwiz module

 

user@home > python -m pwiz -e mysql -u USER_NAME -H HOST_NAME_OR_IP -p 3306 DB_NAME -t TABLE_NAME

 

User Image PyQt5 qthread example April 12, 2020, 5:08 p.m.

We are creating a worker.py file wihch is our threaded part:

# worker.py
from PyQt5.QtCore import QThread, QObject, pyqtSignal, pyqtSlot
import time


class Worker(QObject):
    finished = pyqtSignal()
    intReady = pyqtSignal(int)


    @pyqtSlot()
    def procCounter(self): # A slot takes no params
        for i in range(1, 100):
            time.sleep(1)
            self.intReady.emit(i)

        self.finished.emit()

And the main window part which is our main thread running in main.py file

# main.py
from PyQt5.QtCore import QThread
from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QGridLayout
import sys
import worker


class Form(QWidget):


    def __init__(self):
        super().__init__()
        self.label = QLabel("0")
 
        # 1 - create Worker and Thread inside the Form
        self.obj = worker.Worker()  # no parent!
        self.thread = QThread()  # no parent!

        # 2 - Connect Worker`s Signals to Form method slots to post data.
        self.obj.intReady.connect(self.onIntReady)

        # 3 - Move the Worker object to the Thread object
        self.obj.moveToThread(self.thread)

        # 4 - Connect Worker Signals to the Thread slots
        self.obj.finished.connect(self.thread.quit)

        # 5 - Connect Thread started signal to Worker operational slot method
        self.thread.started.connect(self.obj.procCounter)

        # * - Thread finished signal will close the app if you want!
        # self.thread.finished.connect(app.exit)

        # 6 - Start the thread
        self.thread.start()

        # 7 - Start the form
        self.initUI()


    def initUI(self):
        grid = QGridLayout()
        self.setLayout(grid)
        grid.addWidget(self.label, 0, 0)

        self.move(300, 150)
        self.setWindowTitle('thread test')
        self.show()


    def onIntReady(self, i):
        self.label.setText("{}".format(i))
        # print(i)


app = QApplication(sys.argv)

form = Form()

sys.exit(app.exec_())

The only connection between worker and main is via emit and pyqtSignal. This is the critical part (çokomelli)

 

 

Reference: https://stackoverflow.com/a/33453124

1) Be sure you are a member of the lp group . İf not :

sudo gpasswd -a YOUR_USER lp

then relogin or reboot

2) Then install capt-src from aur

i used yay for it. An be sure cups installed as a dependency of capt-src

yay -S capt-src
sudo pacman -S cups

3) Enable and check cups

systemctl start org.cups.cupsd.service
systemctl status org.cups.cupsd.service 
# At this point you must see "active" status without errors as an output. 
# If you see some errors that means that you are missing something
# After everything goes well enable the service permenantly
systemctl enable org.cups.cupsd.service

4) Check where is your printer rested. In py pc it is on lp1

ls /dev/usb/lp*

5) Enable and check capt

sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59687 -E
sudo /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp1 # lp1 is our printers port that we checked before
sudo systemctl start ccpd.service
sudo systemctl status ccpd.service # Status must be active without any errors
sudo systemctl enable ccpd.service

6) If everything goes well you must see "Redy to print!" mesage after below lines

captstatusui -P LBP2900 

 

Note: Restarting or relogin is important after you add yourself to the lp group

User Image Pycharm plugins Feb. 19, 2020, 9:19 p.m.
  1. Gradianto
  2. Idea Mind Map
  3. .ignore
  4. BashSupport
  5. ExtraIcons
  6. Flake8Support
  7. MakefileSupport
  8. Mypy
  9. Pylint
  10. Python Security
  11. Requirements
  12. Sourcery
User Image Basit systemctl çalışması March 17, 2019, 9:12 p.m.

Yeni bir systemd servisi oluşturuyoruz:
 

sudo nano /etc/systemd/system/SERVIS_ADI.service

 

İçeriği:

[Unit]
Description=BASIT_ACIKLAMA
[Service]
ExecStart=KOSACAK_UYGULAMA
[Install]
WantedBy=multi-user.target

 

5 basit parametre ile kontrol edebiliyoruz:

 


# yeni bir dosya olusturdugunuzda veya degistirdiginizde calistrimeniz gerekir.
sudo systemctl daemon-reload SERVIS_ADI.service

# Bilgisayar açılışında otomatik başlatır
sudo systemctl enable SERVIS_ADI.service

# Servisi başlatır
sudo systemctl start SERVIS_ADI.service

# Servisi durdurur
sudo systemctl stop SERVIS_ADI.service

# Bilgisayar açılışında otomatik başlatmasını durdurur
sudo systemctl disable SERVIS_ADI.service

 

User Image Taiga media url sorunu Dec. 24, 2018, 9:53 p.m.

Taiga'nın media urllerini localhost olarak göstermesini önelemek için

taiga-back/settings/local.py > 

MEDIA_URL = "http://<your_host>/media/"

olarak yeniden düzenlenmeli

User Image Dekoratörler Nov. 29, 2018, 11:37 a.m.

Basit Dekoratör Kullanımı

 

def my_decorator(func):
    def wrapper(var1: int, var2: int):
        print("Foksiyon cagirimindan once burasi calisir")
        retval=func(var1, var2)
        print("Foksiyon cagirimindan sonra burasi calisir")
        print("Carpim={}".format(var1 * var2))
        return retval

    return wrapper


@my_decorator
def topla(var1: int, var2: int)->int:
    print("Fonksiyon cagirildi")
    return var1 + var2


if __name__ == '__main__':
    print(topla(3,5))

 

 

Çıktısı:

Foksiyon cagirimindan once burasi calisir
Fonksiyon cagirildi
Foksiyon cagirimindan sonra burasi calisir
Carpim=15
8

 


 

Fonksiyon Argümanlarıyla Dekoratör Kullanımı

 

def my_decorator(func):
    def wrapper(*args, **kwargs):
        print("Foksiyon cagirimindan once burasi calisir")
        retval=func(*args, **kwargs)
        print("Foksiyon cagirimindan sonra burasi calisir")
        print("Carpim={}".format(args[0] * args[1]))
        return retval

    return wrapper


@my_decorator
def topla(var1: int, var2: int)->int:
    print("Fonksiyon cagirildi")
    return var1 + var2


if __name__ == '__main__':
    print(topla(3,5))

 

Çıktısı:

Foksiyon cagirimindan once burasi calisir
Fonksiyon cagirildi
Foksiyon cagirimindan sonra burasi calisir
Carpim=15
8

 

User Image Motosiklet Bakımı Nov. 17, 2018, 9:18 p.m.

AKÜ BAKIMI 

Motosiklet uzun süre çalıştırılmadan bekletiliyorsa özellikle kış aylarında en az haftada bir kez çalıştırılsın.Eğer bu imkan yoksa akü sökülüp bir tahta üzerine konmalıdır ve akü suyu ılık bir ortamda saklanmalıdır.Uzun süre kullanılmayan akü lerin elektrolit petekleri sertleşir ve ömrü kısalır.Akü su seviyesi alt ve üst sınır çizgilerinin orasında olmalıdır.Su ilavesi ise saf su ile yapılır.   

ZİNCİR BAKIMI VE AYARLANMASI 

Zincir boşluğu ayarlanırken motosiklet sehpada olmadan kendi ağarlığı üzerine bırakılarak zincirin esneme payı 2,5-3 cm. olarak ayarlanmalıdır.Zincir ayarı yapılırken ise arka teker tesbit vidası gevşetilir ve karşılıklı gergi vidalarından sağ ve sol eşit olarak germek kaydı ile ayar yapılır.Zincir boşluğu gevşek bir şekilde bırakıldığı zaman 100-200 km. Sorun yaratmayabilirama daha sonraları zincir atar. Eğer zincir çok gergin bir şekilde ayarlanırsa zincir kopar ve aşınır ses yapar.   

FREN BAKIMI 
Fren balatası aşındığı zaman fren hidroliği azalma yapar.Motosiklet uzun süre yağmur altında bırakıldığı taktirde fren hidroliğinin tahliye kanalından içeriye su sızar ve fren pedalında yumuşama olur. Böyle bir durumda yapılacak şey fren hazne kapağını açıp içindeki hidroliği kapağında yazan seri nolu (örneğin dot-3,dot-4,dot-5) hidrolik ile seviyesine kadar doldurulur.Bu işlem yapılırken fren hidroliği hazneden alındığında kesinlikle frene basmamak gerekmektedir. Bunun yanında fren merkez beyninin üzerindeki hava alma sübap vidası kesinlikle açılmamalıdır ve aynı seri nolu hidrolik yağı konmasına dikkat edilmelidir.   AMORTİSÖR Motosikleti yağmurlu havalarda kullandıktan sonra amortisörlerdeki çamuru temizlemeye özen gösterilmesi gertekiyor,aksi taktirde amortisör bu çamuru sıyıramaz ve içerisine girer.Bu birikim amortisör yağ keçesini aşındırır ve amortisör yağ kaçırmaya başlar. Amortisörlerinde körük bulunan motorlar ise bu durumdan korunmaktadırlar. Zamanla tozlar hassas mili zımpara gibi zedeler ve burçları bozar. Ön amortisörler,süspansiyon ,yön tayini ve motosikletin dengesini sağlar. Ön amortisörlerdeki dengesizlik üst süratlerde dengesizliğe yol açar.Amotisör ayarları ise yol şartlarına göre yapılmlıdır stabilize yollarda yumuşak asfaltta ise sert olmalıdır.Bu ayar ise amortisörün altında ve ya üstündedir.Oklarla ayar yapılacak şekiller gösterilmiştir.H harfi "hard S harfi ise "soft" anlamına gelmektedir.Stabilizede soft asfaltta ise hard ayarına getirilir. Bu yapılmazsa yüksek süratte sallama yapar stabilizede ise amortisör görevini yapamaz.   


ROLANTİ AYARI
Tek silindirli motosiklerde,dakikada 800-1100 devir,4 silindirli motorlarda ise 1000-1200 devir/dakika arası olmalıdır.Rolanti ayarı karbüratörün gaz telleri kolları arasındadır. Tornavida ağızlı ve ya elle çevirile bilecek şekilde düğmelidir.Saat yönüne çevrildiği zaman yükselir.Bunun tam tersi yapılırsa düşer.Devir saatleri olmayan motorlarda teknik servislerde bulunan dijital evir saatleriyle yapılır.Dvir düşük olursa motor trafikte stop der ve geç çalışır. Yüksek olursa kompresyon yapamaz fazla benzin yakar.   

TEL JANTLAR

ilk 1000 km de ve her 5000'de jant tellerinin sıkılması ya da kontrol yapılması gerekir. Teller sıkılırken sibop yanından başlayıp sibop yanında bitirilmelidir. Jant telleri bir müddet sonra kopar ve jant dağılır bu yapılırsa dağılması önlenmiş olunur.Teller koptuğu zaman lastik yalpa yapar, dengeyi bozar, virajlarda kayar.   

HAVA FİLTRESİ

Kullanılan yolun toz durumuna göre 500-1000 normal koşullarda ise 5000 km de bir temizlenmelidir.Filtre temizlenirken sünger filtreyse sıvı deterjanla temizlenir kuruduktan sonra 10 numara makine yağıyla yağlanır.Daha sonra Yağı sıkılıp yuvasına oturtulur. Hava filtresi temizlenmediği zaman motosiklet fazla benzin yakar ve yüksek devirlerde kesiklik yapar.   

RADYATÖR BAKIMI

Yedek su deposundan su seviyesi kontrolü yapılır.Eksik olduğu kadar saf su veya antifiriz eklenir.Radyatör suyu her 1000 km de kontrol edilir.Radyatör peteklerinde çamur varsa fırçayla temizlenir.Aksi taktirde motor hararet yapar.   


EKZOZ 
Genellikle eksoz çürümelerine hatalı kullanım neden olmaktadır. Motorunuzu çalıştırdıktan sonra tam ısınmadan stop etmeniz, egzoz içerisindeki buharın suya dönüşmesine ve çürümeye yol açar.Bunu engellemek için motorunuz ısınmadan stop etmeyin.   


ELEKTRİK AKSAMLARI
Elektrik aksamlarını mümkün olduğu kadar tozdan korumakta yarar vardır.Soketleri ise anti-korozyon spreyleriyle koruma altına almak korozyonu ve yemassızlığı engeller.   


KIŞA HAZIRLIK
Eğer motosikletinizi kışın kullanmayacaksanız,akünüzü söküp oda sıcaklığında saklayınız, deponuzu doldurmanız lazım aksi taktirde depo paslanabilir. Lastiklerinizi yerden kesin veya altına tahta koyup betona temas etmesini engelleyin. Bujilerinizi sökün ve silindirlere bir kaç damla yağ damlatıp marşla bir kaç kez çevirin.Metal aksamları ince film şeriti oluşturacak şekilde hafif yağlayın,aynı şekilde ziciride yağlayın.Çanta veya sele gibi suni derileri vazelinle yağlayıp koruma altına alın.Elektrik aksamlarını anti-korozyon spreyleriyle temizleyin ve bir dahaki yaza kadar motorunuzun üstünü örtün.  


ORJİNAL PARÇA KULLANIN
Motosiklet denge üzerinde giden bir araç.Motor blogu mekanik bir bilgisayar gibi iş görüyor.Bakım ve onarımlarında orjinal parça kullanmak ise hayati önem taşıyor.Minik bir civata yerine sarılan geçici tel gibi geçici çözümler ancak bir müddet sizi götürür fakat diğer aksamlarada zarar verebilir.  Örneğin orjinal balata yerine otomobil balatası perçinletmek yanlış.Balatanın orjinalinde özel karşıt madde kullanılıyor ve otomobil balatasıyla diğer balatalar birbirini tutmuyor bunun sonucunda frenlerde zayıflama oluyor.  Bujilerde ise ısı derecesine ve elektron uzunluğu,motorun sıkıştırma hücresi,boşluk mesafesine göre özel olarak ayarlanıyor bu yüzden katalogtaki bujileri kullanmak lazım.  Segmanlardada durum aynı uydurma sekman doğru değildir.Segmanın malzemesiyle silindirin malzemesi aynı olması lazım yoksa biri diğerini aşındırabilir.   Lastiklerde yapılan yanlışlardan biride daha iyi görünmesi için arka lastiğin büytülmesi.Ancak jant dar lastik büyük olunca bombe yapar ve yere bastığı yüzey azalır.  Fren hidroliğinde orjinalinin dışındaki yağlar fren merkez lastiklerinde şişme yapar ve basınca dayanamayıp patlayabilir.Conta değişiminde orjinal kullanmakta yine fayda var çünkü conta kalınlığı önemlidir.   Sigorta kullanımında atan sigorta yerine yakın numara değil aynı numara kullanılmalıdır mesela 10 amperlik yerine 15 amper takılmaz.   Radyetörlere saf su yerine normal su kullanılması peteklerde kireç oluşmasına ve tıkanmasına yol açar.  Krank yataklarının taşlanmasıda yapılan hatalardan biri metalin üzerinde 0.5 mikron derinlik ve sertlik var. Bu taşlandığı zaman sertlik kayboluyor ve yatak sarıyor.


1 2 3 4 5 6 7