abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 01:11 | Komunita

Před třemi týdny Mozilla.cz představila projekt Photon, jehož cílem je návrh a implementace nového vzhledu Firefoxu. Včera zveřejnila první náhled vzhledu Photon. Práce na projektu Photon jsou rozděleny do pěti týmů, které celkem čítají 19 lidí. Zaměřují se na zlepšení prvního spuštění Firefoxu a zaujetí nových uživatelů, celkovou úpravu vzhledu, zlepšení animací, zrychlení odezvy uživatelského rozhraní a také upravení nabídek. Vývoj lze sledovat v Bugzille.

Ladislav Hagara | Komentářů: 0
včera 20:00 | Komunita

OneDrive pro firmy je již ve webových prohlížečích na Linuxu stejně rychlý jako na Windows. Microsoft opravil chybu z listopadu loňského roku. OneDrive pro firmy běžel na Linuxu mnohem pomaleji než na Windows. V popisu chyby bylo uvedeno, že stačilo v prohlížeči na Linuxu nastavit v user-agentu Windows a vše se zrychlilo. Odpovědí Microsoftu bylo (Internet Archive: Wayback Machine), že Linux není podporován. Po bouřlivých diskusích na redditu i Hacker News byla chyba nalezena a opravena.

Ladislav Hagara | Komentářů: 3
včera 19:00 | Zajímavý projekt

Byla vyhlášena soutěž Hackaday Prize 2017. Soutěž je určena vývojářům open source hardwaru. Pro výherce je připraveno celkově 250 tisíc dolarů. Každý ze 120 finalistů získá tisíc dolarů. Nejlepší pak navíc 50, 30, 20, 15, 10 a 5 tisíc dolarů. Jedná se již o čtvrtý ročník soutěže. V roce 2014 zvítězil projekt globální sítě open source pozemních satelitních stanic SatNOGS. V roce 2015 zvítězil open source systém pro řízení elektrických invalidních vozíků pohybem očí Eyedriveomatic. V roce 2016 zvítězil modulární robot Dtto.

Ladislav Hagara | Komentářů: 0
včera 15:00 | Bezpečnostní upozornění

Byla vydána Samba ve verzích 4.6.1, 4.5.7 a 4.4.12. Řešen je bezpečnostní problém CVE-2017-2619. Pomocí symbolických odkazů a souběhu (symlink race) lze "teoreticky" získat přístup k souborům, které nejsou sdíleny. Linuxové distribuce jsou postupně aktualizovány (Debian).

Ladislav Hagara | Komentářů: 0
včera 07:43 | Nová verze

Na Steamu se objevil port hry Arma: Cold War Assault (Operation Flashpoint) pro Mac a Linux. … více »

creon | Komentářů: 25
včera 05:55 | Nová verze

Po 18 měsících od vydání verze 8.0 byla vydána verze 9.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 0
včera 03:33 | Komunita

Platnost posledního patentu souvisejícího s Dolby Digital (AC-3) vypršela. Po MP3 se tak do Fedory oficiálně dostane také kodek AC-3.

Ladislav Hagara | Komentářů: 5
včera 00:44 | Komunita

Feral Interactive, společnost zabývající se vydáváním počítačových her pro operační systémy macOS a Linux, nabízí své hry na Steamu vývojářům open source 3D grafické knihovny Mesa zdarma. Podmínkou je minimálně 25 commitů za posledních 5 let. Stejnou nabídku dostali vývojáři knihovny Mesa v roce 2015 od Valve. O rok dříve dostali od Valve tuto nabídku vývojáři Debianu a Ubuntu.

Ladislav Hagara | Komentářů: 0
22.3. 23:55 | Nová verze

Opera 44, verze 44.0.2510.857, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 57. Z novinek vývojáři Opery zdůrazňují podporou Touch Baru na nejnovějších MacBoocích Pro (gif). Přehled novinek pro vývojáře na blogu Dev.Opera.

Ladislav Hagara | Komentářů: 1
22.3. 20:56 | Pozvánky

V úterý 28. dubna se koná další Prague Containers Meetup. Přijďte si zopakovat, jak psát kvalitnější Dockerfile a jaké novinky a ulehčení přináší ansible-container, který vám umožní spravovat celý životní cyklus vašeho kontejneru. Místo konání: Concur, Bucharova 11, Praha-Stodůlky.

