Linux.pl  :   Newbie   Gry   Biznes   Dystrybucje   Forum   Blog   Wiki   Hosting
blog.Linux.pl - oficjalny blog Linux.pl r e k l a m a
  Jesteś niezalogowany.
 Zaloguj się
 Zarejestruj się
 Zapomniałem hasła...
   Strona główna  |  + dodaj nowy wpis  |  Reklama  |  piątek, 12 marca 2010 r.   
   Przeglądarka postów

Szukany tag: Linux

  Susbsytem: Console ;-)
notgnucy  |  2009-08-24 11:23:58

Niekiedy spotykam się z "oskarżeniami" początkujących użytkowników, że muszą uruchomić konsolę, by wejść w nano lub mc. No cóż... Patrząc na ich doświadczenia z Windows, faktycznie mogą mieć pretensje. Tymczasem detekcja czy użytkownik może odbierać nasze komunikaty/wprowadzać informacje nie jest taka trudna. Każdy program mógłby mieć te kilka linijek kodu + trochę na utworzenie pseudoterminala i uruchomienie xterm-a.

W swoich podróżach zaczynałem od skryptów w Bash-u. Zauważyłem, że polecenie read, gdy nie może pobrać danych kończy się z kodem wyjątku. Problemem była jednak konieczność uruchomienia xterm-a z nową instancją naszej aplikacji(!!). Nie jest to bardzo złe, ale w niektórych przypadkach nasze rozwiązanie mogłoby zawieść. Zaraz po tym odkryłem, że programy w C przy read, jeżeli czytamy z wejścia nie kanonicznego zachowują się tak samo. Pozwoliło mi to na stosowanie podobnych praktyk w nich.
Główną wadą wspomnianego rozwiązania jest zmuszanie użytkownika do podania jakiś znaków na samym początku działania aplikacji. Może da się skorzystać read z przełącznikiem timeout, lecz nie testowałem. W dodatku programista, chcąc przekazać jakieś dane naszemu programowi na samym początku musiałby wysyłać mu pustą linijkę.

Zaraz po tym dostrzegłem isatty, więc wszystkie programy dokonywały tego na standardowym wyjściu i wejściu, by odkryć prawdziwe swoje otoczenie(Bash 4, a może nawet i starsze korzysta z podobnej sztuczki, lecz w celu osiągnięcia innego celu - gdy wykryje, że nie ma dostępu do terminala, przełącza się w tryb nie interaktywny, lecz robił to na standardowym wyjściu i wyjściu błędów). Te rozwiązanie powoduje liczne problemy, gdy chcemy korzystać z narzędzia w jakimś skrypcie. Wystarczy tylko przekierować jeden z deskryptorów do wyjścia, aby program się zakończył i odpalił nową instancję w oknie.

Następnie odkryłem, że mamy szereg zmiennych środowiskowych pomocniczych, więc nowsze rozwiązania w Bash-u korzystały z nich. Jednak nadal uruchamiały swoją nową instancję w xterm-ie. Te rozwiązanie było już prawie idealne.

Z pomocą przyszedł mi przełącznik -S w xterm-ie. Na początku nie zrozumiałem jego znaczenia, więc nic mi nie wychodziło. Zamiast ładnego pseudoterminala, otrzymywałem pseudoterminal niepoprawnie obsługujący znak przejścia do nowej linii, wysyłający nadesłane mu dane, itd. Problem leżał w tym, że na siłę przekazywałem xterm-owi końcówkę slave(tak wydedukowałem ze strony man-a tego narzędzia), gdy chciał mieć końcówkę master. Jesteśmy już prawie u celu - wytrzymaj trochę ;-) .

Po zamianie master/slave i slave/master otrzymałem pięknie działający terminal... Jednak zaraz - w czym? No dobrze. Przed odkryciem, że mam mu dać master pracowałem nad dwoma rozwiązaniami tego samego problemu - jedno przez bibliotekę z własną procedurą init(więc działa tylko na Linuksie i może paru innych systemach), a drugie przez aplikację uruchamiającą dwa pseudoterminale. Te drugie rozwiązanie się nie sprawdziło, lecz jako pierwsze zaczęło działać.

