TechLife devBlog

Styczeń 2011

Django i zduplikowane wartości kluczy

Kodowanie, Django 24 stycznia 2011 21:38

Django przy współpracy z Postgresem odstawiło dzisiaj niezłą scenę. Galeria na stabilnie działającej od ponad roku stronie nagle wysypała się przy dodawaniu kolejnych zdjęć, pod pretekstem podwójnych wartości kluczy w tabeli przechowującej pliki galerii.

IntegrityError: duplicate key value violates unique constraint "galeria_plik_pkey"

No więc sprawdzam.

SELECT max(id) FROM galeria_plik;
1573
SELECT nextval('galeria_plik_id_seq'::regclass) FROM galeria_plik;
1526

Great Scott! WTF? Ktoś zakłócił kontinuum! Nie mam pojęcia jak stabilnie działający PostgreSQL mógł nagle tak machnąć się w numeracji... Jeżeli traficie na coś podobnego nie pozostaje nic innego jak zresetowanie indeksu tabeli z właściwym numerem, jaki powinien posiadać kolejny wiersz.

ALTER SEQUENCE galeria_plik_id_seq RESTART with 1574;

I powinno działać. Komuś zdarzyło się coś podobnego?

PS. Python jednak ryje beret. Dzisiaj ułożyłem takie oto zapytanie:

FROM galeria_plik SELECT max(id);

Xfce4.8 - przewodnik

Linux, Software, Techblog 18 stycznia 2011 20:30

Poniższy tekst jest tłumaczeniem oficjalnego przewodnika po nowej wersji Xfce 4.8:

Przewodnik

Ten przewodnik przedstawi Ci wszystkie ważniejsze wizualne nowości w Xfce 4.8. Jest to tylko wizualna część tego co zostało dokonane, pełną listę zmian możecie zobaczyć w dzienniku zmian. Przewodnik po Xfce 4.6 jest również nadal dostępny.

Thunar - menadżer plików

Zdalne przeglądanie współdzielonych plików

Thunar posiada teraz wsparcie dla GVFS, dzięki czemu możliwe jest przeglądanie zdalnych współdzielonych zasobów używając Thunara oraz serwerów: FTP, Windows Shares, WebDav i SSH.

zrzut ekranu

Nowe okno dialogowe postępu operacji plikowych

Kiedy kilka operacji plikowych (kopiowanie lub przenoszenie) jest wykonywanych równolegle, Thunar teraz pokaże pojedyncze okno dialogowe, które będzie zawierało wszystkie zagregowane informacje.

zrzut ekranu

Przycisk usunięcia dla urządzeń przenośnych

Jest teraz możliwe usunięcie zamontowanych urządzeń poprzez kliknięcie na przycisk usunięcia (eject) w pobliżu nazwy urządzenia przenośnego w panelu bocznym.

zrzut ekranu

Panel Xfce

Panel Xfce w wersji 4.8 został całkowicie przepisany. Poniżej najbardziej zauważalne zmiany.

Ulepszone pozycjonowanie oraz zarządzanie rozmiarami

Xfce panel posiada teraz znacznie lepsze wsparcie dla pozycjonowanie poszczególnych paneli na ekranie. Mogą one być przeciągane i przyklejane do krawędzi ekranu. Pozycja jest zapamiętywana przy przeciąganiu panelu a sam panel może posiadać szerokość określaną w procentach długości ekranu.

Przezroczyste tła

Panel umożliwia teraz ustawienie przezroczystości jego tła jednocześnie pozostawiając jego elementy nieprzezroczystymi. Twoje panele pozostaną więc czytelne a jednocześnie ładnie wyglądające.

zrzut ekranu

Nowe edytor elementów

Nowa funkcjonalność panelu - edytor elementów - pozwala na szybką modyfikację, przesuwanie, dodawanie i usuwanie elementów. Jest to funkcja szczególnie użyteczne dla pojedynczych elementów, których nie trzeba już przeklikiwać kolejno prawym klawiszem, aby wyedytować ich zawartość. Wszystkie elementy oraz ich układ mamy dostępne w jednym miejscu.

zrzut ekranu

Tworzenie aktywatorów metodą przeciągnij i upuść

Możesz teraz przeciągnąć i upuścić elementy z menu aplikacji, wyszukiwacza aplikacji lub Thunara wprost na panel, aby utworzyć aktywator. Ta funkcjonalność powinna zadowolić sporą rzeszę użytkowników, którzy domagali się jej od lat. Aktywatory mają również zintegrowany wyszukiwacz aplikacji, który przydaje się przy dodawaniu kolejnych elementów.

