Skip to main content

A ciekawe, czy ten + potrafi geo-informacje z EXIF zdjęcia wyciągnąć?


- 2011-07-22T14:17:45+0000 - Updated: 2011-07-22T14:17:45+0000
A ciekawe, czy ten + potrafi geo-informacje z EXIF zdjęcia wyciągnąć?
Image
Shared with: Your circles, Tomasz Torcz
- 2011-07-22T14:19:51+0000
nie wygląda. a są? :)
- 2011-07-22T14:21:08+0000
Są. Czyli nie potrafi. Lame.
- 2011-07-22T14:33:49+0000
z telefonu trzeba zaznaczyć, że się chce dodać geo-tag
- 2011-07-22T14:56:35+0000
Picasa potrafi, a albumy na G+ są z Picasy.

systemd: modyfikacja jednostek


W życiu zachodzi czasem potrzeba modyfikacji skryptów startowych (jednostek systemd). Co jeśli mamy jakiś niepełnosprawny program i chcemy opóźnić jego uruchomienie, a nie możemy tego wyrazić poprawnymi zależnościami?

Systemowe (dostarczane przez dystrybucję) skrypty startowe znajdują się w /lib/systemd/system. Administrator nie powinienen ich ruszać, za to może przesłonić skrypt systemowy swoim, umieszczając go w /etc/systemd/system. Skrypt z /lib wygląda następująco:

[Unit]
Description=uses CDP / LLDP frames to inform switches about connected hosts
Requires=network.target

[Service]
EnvironmentFile=/etc/sysconfig/ladvd
ExecStart=/usr/sbin/ladvd -f $LADVD_OPTIONS
PIDFile=/var/run/ladvd.pid
StandardOutput=syslog

[Install]
WantedBy=multi-user.target

Przepisywanie całości jest niezdrowe, dużo roboty i możliwe rozjechanie gdy aktualizacja zmieni systemową jednostkę. W takich sytucjach najlepiej posłużyć się dyrektywą .include:

.include /lib/systemd/system/ladvd.service

[Service]
ExecStartPre=/bin/sleep 20s

[Install]
WantedBy=multi-user.target

Pierwsza linijka zaciąga całą treść oryginalnej jednostki. Sekcja [Service] wprowadza interesującą nas zmianę. Końcowka jest potrzebna do korzystania z systemctl enable/disable.

Inny przykład: dodanie zależności, wpływa na kolejność startu. Tworzymy /etc/systemd/system/radvd.service z zawartością:

.include /lib/systemd/system/radvd.service

[Unit]
After=aiccu.service

3.0 zalicza czy psuje


Wraz ze zmianą numeracji jądra pojawiło się kilka problemów z programami spodziewających się numeracji x.y.z. Brak trzeciego numerka odczuły jak dotąd:

  • lvm2 — efektem jest problem z bootowaniem, naprawiony już w najnowszej wersji
  • mdadm też krztusi się z dwucyfrowym numerkiem
  • distributed.net client nie startuje, wysypuje się na inicjalizacji timerów
  • aktualizacji wymagały module-init-tools w Fedorze

3.0 udostępnia też katalog /sys/fs/selinux. Biblioteki SELinuksa korzystają z niego w pierwszej kolejności przed /selinux. Zmiana punktu mountowania zaskoczyła systemd, co kończy się pętlą komunikatów loading policy przy uruchomieniu. Poprawka już jest, w międzyczasie zbootować można dodając selinux=0 do linii poleceń jądra.

A czy Twój kod radzi sobie z nowym numerkiem? I w ogóle po co mu ta informacja, powinien sprawdzać obecność wymaganych ficzerów, a nie numer wersji.


Archived comments:

gentooGangsta 2011-06-07 11:56:56

jaki programista taki koT ;]

moher 2011-06-07 12:20:10

Samo sprawdzenie obecności ficzera nie zawsze wystarczy, przykładem mogą być dwie wersje jajka z danym ficzerem i bonusowym bugiem, który trzeba obejść w jednej z nich. Nie zawsze sprawdzanie wszystkich możliwych bugów w danym ficzerze jest optymalne.

trasz 2011-06-22 22:18:48

Ciekawe, kiedy developerzy Linuksa wynajdą getosreldate(), które pozwala unikać tego typu problemów.