Pierwsze rozwiązanie polegało/polega na detekcji przy pomocy odkrytych metody czy mamy dostęp do terminala. Jak to wygląda? Przede wszystkim stosujemy starą, sprawdzoną sztuczkę z isatty, a także zmiennymi środowiskowymi: is_x_server_up i WINDOWID. Po wykryciu, że dzieje się coś złego, otwieramy pseudoterminal, uruchamiamy xterm-a z końcówką master, a następnie podmieniamy otwarte deskryptory wejścia/wyjścia/błędów na slave. Jedynym problemem jest to, że nie ustawiamy zmiennej środowiskowej WINDOWID - nie wiem, skąd mam wziąć WINDOWID okna otwartego emulatora terminala(tzn. domyślam się, ale byłyby to sztuczki zakazane), a nie jestem maintainerem xterm-a. Rozwiązanie sprawdza się. Wiele programów w C zlinkowanych z moją bibliotekę po prostu działa. Bash 4 ładujący moją bibliotekę dynamicznie w trybie interaktywnym, a także po drobnych przeróbkach(usunięciu niewielkiej części - tego z detekcją czy ma dostęp do terminala) też działa. Nawet pokusiłem się o podmianę Bash-a w swoim systemie na ten zmodyfikowany, by ponownie się zalogować - okienko terminala nie wyświetliło mi się nawet na sekundę! Tak więc stworzyłem rozwiązanie nawet działające, które może umilić życie niektórym osobom. Wystarczy tylko zlinkować niektóre programy z moim rozwiązaniem(jak np. cat, mc, nano), niektóre powinny ładować moją bibliotekę dynamicznie w razie potrzeby(jak Bash, choć jemu nie jest to potrzebne), a inne lepiej zostawić w spokoju(jak cp, rm, mkdir, touch, itd. ).

Zdaję sobie sprawę, że pewnie jeszcze dużo pracy przede mną, lecz moja biblioteka powstawała bardziej dla zabawy. Dobrze byłoby, gdybym miał możliwość emisji jakiegoś sygnału, gdy aplikacja chce czytać ze standardowego wejścia(SIGSTOP w ustawieniach kontrolnych?) jednak sobie na razie odpuszczę. Czekam na wszelkie sugestie z waszej strony. Wiem, że mnie zabijecie za ten szatański pomysł - przecież jest opcja \"uruchom w terminalu\", ale nie odbierajcie mi radości z zabawy ;-).

Wyjaśnienie, co do tytułu. Rozwiązanie wygląda podobnie do tych z systemów Redmount. Mamy tam wartość w nagłówku pliku wykonywalnego, która określa podsystem(POSIX, GUI, Console, itd. ). W moim wypadku dodajemy nazwę mojej biblioteki do tabeli importów. Choć pierwotnie się na tym nie wzorowałem, to jednak mógłbym(aż dreszcz przechodzi po plecach, że jednak mają dosyć ładne rozwiązania niekiedy).

Pobierz źródła: http://slawek.lach.art.pl/cli2gui-lib.tar.gz


Drukuj  | Zapisz w PDF  | wykop.pl  | KomentarzeZobacz komentarze (2)
  ... nadal po macoszemu.
TheUsh  |  2008-12-22 16:16:02

Od połowy grudnia Telewizja Polska zintegrowała serwis interaktywny iTVP ze swoją stroną główną www.tvp.pl . Kilka kosmetycznych zmian w wyglądzie serwisu poprawia jego czytelność i pozwala odetchnąć oczom od ciemnych barw jakie dominowały wcześniej.

Jednak nie wygląd jest celem moich rozważań, a sama technologia zastosowana do transmisji, którą w końcu należało by wymienić, a estetykę strony zostawić na później. To co mnie wkurza najbardziej, to narzucanie użytkownikom Jedynie Słusznego rozwiązania, jakim jest system Windows i jego Media Player. Jak możemy przeczytać w wymaganiach dotyczących systemu operacyjnego i oprogramowania, do odtwarzania materiałów na stronie potrzebna jest „Legalna wersja Windows XP/SP2, 2003, Vista oraz odtwarzacz Windows Media Player v10 (wraz z zalecanymi aktualizacjami) lub v11”. Fajnie, przecież rozwiązania Microsoftu są najlepsze...

