Od dłuższego czasu, niczym się z Wami nie dzieliłem. Więc teraz przyszedł czas na podzielenie się, prostymi script-fu dla dwóch wydań Gimpa. Na własnej skórze, odczułem powierzchowne traktowanie sepii w Wilbercie – skrypt pierwszy. Oraz druga wtyczka, dodająca podpis na opcjonalnym tle. Zdaję sobie sprawę że Ameryki nie odkryłem, chodzi po prostu o hobby i dobrą zabawę.
To tyle, liczę na konstruktywną krytykę.
Gimp 2.10
https://prymula.ct8.pl/download/przem-apply-sepia.scm
https://prymula.ct8.pl/download/przem-add-background-under-text.scm
Gimp 3.0.0RC2
https://prymula.ct8.pl/download/przem-apply-sepia-v3.scm
https://prymula.ct8.pl/download/przem-add-background-under-text-v3.scm
Pozrawiam i życzę miłego wieczoru
ps. Lepiej nie pytajcie czemu prawa dostępu są na 0755....
]]>Wygląda na to, że stare wersje Javy wylatują z Fedory. Ja to swojego małego projektu poratowałem się redhatowym obrazem z https://catalog.redhat.com/software/containers/ubi9/openjdk-17-runtime/61ee7d45384a3eb331996bee?container-tabs=gti>i-tabs=registry-tokens Javą 17. Co prawda ludzie z Fedory proponują instalację pakietów z repozytorium Adoptium, zdaje się najnowszej darmowej Javy, która za trzy lata padnie jak każda poprzednia (-: , ale te kontenery działają dobrze.
]]>
Gdy ustawię w KDE: otwieraj okna przypadkowo to pozycjonowanie w Qt przez .move działa.
Czy to normalne? Dla jasności to moje okno Qt mogę przestawić w "Zasadach okien" robiąc regułę, ale to przecież nie o to chodzi.
Radek Głębicki
]]>Filmy są krótkie, nie ma żadnego "lania wody" samo "mięso".
https://docs.pagure.org/copr.copr/video_tutorial.html
]]>
Jak w tytule. Czy ktoś posiada taką kombinację. Potrzebuję wersji różnych składników, które pomogą mi ponownie uruchomić kompilację do Androida.
Pozdrawiam
Radek Głębicki
]]>https://surveys.jetbrains.com/s3/django-developers-survey-2023
]]>Fedora sama w sobie jest prawie doskonała ale muszę pracować z bazą danych MongoDB i nie potrafię jej zainstalować w Fedora 38.
To pierwszy "kłopot" jaki napotkałem w Fedorze i jedyny który może mnie skierować na Ubuntu
który tak w zasadzie nie chce mi działać na nowym sprzęcie.
Wymęczyłem programik w Pythonie, który w osobnym okienku tworzy listę linii z wybranymi słowami-kluczami. Po kliknięciu w pozycję na liście przenosi do tej linii w Kate.
Jest tam również filtr. Mi bardzo ułatwia skakanie po liniach pisanych programów. Czy możecie go poużywać i podpowiedzieć jakieś ewentualne ulepszenia oraz wskazać błędy.
No chyba, że Kate ma takiego plugina zintegrowanego, a ja o tym nie wiedziałem.
Pozdrawiam i oczekuję uwag.
Radosław Głębicki
]]>Potrzebuję losować sobie dużo użytkowników przy każdym testowaniu aplikacji. Mam coś takiego:
def random_string(length=15): return ''.join(random.choices(string.ascii_lowercase, k=length)) def create_test_user(username=random_string(), email=f'{random_string()}@email.pl', password='qwerty*%123456'): user_test = User(username=username, email=email, password=password) return user_test
Problem w tym, że to nie przelosowuje ani wartości username oraz email:
In [2]: ble = create_test_user In [3]: ble2 = create_test_user In [4]: ble Out[4]: <function mekhub.tests.create_test_user(username='suvkqmwtxyxivho', email='[email protected]', password='qwerty*%123456')> In [5]: ble2 Out[5]: <function mekhub.tests.create_test_user(username='suvkqmwtxyxivho', email='[email protected]', password='qwerty*%123456')>
Pewnie to coś łatwego, ale nie mogę sobie z tym poradzić. Próbowałem dodać random.seed() przed każdym wywołaniem fukcji random_string oraz create_test_user, ale za nadal wartości username oraz email są te same.
Fukcja random_string działa zgodnie z oczekiwaniami, zwracając różne 15-znakowe ciągi. Jedynie create_test_user zwraca ciągle te same wartości. Nawet po usunięciu i zdefiniowaniu ponownie funkcji create_test_user wartości są te same.
n [1]: from aplikacja.tests import random_string, create_test_user In [2]: ble = create_test_user In [3]: ble Out[3]: <function mekhub.tests.create_test_user(username='rdemxbsltajpkja', email='[email protected]', password='qwerty*%123456')> In [4]: del create_test_user In [5]: from aplikacja.tests import random_string, create_test_user In [6]: ble2 = create_test_user In [7]: ble2 Out[7]: <function mekhub.tests.create_test_user(username='rdemxbsltajpkja', email='[email protected]', password='qwerty*%123456')>
Macie jakieś pomysły?
]]>
Piszę prosty skrypt ( w zasadzie na własny użytek, ale mogę się podzielić ), do przycinania zdjęć do najpopularniejszych formatów papierów fotograficznych. Szczerze mówiąc, póki co aplikacja obsługuje jako tako jedynie format A6 – gdyż jest jeszcze ciągle w budowie. Przycinanie działa, choć z reguły źle przycina u dołu zdjęcia, jeśli nad górną ramką jest więcej wolnej przestrzeni. Jeśli górna rama jest na górze, wówczas jest dobrze. Nie wiem z czego to wynika, czy błąd jest w moim skrypcie. Czy też błąd leży po stronie biblioteki GdkPixbuf, która notabene partaczy po wycięciu nieco zdjęcie ( spada jakość – pikselizacja ? ). Dlatego zastanawiam się na biblioteką Imlib. Jednak nie wiem czy warto się rzucać, na głęboką wodę, gdyż wydaje mi się że trudniej ją zastosować, niż Pixbuf.
Opis listingu dotyczącego skrawka z całości:
Zmienne self.picture_view_width oraz self.picture_view_height dotyczą rozmiaru obrazka w kontrolce.
Natomiast self.border_x, self.border_y, self.border_width i self.border_height nawiązują to parametrów ramki która to wskazuje jak i o ile przyciąć zdjęcie.
Zmienne self.picture_orig_width oraz self.picture_orig_height mówią o rozmiarze zdjęcia adekwatnego do kopii na dysku.
Zmienne crop_x, crop_y, crop_width, crop_height dotyczą parametrów wycinki dokonywanej z orginału
def photo_crop(self, button): if self.border_x != 0 : bx = self.picture_view_width / self.border_x crop_x = self.picture_orig_width / bx else: crop_x = 0 if self.border_y != 0: by = self.picture_view_height / self.border_y crop_y = self.picture_orig_height / by else: crop_y = 0 bw = self.picture_view_width / self.border_width crop_width = (self.picture_orig_width) / bw - crop_x bh = self.picture_view_height / self.border_height crop_height = (self.picture_orig_height) / bh - crop_y # False - kanał Alpha self.pixbuf_tmp = GdkPixbuf.Pixbuf.new(GdkPixbuf.Colorspace.RGB, False, 8, crop_width, crop_height) # zera na koncu to dest_x i dest_y self.pixbuf_orig.copy_area(crop_x, crop_y, crop_width, crop_height, self.pixbuf_tmp, 0, 0) print ("crop_x: "+str(crop_x)) print ("crop_y: "+str(crop_y)) print ("crop_width: "+str(crop_width)) print ("crop_height: "+str(crop_height)) if self.format_size == "10x15": if crop_width > crop_height: self.picture_view_width = 600 self.picture_view_height = 400 if crop_height > crop_width: self.picture_view_height = 600 self.picture_view_width = 400 # tylko do testów self.pixbuf_tmp.savev("/home/przem/Obrazy/ZAPISANY.jpg", "jpeg") self.pixbuf_view = self.pixbuf_tmp.scale_simple(self.picture_view_width, self.picture_view_height, GdkPixbuf.InterpType.BILINEAR) self.picture_view_x = 0 self.picture_view_y = 0 self.border_visible = False self.drawing_area.queue_draw()
Link do całości:
]]>A i bym zapomniał wszystkie są po angielsku.
]]>Wymęczyłem program w Python-ie do zarządzania pakietami GUI w tkinterze dla dnf. Czy jest możliwość, abyście użyli i powiedzieli czy taki twór ma sens i czy coś tam dłubać dalej. Dodawać funkcje, GUI do QT przepisać, itp, itd. No i oczywiście co zmienić. Co poprawić, usprawnić.
Jak to zrobić. Kod tutaj wrzucić jako załącznik, Instrukcję tutaj?
Pozdrawiam
Radek Głębicki
]]>Piszę sobie programik, który z ułatwi mi zarządzanie pakietami. Python, GUI Tkintera itd. Ale natknąłem się na problem.
Chcę aby instalacja pakietu była potwierdzana/przerywana przyciskami w gui Instaluj/Przerwij.
Myślę, że uda mi się to rozwiązać za pomocą przechwytywania linii z subprocess.Popen tylko, że pojawił się nastepny problem.
gdy przekazuję hasło dla sudo -S czy to przez potok
echo "password" | dnf -S install pakiet
czy przez
sudo -S <<< "password" dnf -S install pakiet
to gdzieś tam pojawia się enter i na pytanie t/N się automatycznie wciska przerywając instalację. Nie mam możliwości wybrania tak.
dodanie -n do echo nie rozwiązało problemu. Szukam takiego problemu w necie, ale czyżbym tylko ja tak miał?
ten sam efekt jest gdy np chcemy coś usunąć z pomocą sudo:
echo "password" | sudo -S rm -i /root/plik-w-katalogu-roota
Coś będę kombinował z kdesu, ale powyższe jest dla mnie zastanawiające.
Ktoś coś może pomóc?
Pozdrawiam
Radosław Głębicki
]]>Dzięki
Jakbyście znali jakieś dobre kompilatory, to też poproszę.
CodeBlock jest nie dobry.
]]>