zdz 2011-06-23 18:44:45

trasz: kosztem innych problemow? x.y.z.bignum zazwyczaj wydawane jest sporo po x.y.z+1.

/run Forest, /run


Linuksowi administratorzy w nadchodzących wydaniach swoich ulubionych dystrybucji natkną się na nowy wpis w katalogu głównym. Będzie to /run.

Katalog /run jest dostępny zaraz po zamountowaniu głównego /, przed pojawieniem się /var, który może być na osobnym wolumenie. Zawiera rzeczy odnoszące się do aktualnie działających program‎ów i usług (nie przechowuje wpisów przy reboocie). Są to:

  • pliki blokad (/run/lock, dostępne również jako /var/lock)
  • różne pliki uruchomieniowe, dotąd w /var/run
  • zbiór rzeczy do tej pory ukrywanych w .katalogach w /dev:
    • dane udev z /dev/.udev
    • informacje przekazane przez programy z initramfs, działające przed zamountowaniem /, dotąd w /dev/.initramfs
    • informacje z systemach plików z /dev/.mount/utab (wszystko to, co nie jest zawarte w /proc/self/mounts)
    • pliki kontrolne w /dev/.systemd
    • pliki tymczasowe z /dev/.mdadm
  • pamięć podręczną z /etc/lvm2/cache
A także inne pliki tworzone przez dracut, plymouth, bootchart i wszystkie programy, które do tej pory potrzebowały takiego miejsca. Użycie /dev było podyktowane obecnością tego katalogu od samego początku uruchamiania systemu. Nie do końca prawidłowe jest jednak przechywanie w /dev wpisów nie będących urządzeniami, a zwłaszcza ukrywanie ich kropką w nazwach.

Poza nadużywaniem /dev, dystrybucje do problemu podchodziły różnie. Debian daje /lib/init/rw, który z kolei narusza przestrzeń /lib dla bibliotek. Ubuntu udostępnia /var/run i /var/lock przy starcie, a przy mountowaniu właściwego /var dokonuje przypięcia (bindmount). Jest to jednak rozwiązanie podatne na wyścigi.

Wynik międzydystrybucyjnych uzgodnień ogłosił Kay Sievers, jednocześnie odpowiedzialny za wdrożenie tego rozwiązania w SUSE. Zawtórował mu Scott James Remnant, opiekun upstart i członek rady technicznej Ubuntu. Rozwiązanie wdrożyła Fedora, poddane zostało również pod dyskusję w Debianie.

Nasuwać się może pytanie, co z File Hierarchy Standard? Wersja 2.3 nie zakazuje, jednak wymaga rozwagi:

Distributions should not create new directories in the root hierarchy without extremely careful consideration of the consequences including for application portability.
Twórcy najważniejszych dystrybucji porozumieli się między sobą i stosowna poprawka do FHS została zgłoszona. Ostatecznie będziemy mieli: /var do rzeczy zmiennych, dostępnych pomiędzy restartami i /run dla tych mających sens jedynie w działającym systemie (wskazane więc użycie tmpfs). Coraz bliżej jest do umożliwienia funkcjonowania systemu z kluczowymi katalogami (/usr, /etc itp.) zamountowanymi w trybie tylko-do-odczytu.

Archived comments:

liori 2011-03-30 18:38:34

Aaa... czym to się różni od /tmp? Tym że dane w środku będą jakoś konkretnie poukładane?

zdz 2011-03-30 18:42:43

/tmp też może znajdować się na osobnej partycji lub wolumenie wymagającym zachodu (składanie RAID, logowanie iSCSI itp). /tmp nie daje gwarancji, że dane tam zapisane nie znikną pomiędzy dwoma uruchomieniami programu. W końcu /tmp może być odrębne dla każdego użytkownika (chociaż /run jest dla rzeczy systemowych, nie związanych z użytkownikiem). I tak, /run ma odrobinę bardziej sformalizowaną zawartość.

mh 2011-03-30 18:49:27

Ja bym poszedł na całość:
runfs on /run type runfs

Stanisław 'dozzie' Klekot 2011-03-31 11:52:51

> Debian daje /lib/init/rw, który z kolei narusza przestrzeń /lib dla bibliotek