Kiedyś w internecie czytałem na temat przywiązania iTVP do jednej platformy i osoba wypowiadająca się w tym artykule udowadniała, że skoro projekt ten nie jest finansowany ze środków publicznych, to nie musi tak dbać o interoperacyjność itd... No ale proszę, już nawet wielkie, komercyjne firmy z zachodu lepiej traktują użytkowników innych systemów... Spójrzmy na przykład www.hulu.com , którego właścicielem jest NBC Universal i News Corp. . W tym serwisie każdy użytkownik internetu w USA ma dostęp do tysięcy materiałów: od programów rozrywkowych, po najnowsze seriale i wystarczy do tego tylko przeglądarka internetowa z pluginem flash, więc jednak da radę... W Polsce jednak, jak to zwykle bywa, wspiera się monopol... Dzięki wielkie...

Z FAQ na stronie: „Pod Linuxem filmy TVP można oglądać używając np. oprogramowania mplayer, mozila mplayer plugin i kodeków wmv. Niestety, nie można oglądać programów materiałów zaszyfrowanych, zazwyczaj płatnych - jak dotąd mplayer nie umie sobie z nimi poradzić”. Ciekawe czemu mplayer nie potrafi sobie poradzić z DRMami? Może po prostu przez to, że ciężko zaimplementować całkiem zamknięty standard bez dokumentacji? Ale nie tylko to jest problemem - materiały, przed którymi TVP zamieściło reklamy (jak np. „Boso przez świat” w chwili obecnej), w ogóle nie chcą się odtworzyć na jakimkolwiek linuksowym odtwarzaczu, mimo że kodowane nie są.

Mam nadzieję, że może jednak ktoś kiedyś w TVP przejrzy na oczy i skorzysta z jakiejś bardziej przyjaznej i niezależnej od platformy technologii dystrybucji materiałów wideo...

 


Drukuj  | Zapisz w PDF  | wykop.pl  | KomentarzeZobacz komentarze (3)
  lsmod - New Generation
Marcin Piotr Grondecki  |  2008-12-14 01:51:40

Program lsmod jest wręcz modelowym przykładem realizacji idei KISS. I jest to powodem dla którego za każdym razem, gdy trzeba mi wykonać nieco operacji na modułach, pisać muszę wiele wiele znaków nad tych 5 liter polecenia...

Jako człowiek leniwy uprościłem sobie życie, pisząc, rzecz jasna, skrypt "obudowujący" lsmod. Cóż z niego otrzymuję,  w odpowiedzi na jakie parametry?

Pierwsza sprawa to fakt, że nazw sprawdzanych modułów możemy podać więcej niż jedną; w odpowiedzi na to uzyskujemy listę złożoną z sumy poszukiwań dla każdej z podanych nazw. Komu jak komu, ale mi to ułatwia życie.

Sprawa wręcz pierwszorzędna (mimo punktu powyżej) to oczywiście fakt, że podawane tzw. nazwy są w istocie wzorcami REGEXP (zgodnymi z grep -E).

Istotna rzecz to kod wyjścia: wynosi 0 jeśli nie podaliśmy żadnego wzorca, czyli otrzymaliśmy listę wszystkich modułów, lub gdy podaną listę wzorców spełnia nazwa przynajmniej jednego modułu. Właściwie to nie wiem czy słowo "spełnia" w poprzednim zdaniu ma sens, ale niech tak zostanie.

Inne parametry, to rzecz jasna "-i" oraz "-q" - bez nich czasem ciężko żyć. Pierwszy z nich odpowiada za ignorowanie wielkości znaków, drugi za "ciszę na planie", czyli za to, czy wyniki działania skryptu są w ogóle wypisywane na terminal - oczywiście dalej otrzymujemy "skrót odpowiedzi" w postaci kodu wyjścia.

Przykłady:

1. lsmod.sh -q ^option[[:blank:]]

Skrypt "kontroluje" czy mamy załadowany moduł o nazwie option.

2. lsmod  -i option oss

Lista modułów o nazwach zgodnych z którymś ze wzorców lub też tych, które są przez moduły o nazwie zgodnej z choć jednym podanym wzorcem wykorzystywane.

######################################

#!/bin/bash
IGNORE_CASE_PARAM='-i'
unset IGNORE_CASE
QUIET_PARAM='-q'
OUT='/dev/stdout'
FIFO=/tmp/$$
mkfifo $FIFO

# storage for exitcode
RES=$(mktemp)
echo 1 > $RES