little-drunk-jesus | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 921 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Dotaz: Bash a PHP

    16.11.2012 07:30 omorok | skóre: 2
    Bash a PHP
    Přečteno: 715×
    Přeji dobrý den, Mám pár dotazů. Předem upozorňuji, že nejsem programátor...

    Dávám si dohromady mylý monitorovací počítač (Raspberry PI), který mi bude odchytávat data z regulace (momentálně co se kdysi vyráběla a do budoucna ji vyměním za Arduino). Z regulace mi po RS 485 přichází každou sekundu naměřená data (teploty,stav čerpadla...). V Raspberry tyto hodnoty sleduji (pomocí Bash skriptu), zpracovávám a ukládám podle potřeby na disk. Zároveň mi na Raspberry běží i web-server s PHP. A mám dotazy: 1) Kam mám uložit spuštění Bash skriptu, aby se po výpadku napětí spustil? pokud to přidám do ~/.profile, nebo do ~/.bashrc, tak se skript spustí až se přihlásím (např. přes SSH)? 2) Jak posílat data ze skriptu Bash do PHP? Co jsem pátral, tak vím o dvou možnostech: 1- přes textový soubor. Bash bude např každou sekundu přepisovat určený soubor a PHP podle potřeby bude z něho číst. Nevýhoda- myslím si, že disk dlouhodobě takovéto ukládání nevydrží (v raspberry je SD karta). ideální by bylo, pokud by takový soubor neexistoval na disku, ale jen v paměti RAM, ale to nevím jak a kde udělat. Nebo 2- možnost přes pojmenovanou rouru. Ale to je navýhoda, pokud PHP nepotřebuje data (nikdo si stránku neprohlíží), roura se nevyprázdní a tím je Bash skript zastaven- nepřípustné.

    Děkuji za pomoc...

    Odpovědi

    16.11.2012 08:56 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Bash a PHP
    1. Asi bych v tomto případě si to dal spuštění s plnou cestou a & na konci /etc/rc.local (případně lze použít ještě nohup).
      V /etc/rc.local:
      /cesta/k/programu &
      Ale asi bude lepší a někdo to dále doporučí použít update-rc.d nebo ruční vytvoření linky.
    2. Soubor do paměti lze uložit nejjednodušeji, tím že se uloží /dev/shm/muj_nazev_souboru, ale mně přijde lepší si vytvořit vlastní ram-disk, vytvořit adresář např. /mnt/moje a do fstab dát řádek none /mnt/moje tmpfs defaults,size=10m 0 0
      Ovšem asi bude nutné nějak zamykat zápis/čtení. Třeba SQLite a datový soubor v paměti by to mohlo vyřešit samo.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Josef Kufner avatar 22.11.2012 12:37 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Bash a PHP
    Já bych do tmpfs připojil celé /tmp (a dal mu trochu vyšší limit na velikost). Na takovém stroji to bude asi nejjednodušší a ušetří to flashku se systémem.

    Statistiky bych pak jednou za čas odzálohoval mimo paměť. Jak často záleží na spolehlivosti systému a důležitosti dat.

    Jinak bych se vykašlal na Bash a napsal to celé v PHP s tím, že ten první skript by se spouštěl stejně jako ten Bash script. Může to zjednodušit propojení těch dvou skriptů (generování a parsování toho souboru -- json_encode/decode) a odstranit případnou duplikaci některých částí.
    #!/usr/bin/env php
    <php
    ...
    Spouštění pak lze připsat rovnou do /etc/inittab. V případě pádu se zajistí i nové spuštění toho scriptu.
    Hello world ! Segmentation fault (core dumped)
    22.11.2012 15:07 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Bash a PHP
    Klidně by to tak šlo, držel jsem se toho rozdělení…, ale autora už to nezajímá :-).
    K tomu: tmpfs připojil celé /tmp, mám jen zkušenost, že ten limit na /tmp je zrádný, nebo musí být velký (třeba 6GiB) aby to bylo v pohodě v dnešní době. Při nižších hodnotách se klidně může stát, že při vytváření například video DVD se to celé zauzlí či sletí (samozřejmě je to věc aplikací, ale už jsem měl potíže s 2GiB /tmp z podobných důvodů).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Josef Kufner avatar 22.11.2012 19:09 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Bash a PHP
    Už vidím jak Raspberry připojené k čerpadlu vypaluje DVD ;-)
    Hello world ! Segmentation fault (core dumped)
    23.11.2012 11:07 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Bash a PHP
    Vytvoří z naměřených dat prezentační DVD ;-).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    23.11.2012 13:33 omorok | skóre: 2
    Rozbalit Rozbalit vše Re: Bash a PHP
    Děkuji za názory. Trochu jsem byl pracovně mimo a netušil jsem jak se to tady rozvine. Zaujal mě názor, že by to psal jen v PHP. Mám k tomu jeden dotaz: Pokud chci, by se mi každou sekundu prováděli nějaké matematické operace, jak to PHP bude dělat, pokud zrovna nikdo nebude prohlížet webové stránky? Já jsem měl za to,že PHP funguje tak, že pokud vyžádám danou stránku, kde je HTML kod s PHP, tak se provede kod a odešle do prohlížeče a pak se čeká na další požadavek od uživatele...Nebo ne?
    23.11.2012 13:35 DK
    Rozbalit Rozbalit vše Re: Bash a PHP
    PHP ma i CLI :) takze treba vytvorit nekonecnou smycku
    23.11.2012 16:18 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Bash a PHP
    Můžete klidně použít výše odkazované #!/usr/bin/env php (nebo podobný zápis) a psát ot normálně jako script a přidat mu 'x' oprávnění.
    PHP lze používat jako každý podobný jazyk:
     php -r 'for($i=0;$i < 10;$i++){echo "Hallo PHP - $i\n"; sleep(1);}'
    nebo
    php file.php
    kde v file.php dáte jen na začátek <?php.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Josef Kufner avatar 24.11.2012 11:35 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Bash a PHP
    Každou minutu to můžeš zpustit z cronu. Je celkem jedno, jestli to budeš spouštět wgetem přes webový server na localhostu nebo přes CLI (command line interface, jak už jsem psal poprvé).

    PHP není jen "HTML a něco k tomu". Pokud tu aplikaci chceš napsat slušně, na tenhle přístup zapomeň. Webové aplikace jsou obvykle rozrěleny na tři části: řídící logika, model a šablony. Model je pár tříd, které reprezentují věci, se kterými aplikace manipuluje. Řídící logika rozhoduje, co se s modelem bude dít. Šablony pak jsou to "HTML a něco k tomu", které dostanou od aplikační logiky připravená data k zobrazení.

    Nehledej v tom nic složitého, je to jen o uspořádání kódu. Uděláš si třídu pro čerpadlo, tam dáš ty svoje výpočty, pak druhou na komunikaci s čerpadlem. V index.php pak jen rozhodneš, co se bude počítat, co komunikovat a nasbíraná data hodíš do pole a předáš ho funkci (šabloně), která jako jediná bude dělat echo, echo, echo,... Takle se v tom neztratíš, bude to udržovatelné a přehledné. Jak ten index.php spustíš už je celkem jedno (web server nebo CLI).
    Hello world ! Segmentation fault (core dumped)
    27.11.2012 08:56 omorok | skóre: 2
    Rozbalit Rozbalit vše Re: Bash a PHP
    Děkuji za radu a v podstatě tomu rozumím. Ještě musím ověřit spouštění PHP skriptu...

    Ale zatím nevím,jak mám pracovat v php s polem.

    Z regulace mi jde toto: 2,3,33,44,55,66,9,1 ,nebo i toto: 2888,3888,89,55,10,0,0.

    Bash skript mám takto:
    while true; do										 
    	a=`head -1 /dev/ttyUSB0 | tr "," " "`			
    	b=($a)											
    	U=${b[0]}									
    	I=${b[1]}										
    	Tkol=${b[2]}									
    	Tzass=${b[3]}									
    	Tzash=${b[4]}									
    	Taku=${b[5]}									
    	Pfv=${b[6]}										
    	Rez=${b[7]}									
    	Cer=${b[8]}										
    	
    fi
    kde do proměnné $a načtu vstup z ttyUSB0 a místo čárek vložim mezery. Proměnnou $a vložim do závorek a tím určim, že je to pole a přiřadim k proměnné $b. Dále již přiřazuji k proměnným jednotlivé položky a mohu s nimi pracovat (pořítat). Jelikož v poli jsou položky určovány čákou, mohou se měnit počet čísel v jednom poli.

    V PHP načítám z ttyUSB0:
    ?php $data=fopen("/dev/ttyUSB0", "r");
    	$text=fgets($data);
    	echo ($text); #poznámka
    	fclose($data); ?
    To načte celý vstup, což je vpořádku, pokud chci jen jednu položku a zadám pole: echo ($text[1]);, tak zobrazí jen jedno číslo, nebo i čárku ze vstupu ttyUSB0. Což nepotřebuji. Umí php načíst (rozdělit) do pole podle čárek...?
    27.11.2012 09:21 Kit
    Rozbalit Rozbalit vše Re: Bash a PHP
    Josef Kufner avatar 27.11.2012 11:17 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Bash a PHP
    Možností je spousta.

    Btw, malé intro.
    Hello world ! Segmentation fault (core dumped)
    13.12.2012 09:19 omorok | skóre: 2
    Rozbalit Rozbalit vše Re: Bash a PHP
    Po nějaké době jsem pohnul v "programování". A potřebuji pomoci. Napsal jsem program, který by měl dělat "rutinu". Bude načítat data z USB0, převádět, počítat a ukládat do souborů. Program mi sice funguje,ale v terminálu mi vypisůjí hlášky, které netuším co je:

    Výpis z terminálu, postupně se neustále opakuje:

    zde

    a rovněž přikládám daný program:

    Zde

    Nevím, kde mám chybu.

    A mám ještě dotaz:

    Jak bylo psáno výše, mám hlavní soubor např: index.php a do něho se načítají hodnoty z externího souboru např. regulace.php . Tím je v souboru index.php jen echo,echo... A v souboru regulace.php jsou načítány aktuální hodnoty. Tento soubor se aktualizuje pomocí volání z webového prohlížeče (index.php). A pokud k tomu potřebuji přiřadit další soubor regulace0_013B.php, který je spuštěn pomocí PHP5-CLI a ten dělá rutinu v ciklu. Jak hodnoty z regulace0_013B.php dostanu do souboru regulace.php? Nebo odstraním soubor regulace.php a nahradím souborem regulace0_013B.php? Nebude to dělat problémy, pokud by tento soubor byl spuštěn přes PHP-CLI a občas (zárověň) bude volán index.php?
    13.12.2012 11:58 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Bash a PHP
    Měl jste to položit jako nový dotaz...

    K tomu problému s Notice:, pokud pole načtete ze souboru pomocí fgetcsv, nelze zaručit, že bude vždy vytvořeno pole dané délky, resp. existence hodnot na těch indexech 1, 2, 3..., které tam natvrdo dáváte. Proto ten warning. Šlo by nadefinovat pole určité délky pomocí nějakého splněcoarray, ale možná by se to dalo zajímavé obejít pomocí array_combine($keys, $textpole). Nejprve byste si nadefinoval pole klíčů (v podstatě názvy sloupců v tom csvčku čili $keys=array("Ufve", "Ifve"...) a pak ho zkusíte zkombinovat s tím, co načtete ze souboru (zdá se mi že čtete jen jeden řádek). Ohlídá vám to i počet načtených hodnot (vyhodí exception pokud nesouhlasí) a budete k tomu moct i přistupovat pomocí symbolických jmen, takže je pak otázka jestli to vůbec bude potřeba "přelévat" do proměnných. Každopádně předpokládám, že bychom se tím vyhnuli tomu problému s potenciálně nedefinovanými indexy.
    13.12.2012 14:17 omorok | skóre: 2
    Rozbalit Rozbalit vše Re: Bash a PHP
    tak jsem se na to díval a chápu řádek:

    $keys=array("$Ufve", "$Ifve", "$Tkol", "$Tzass", "$Tzash", "$Taku", "$Pfve", "$rez", "$cer");

    Do další proměnné bych měl dostat vstup z USB0, což nevím přesně jak-možná takto:

    $data= fopen("/dev/ttyUSB0", "r"); $textpole = array($data);

    a pak to zkombinovat...

    $cele = arrya_combine($keys, $textpole);

    do dev/ttyUSBO přichází data z regulace po RS485 přes převodník co 1s.
    13.12.2012 22:09 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Bash a PHP
    Až na ty dolary, protože tam dáváte jen jakési symbolické memotechnické názvy pro ty výsledné hodnoty, je to podobné jako proměnné, ale proměnné to nejsou, proměnnou je to pole, jeho jednotlivé prvky pak rozlišujete těmi jmennými indexy:
    $keys=array("Ufve", "Ifve", "Tkol", "Tzass", "Tzash", "Taku", "Pfve", "rez", "cer");
    Potom můžete počítat rovnou s proměnnými jakožto prvky v poli:
    $cele["Ufve"] + $cele["Ifve"]
    nebo si to převést na normální proměnné jako předtím.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.