Osobiście bym się tym nie przejmował. Kernelowe moduły też naruszają tę przestrzeń, podobnie jak firmware dla modułów, baza terminfo (pod Debianem) czy binarki i skrypty udeva.

Tłik


Projektanci GNOME3 dołożyli wszelkich starań, żeby domyślne ustawienia były eleganckie, sensowne i nie wymagały poprawiania. W menu udostępnionio możliwość zmiany niektórych ustawień, ale część została uznana za zbyt niszowe na poświęcanie im miejsca.

Zmiana przycisków na belce okna czy zachowania Nautilusa możliwa jest z linii poleceń (używając gsettings lub dconf-editor), jednak wygodniej zrobić to graficznie. Z pomocą przychodzi narzędzie Gnome Tweak Tool.

[gtt1]

Dodatek można zainstalować z linii poleceń (yum install gnome-tweak-tool) lub używając graficznego zarządzania pakietami. Większość wprowadzonych zmian jest widoczna od razu, niektóre wymagają restartu gnome-shell.

[gtt2]

Dlaczego gnome-tweak-tool nie jest instalowany od razu?

Changing the theme is tweaking, changing the colours of it or changing the background is personalisation, changing the speaker volume is a setting (if it can even be called that), changing the default printer is definitely a setting. We support personalisation, and settings, but not tweaking. (Bastien Nocera)

Archived comments:

gstlt 2011-03-24 09:00:58

Fajne. Potestuję :-)

LnxTx 2011-03-24 11:34:51

Obrazki się nie wczytują i nie "dconf-editor" a "gconf-editor".

zdz 2011-03-24 11:51:05

Serwer z obrazkami chwilowo odmówił działania. I "dconf-editor", a nie "gconf-editor". GConf jest dead.

vmario 2011-03-24 12:21:57

Najpierw wprowadzili jakąś bazę danych, w XML-u bodajże, z czymś na kształt Edytora rejestru. Teraz kontynuują tę drogę, ukrywając tak podstawowe ustawienia jak możliwość przywrócenia normalnych przycisków na belce. Oczywiście, można by wiele z tych ustawień upchnąć gdzieś zgrabnie w opcjach konfiguracyjnych, ale po co, skoro można wydawać "tweaktoole", jak w przypadku Windowsa, który ukrywa po rejestrze większość funkcji...

Minimalizm GNOME'a w stosunku do KDE bardzo mi się podoba, ale dlaczego odbywa się to kosztem wygody użytkowania?

BTW, stwierdzenie, że "Changing the theme is tweaking" jest co najmniej dziwne. Rozumiem zmiana cache'a dla miniaturek czy coś innego, co nie zainteresuje zwykłego użytkownika, ale zmiana tematu?

zdz 2011-03-24 12:31:10

vmario: właśnie "upchnąć gdzieś zgrabnie" się nie da bez mnożenia opcji. I jest to całkowicie ortogonalne do sposobu przechowywania danych konfiguracyjnych. Wcześniej był gconf-editor i gconftool. Teraz identyczne funkcje ma dconf-editor i gsettings. A gnome-tweak-tool to przydatna dodawka.

zdz 2011-03-24 12:34:29

A, i backend XMLowy to był własnie tylko jeden z backendów do GConfa. Najszerzej używany. Nic nie stało na przeszkodzie, żeby ktoś zrobił backend trzymający dane w LDAPie lub plikach .ini. Nikt nie zrobił, więc nikomu nie było to potrzebne.
Zwykli użytkownicy nie zmieniają themów. Power-userzy - owszem.

flegmatyk 2011-03-24 15:32:51

Zmiana wyglądu aplikacji jest zbyt skomplikowana dla "zwykłego użytkownika"?

Nie. Nie wierzę. Gnome upada jeszcze niżej, niż upadło Apple. Toż coś takiego to najzwyklejsze w świecie obrażanie użytkowników.

sprae 2011-03-24 19:22:59

Flegmatyk: Ktoś cię zmusza, że tak histerycznie reagujesz?

flegmatyk 2011-03-24 19:25:27

W sumie nikt mnie nie zmusza, ale trochę żal patrzeć jak całkiem przyjemna platforma staje się coraz uboższa i uboższa...

Radek 2011-03-24 20:25:06