PARAM=''
while [[ $# != 0 ]]; do
        [[ $1 == $IGNORE_CASE_PARAM ]] && CASE='-i' && shift && continue
        [[ $1 == $QUIET_PARAM ]] && OUT='/dev/null' && shift && continue
        PARAM=$PARAM'|'$1
        shift
        done
PARAM=${PARAM:1} # one pipe too much at begining
[[ "$PARAM" ]] || echo 0 > $RES # no pattern, co we exit with 0

lsmod > $FIFO &

cat $FIFO | while read L; do
        [[ "$PARAM" ]] && echo "$L" | grep -E $CASE "$PARAM" > $OUT
        [[ $? == 0 ]] && echo 0 > "$RES" # module found - we exit with 0
        [[ "$PARAM" ]] || echo "$L" > $OUT;
        done

CODE=`cat $RES`
rm $FIFO $RES
exit $CODE

######################################


Drukuj  | Zapisz w PDF  | wykop.pl  | KomentarzeDodaj komentarz
  Kernelowy poślizg
Paweł Smoliński  |  2007-11-16 23:02:21

Wydarzyła się dzisiaj rzecz ciekawa: numer najnowszej wersji jądra w jeden dzień przeskoczył z wersji 2.6.23.1 do 2.6.23.8. Co ciekawe, na serwerze FTP (ftp.eu.kernel.org) są również umieszczone wersje od 2.6.23.2 do 2.6.23.7 i wszystkie one zostały umieszczone tam w przeciągu... 2 godzin. Podobna różnica w wydaniu wersji widnieje również w Changelogach (wg informacji w nich zawartych wersja 2.6.23.2 została wydana 16 listopada o 17:19, a 2.6.23.8 o 19:14 czasu polskiego). Zapewne w najbliższym czasie poznamy bliższe informacje dotyczące tego niecodziennego zjawiska...


Drukuj  | Zapisz w PDF  | wykop.pl  | KomentarzeZobacz komentarze (1)
  Artykuł Polityki o Linuksie
TheUsh  |  2007-07-27 21:21:27

"Świat bez okien i bram" - tak zatytułowany jest owy artykuł - w obiektywny sposób opisuje Linuksa. Uświadamia "niewtajemniczonych", że wcale nie są skazani na Windowsy. Przedstawia zalety systemu spod znaku pingwina do których autor artykułu zaliczył m.in. bezpieczeństwo i stabilność. Do wad zaliczono brak sterowników dla różnej maści sprzętu (wraz z wyjaśnieniem dlaczego tak jest) i brak wsparcia technicznego dla większości dystrybucji. Autor zwraca jednak uwagę, że pomoc można uzyskać na forach takich jak linux.pl oraz jakilinux.org. Zapraszam do lektury.

Link do artykułu "Świat bez okien i bram"


Drukuj  | Zapisz w PDF  | wykop.pl  | KomentarzeDodaj komentarz
  Empetrójka z Linuksem
Arkadiusz Bednarczyk  |  2007-06-05 11:08:40

Odtwarzacz multimedialny TurboLinux Wizpy, oprócz możliwości odgrywania plików audio i wideo, może służyć również jako przenośny system operacyjny Linux. Urządzenie zawiera bootowalną wersję Linuksa na komputery PC. Po podłączeniu do portu USB można uruchomić system, korzystając ze wszystkich ustawień, haseł i zakładek, jakie zawiera. Pozwala to na używanie tego samego systemu operacyjnego, niezależnie od sprzętu, na jakim się pracuje. Głównym założeniem jest to, żeby Linuksa mogły wypróbować osoby, które nie są do niego przekonane albo obawiają się problemów związanych z jego instalacją.

Poza systemem operacyjnym produkt jest w pełni funkcjonalnym odtwarzaczem, wyposażonym w 1,7-calowy ekran OLED. TurboLinux Wizpy odtwarza pliki muzyczne w formatach: Ogg, MP3 i WMA. Filmy wyświetla w formatach XviD i MPEG4. Ponadto pozwala przeglądać tekst, zdjęcia w formacie JPEG oraz posiada wbudowany tuner radiowy FM. Wyposażony jest w 4GB pamięci.

Przewidywana cena odtwarzacza to około 140£. Dostępny będzie już w tym miesiącu.

(Źródło: 4Press.pl)


Drukuj  | Zapisz w PDF  | wykop.pl  | KomentarzeDodaj komentarz
  Linux goni Windows
Adam Pielak  |  2007-05-28 13:12:20

Jak twierdzi gazeta.pl, badania przeprowadzone przez firme badawczą Pentor, coraz wiecęj polskich firm przechodzi na system operacyjny linuks i wykorzystuje oprogramowanie oparte na otwartych standardach.

Linuks najlepiej radzi sobie na serwerach (80% firm), niewiele mniej niż system Microsoftu (83%). Na stanowiskach roboczych jest jednak gorzej: 'co czwarta firma deklaruje, że korzysta z Linuksa, choć w większości system działa na nie więcej niż 30% komputerów w firmie i najczęściej są to stanowiska pracowników działów IT.' Lecz jednak są firmym które wpełni działaja na systemie Linuks, lecz niestety stanowią 1%.

Podobnie jak przed rokiem raport opracowano na podstawie ankiet skierowanych do szefów działów IT w największych polskich firmach.


Drukuj  | Zapisz w PDF  | wykop.pl  | KomentarzeZobacz komentarze (1)

[1 - 7]
   Timeline
2010
stylutymar
kwimajczer
lipsiewrz
paźlisgru

   Najpopularniejsze tagi
ati debian eyeos google kde linux linux.pl mandriva microsoft nieautoryzowany użytek open source openoffice.org ubuntu windows x window system absurdy administracja artykuły bash bezpieczeństwo cli cui find firefox flash forum fud gry humor internet jabber konkurs konsola lans multimedia ogłoszenia oprogramowanie piractwo prasa recenzje shell statystyki sterowniki testy języków obcych tp tłumaczenia użyteczność wideo wydania zmiany
   Na Linux.pl
Konferencje i spotkania Wrocławskie Linux Academy #36: Asterisk  (0)


 Linux+ 12/2009 pobierz za darmo!  (9)
 Ruszyły zapisy na polski PHPCon  (0)
 Linux Academy #35: Vim  (3)
 FlightGear 2.0.0  (0)
 Jak to się robi w linux-wireless?  (0)
 Nowe wersje systemów do zarządzania od LeftHand  (0)
 Ile kosztuje Linux?  (3)
 Linux+ 3/2010 - Sprzęt pod Linuksem  (0)
 Numer 35 Dragonii Magazine  (1)

   Forum użytkowników Linuksa
 · Jak skonfigurować komunikator Empathy dla gg w systemie Ubuntu 9.10 ? · [3]
 · Czcionki · [1]
 · Knoppix otoczenie sieciowe · [5]
 · Tworzenie i konfigutacja Domeny w Suse · [5]
 · problem z połączeniem Windows XP, a Opensuse · [6]
 · Linux nie startuje!!! · [5]
 · Parę moich problemów ;) · [8]
 · Jak zostać adminem ;) · [12]
 · Problem z aktualizacją jądra · [4]
 · Dynamiczny DNS plik hosts · [1]
 · GNOME - obsługa pulpitów z poziomu terminala · [1]
 · [/dev/null] Skrypt sprawdzający quote (potrzebna pomoc) · [1]
 · Po zainstalowaniu sterowników ATI 3470 system padł · [2]
 · Ventrilo 3.0.3 server · [1]
 · mandriva - wifi · [16]