Wtyczka przycisków okien

Wtyczki "Ikony okien" oraz "Lista okien" zostały teraz połączone w jedną wtyczkę o nazwie "Przyciski okien". Zawiera one inne metody sortowania ulepszone działanie w pionowych panelach oraz umożliwia stworzenie podobnej ramki jak Xfwm4 podczas przełączania Alt+tab, kiedy najedzie się na przycisk.

Nowy rozmyty zegar

Nowe wydanie Xfce bez nowego trybu zegara nie było by prawdziwym wydaniem. Pozwólcie nam przedstawić nowy "rozmyty tryb" zegara!

zrzut ekranu

Nowa wtyczka - menu katalogów

Wtyczka menu katalogów dostarcza nowe menu odwzorowujące układ każdego katalogu. Pozwala to na otwarcie konsoli lub menadżera plików w danym podkatalogu w bardzo szybki i efektywny sposób.

zrzut ekranu

Edycja manu aplikacji

Możesz teraz edytować menu za pomocą każdego zgodnego z Freedesktop edytora. Do naszych testów użyliśmy Alacarte.

Dialogi ustawień Xfce

Ulepszona konfiguracja multihead setup

Xfce wspiera teraz multihead setup dla każdego zgodnego z randr 1.2 sterownika. Niestety oznacza to, że nie zadziała na własnościowych sterownikach Nvidii.

Możesz aktywować lub dezaktywować dołączane ekrany, ustawiać ich rozdzielczość, częstość odświeżania, kąt obrotu oraz odbicie, klonować oraz rozciągać ekrany.

Czasowe potwierdzenie

Wszelkie zmiany potwierdzane za pomocą okna dialogowego ustawień muszą zostać zaakceptowane w przeciągu 10 sekund. W przeciwnym wypadku zostaną cofnięte. Zapobiegnie to uszkodzeniu np. sterowników wideo podczas nieobecności przy komputerze.

zrzut ekranu

Szybkie okno ustawień

Szybkie okno ustawień pozwala skonfigurować podwójny ekran w kilka sekund. Podłącz drugi ekran, naciśnij klawisz display lub Windows+p i wybierz żądany układ. Gotowe!

Edycja ustawień za pomocą edytora ustawień Xfce

Edytor ustawień Xfce teraz w pełni zasłużył na swoją nazwę. Nie jest on już zwykła przeglądarką ustawień (Xfconfig). Możesz teraz modyfikować, dodawać i przywracać ustawienia poprzez interfejs. Potrafi on także monitorować i na bieżąco aktualizować widok.

zrzut ekranu

Usprawniona sekcja układu klawiatury

Widok sekcja układu klawiatury otrzymał sporo miłości. Nie pokazuje już zaszyfrowanych kodów język/wariant ale używa tłumaczonych nazw języków. Edycja układu klawiatury stała się również łatwiejsza poprzez wypełnianie pól przez aktualne wartości.

zrzut ekranu

Flash player i pseudo-strumień MP4

Kodowanie, Linux, Software, Techblog 10 stycznia 2011 19:07

Co jakiś czas przychodzi mi osadzać na stronach pliki FLV z jakimś Flashowym playerem. Oczywiście nie ma z tym żadnego problemu, jednak obecnie nadciąga moda na pliki MP4 kodowane przez h264. Flash od wersji 9 umożliwia odtwarzanie tego typu plików jednak jest ale. Żeby Flash zaśpiewał jak mu MP4 zagra, potrzebuje wyciągnąć z niego metadane (w tym cały indeks zawartości pliku) czyli tzw. obszar Moov Atom. Problem w tym, że większość enkoderów beztrosko umieszcza metadane na końcu pliku MP4.

Rezultatem tej złotej myśli technologicznej jest to, że plik MP4 musi zostać w całości pobrany, zanim jakiś Flash player go zdoła otworzyć. Z małymi plikami to nie problem, jednak kazanie użytkownikowi czekać na pobranie 200 MB pliku, zamiast oglądać go w trakcie ściągania jak w przypadku plików FLV, to powrót do epoki, w której to strony zdobione były tagami <marquee>.

Wyjścia innego nie ma jak złapać za uszy metadane i przeciągnąć je na początek pliku. Na szczęście FFMPEG dostastarcza do tego celu gotowy skrypt o nazwie qt-faststart. Jego użycie raczej nie przysporzy nikogo o ból głowy.

qt-faststart in.mp4 out.mp4

Dla !linuksiarzy pozostaje skorzystanie z aplikacji dla Adobe AIR, lub przygarnięcie klasy dla PHP5.