Aż z ciekawości zainstalowałem. Całość mogę podsumować w 2 słowach:
1. Ładnie
2. Dziwnie

Ale myślę, że można przywyknąć. Wydaje mi się, że twórcy GNOME od jakiegoś czasu próbują oddzielić konfigurowanie programów od ich używania. Jak się nad tym zastanowić, to ma to sens - wszak te dwie czynności wykonujemy zupełnie niezależnie od siebie. Konfigurujemy raz, na początku, a potem tylko używamy...

Na razie jednak XFCE nie wywalę.

ofe-line


W związku z pewnymi reorganizacjami życia zmieniałem ostatnio dane osobowe w różnych miejscach. Największego zdziwienia dostarczyło mi OFE.

Dało się znaleźć stronę mojego funduszu. O, jest opcja zarządzania kontem on-line, ekstra! Telefon na infolinię zaowocował loginem (nr klienta) i SMSem z hasłem jednorazowym. Zalogowawszy się znalazłem opcję zmiany danych i wesoło wyklikałem zmiany w formularzu. Wybranie „Zatwierdź” przeniosło na ostatnią stronę procesu, która uraczyła mnie… wypełnionym formularzem w PDF. I adresem s-mail, na który mam go wysłać po wydrukowaniu. Bardzo przepraszam, ale to ma być on–line

Infolinia twierdzi, że takie wymagania nakłada ustawa. I faktycznie:

Art. 44.
[…]
2. O wszelkich zmianach dotyczących numerów, o których mowa w art. 43 ust. 3a, oraz nazwy skróconej płatnika składek, a w przypadku płatników składek będących osobami fizycznymi także nazwiska, pierwszego imienia i daty urodzenia, płatnik składek zawiadamia w formie dokumentu pisemnego według ustalonego wzoru albo w formie wydruku z oprogramowania, o którym mowa w art. 47a ust. 1, wskazaną przez Zakład jednostkę organizacyjną Zakładu.
Ustawa z dnia 13 października 1998 r. o systemie ubezpieczeń społecznych Dz.U. 1998 Nr 137 poz. 887

Nieszczęśliwy zwrot w formie wydruku z oprogramowania powoduje, że w 2011 załatwianie spraw on–line w Polsce polega na drukowaniu i wysyłaniu kopert usługodawcą pocztowym. A wspomniany art. 47a straszy dodatkowo podpisem elektroniczy weryfikowanym przy pomocy ważnego kwalifikowanego certyfikatu. USowi jakoś udaje się przyjmowac wnioski czysto sieciowo.

Odgałęzienie Lovelock


W tle masowego przebudowywania rawhide (optymalizacja przez GCC 4.6, kompresja paczek z użyciem xz) umknęła gdzieś informacja, że wydzielono już gałąź F15. Oznacza to, że:

  • aktualizacje nie trafiają automatycznie do repozytorium, muszą przejść przez Bodhi i updates-testing
  • paczki developerskie trzeba budować podwójnie, raz dla branched (F15), drugi dla rawhide (F16)
  • życie w przyszłości daje się odczuć silniej, widząc w systemie paczki z Fedory 16 na kwartał przed wydaniem wersji 15.

A jutro Alpha Freeze!

Moja recenzja “Black Swan”


O kurwa.

(czemu nikt mi nie powiedział, że to Aronofsky'ego? Bym się przygotował na wdeptanie w glebę)


Archived comments:

sziwan 2011-02-05 01:34:12

Piętno za chodzenie do kina a nie na film. W tym wieku…

zdz 2011-02-05 11:15:18

Ale że co, sziwan?

pfm 2011-02-07 08:41:04

Wgniata, co nie? Z kina wyszedłem emocjonalnie oczyszczony, czułem autentyczne katharsis. :)

Świat zrozumienia


Zmierzchało, więc Kasia pstryknęła włącznik lampy. Nic się nie zmieniło. Westchnęła. Ten dzień nie należał do najlepszych od samego początku. Wcześniej głucha cisza w słuchawce komórki uświadomiła jej, że znowu wyślizgnęło jej się rozumienie jak działa wokoder w GSM. Ogólne pojęcie, że komórka odtwarza fragment dźwięku o numerze, który wysłał aparat osoby mówiącej miała. Niestety, nie łączyło się to w na tyle jasną całość, żeby porozmawiać z bratem.