forum Linux.pl - RSS
   Szkolenia
12 grudzień 2009 - 18 kwiecień 2010
Administrator Linuksa - kurs czteromiesięczny (Warszawa) »
15 grudzień 2009 - 27 kwiecień 2010
Administrator Linuksa - kurs czteromiesięczny (Warszawa) »
19 grudzień 2009 - 14 marzec 2010
Deweloper Aplikacji WWW (Warszawa) »
13 styczeń-12 kwiecień 2010
Deweloper Aplikacji WWW (Warszawa) »
16 styczeń-18 kwiecień 2010
Administrator Linuksa - kurs czteromiesięczny (Kraków) »

   
   Oferty pracy
 administrator linux/ pilne!
 Programista PHP - Webmaster
 Programista PHP [praca zdalna]
 Programista Python
 Konsultant ds. administracji Linux
 Analityk Rynku Mediów Elektronicznych
 Programista PHP- praca na framework Symphony
 Programista PHP- framework Symphony
  OPIEKUN –rekrutacja 27.01.2010. Praca w Gloucestershire -Wielka Brytania
 poszukiwany trener do prowadzenia kursu linuxa!!!
 KERRIDGE SPECIALIST
 TELECOM TECHNICIANS
 Firma zatrudni programistę PHP do stałej współpracy (PHP/MySQL/JS/Ajax)
 Programista PHP
 Programista C/C++




 [stats]  |  Copyright © 2003-2010 Linux.plDotacje EUCreated by