Westchnąwszy ponownie, zaczęła rozglądać się za kartką papieru i ołówkiem. Kulkowy wynalazek Laszlo Bira mógł nie zdać egzaminu, łatwo dać się rozproszyć kwestiom napięcia powierzchniowego. Tego feralnego dnia przejrzenie Wikipedii też miało by wartość jedynie mentalnej telewizji, wpadającej oczami, ale nie aktywującej neuronów.

Ołówek, kartka, westchnięcie. W lekkim półmroku przebiegła wzrokiem od wtyczki tkwiącej w gniazdku, przez włącznik do oprawy żarówki i szyderczo mrocznej świetlówki. Na rozgrzewkę wykonała prosty schemat, kółko z krzyżykiem, dwa przewody, źródło napięcia w ścianie. Za mało. Skupiła się bardziej na dwóch przewodach.

Są z metalu. Pan Siemens z literą sigma. Nośnikiem prądu są elektrony. Metal ma elektrony. Wolne elektrony przekazywane są dalej. Dostrzegła jakby delikatny rozbłysk, który szybko zgasł. Jednocześnie czuła pod czaszką kręcące się zębatki. Między neuronami również przeskakują elektrony, pomyślała. Fragmenty teorii zaczynały się układać w całość.

Na wszelki wypadek wezwała urojonych przyjaciół i rozszerzyła rozważania o admitancję. Karta była już w połowie pokryta równaniami, które zdawały się dokąś prowadzić. Z hardością wprowadziła prawo Gaussa. Gdy rozpisywała dywergencję, mięśnie musculus risorius podciągnęły kąciki jej ust z satysfakcją. Przypomniała sobie, skąd się brał ruch ładunków. Pokój wypełnił sie jasnym światłem. Patrząc na kabel niemal widziała jak pole elektryczne przesuwa się po powierzchniach drucików, tworzących linkę przewodu. światło zaczęło mrugać. No tak, zjawisko naskórkowości przy częstotliwości 50Hz jest pomijalne. Lepiej o tym nie myśleć. Blask powrócił do śnieżnej bieli.

Dzień był kiepski na tyle, żeby nie była w stanie rozruszać wiedzy wyniesionej z chemii. Szkoda, zrozumienie interakcji między kofeiną a ludzkim organizmem bardzo zwiększyło by komfort dopijanej przez nią kawy. Jak zwykle w takim chwilach zastanowiło ją, że nigdy nie miała problemów z rozumieniem działani optycznych wzmacniaczy laserowych. Pompowanie energii falami o innej długości od początku wydawało się fascynujące, a teraz pozwoliło jej wrócić do bezproduktywnego oglądania zdjęć kotów z niewidzialnymi kanapkami.

świat stał się dziwny od momentu, gdy trzeba było rozumieć jak rzeczy działają, żeby z nich korzystać. Co prawda spadło wtedy kilka samolotów, ale od tamtej pory piloci naprawdę wiedzą, dlaczego maszyna leci i co może się z nią stać. A jak ktoś nie rozumiał co składa się na cztery suwy, nie był w stanie odpalić samochodu i stanowić zagrożenia na drogach (bezwładność to też trudne zagadnienie).

[świat, w którym działa tylko to, co rozumiemy, wymyśliła Asia. Dzięki :*]


Archived comments:

Zal 2011-01-03 09:26:25

I like it. Interesujący pomysł i do tego mobilizuje do zadania sobie kilku pytań.

Chociaż w takim świecie szybko miałbym problemy z oddychaniem ;D

kate 2011-01-03 16:51:29

To mi przypomina mistyczne chwile mojego życia kiedy to z uporem maniaczki nieustannie wracałam do temtu "Jak działa złącze p-n?" Uparłam się, że wymawiając słowo "dioda" będę wiedziała o czy mówię. Nikt nie doceni poszukiwania "pierwszej przyczyny" w czasach w których płacą za to, że po prostu działa, jednak nigdy niczym nie udało mi się zastąpić tego odjazdu w chwili "acha!".

vnull 2011-01-03 17:56:53

Całkiem fajny tekst :)

zdz 2011-01-04 09:27:33

vnull: dzięki.

kate: dokładnie wiem o czym mówisz. Dla mnie olśnieniem było zrozumienie, że tranzystor faktycznie nie wzmacnia sygnału wejściowego, tylko przenosi swoje zasilanie na wyjście.

kate 2011-01-05 09:45:08

Tak w ogóle to dobry temat na wpis. Muszę kiedyś takowy poczynić ;)

vmario 2011-01-05 17:23:35

Przyjemnie się czytało ten wpis. Też lubię czasem tak popatrzeć na świat, np. gdy nudzę się w autobusie, tylko że nigdy do Gaussa nie doszedłem ;)

@zdz: Możesz rozwinąć tę metaforę, a przynajmniej wyjaśnić, co rozumiesz przez zasilanie tranzystora (czy to bipolarnego, czy polowego) i jego wyjście?

Bye bye, suid


Wychodząc naprzeciw trendowi „jeden komputer — jeden użytkownik”, od następnej wersji Fedory będzie w systemie tylko konto root. Dzięki temu możliwe stanie się wyeliminowanie programów z suidami.

A tak na poważnie, eliminacja polega na zastąpieniu suid-rootów odpowiednimi capabilities. Program, który wymaga tylko uprawnień do zmiany czasu lub używania portów sieciowych poniżej 1024, dostanie uprawnienia tylko do tego. Do tej pory wszystkie możliwości roota były przyznawane.

Wcześniej temu wyzwaniu podołał OpenWall Linux. Przez przerobienie niektórych mechanizmów pozbyto się konieczności uruchamiania przez użytkownika programów jako root. Przykładowo, zmiana powłoki, opisu, hasła czy innych pól w bazie użytkowników /etc/passwd wymagała uprawnień do modyfikacji tego pliku, a więc superużytkownika. W OWL każdy użytkownik ma swój plik w /etc/tcb, którego jest właścicielem i którego edycja nie wymaga superusera.

W Fedorze wysiłki zmierzają do konkretnego nadawania uprawnień. W sieci można znaleźć przykłady użycia setpcap. Jest to proces dość żmudny i niekoniecznie zakończy się powodzeniem, już w tej chwili idzie dość opornie. Rozwiązanie z OWL wygląda lepiej i bardziej przypadło mi do gustu.

Tak jak wcześniej ACL'e rozszerzyły uprawnienia plikowe rwx, tak teraz capabilities rozszerzają ideę rootowego suida. Admini, którzy do tej pory zwlekali z uzupełnieniem swojej wiedzy mają kolejną szansę na pobudkę z ręką w nocniku.


Archived comments:

Stanisław 'dozzie' Klekot 2011-01-01 18:40:01

> Admini, którzy do tej pory zwlekali z uzupełnieniem swojej wiedzy mają kolejną szansę na pobudkę z ręką w nocniku.

Znaczy tego, no. Zdajesz sobie sprawę że naprawdę niewiele usług potrafi skorzystać z POSIX 1003.1e ACLs? W żadnym wypadku nieznajomość POSIX 1003.1e ACLs nie powoduje problemów, a i znajomość stosunkowo niewiele pomaga.

Podobnie pewnie będzie z capabilities.

ickon 2011-01-01 19:49:40

poczekamy - zobaczymy, jak się przyjmie to zerknę dokładniej ...

zdz 2011-01-02 11:28:44

dozzie; prawda, niewiele aplikacji bezpośrednio korzysta. Ale jak już to robią, to ma to zazwyczaj większy impact, jak np. udev-acl rozdające uprawnienia do plików w /dev.

Problem widzę raczej w ,,starej gwardii'', która uważa, że "ls -l" wystarczy do sprawdzenia kto ma dostęp do pliku lub jakie uprawenienia ma program po uruchomieniu.

spinus 2011-01-03 18:00:00

Hm, a to nie jest tak, że ta ,,stara gwardia'' to ludzie, którzy lubią KISS? Łatwo szybko i przyjemnie, natomiast ACLe i podobne wynalazki zabierają dużo czasu na najprostsze zadania, jak np sprawdzenie listy dostępu czy inne mechanizmy? W Windowsie takie rozwiązanie istnieje od dawna i często widze jak koledzy z tych systemów klą na te mechanizmy. Ale być może to kwestia braku dobrych narzędzi do obsługi mechanizmów?