Reklama
Nepřihlášený uživatel | Zaregistrovat se
 

Téma:

Počítače a InternetVývoj software

Spravuje:

WT_Martin

Může vás zajímat



Reklama



---=== P E R L ===---

Practical Extraction and Report Language, tedy Perl. Dnes už poměrně starý, ale přesto velice moderní, nadčasový, rozšířený, oblíbený i nenáviděný programovací jazyk.

V tomto klubu bude řeč také o souvisejících tématech (FastCGI,...), dokumentaci a konkrétních projektech. Tak se zapojte, diskutujte, srovnávejte, učte se i poučujte... :-)


[Naučte se Perl a CGI] [Perl Directory] [O'Reilly's Perl] [Perl FAQ] [CPAN] [FastCGI] [regex]

Camel
Statistiky

Práce - GoodData
Zdravím, kdyby nějaký zkušený perlista zvažoval změnu práce, tak GoodData hledá do někoho do ROLAPového týmu. GoodData dělá business inteligence jak webovou aplikaci (pokud nejste alergičtí na buzzwordy, tak možno říct i "jako SaaS" nebo "v cloudu").

Pro naši analyticku platfofmu jsou klíčové komponenty, jako analytický engine, který má na vstupu definici nějaké analytické úlohy a na základě známých metadat tu úlohu překládá na balík kešovatelných SQL dotazů, a pak další komponenty, které mají na starosti správu metadat, nahrávání dat a podobně - a tohle všechno řeší zmíněný tým.

Preferovaným místem práce je Praha s ochotou občas jezdit do Brna, ale může být i naopak. Uchazeč by měl být zběhlý v Linuxu a v SQL (Postgres, MySQL) a měl by být schopen komunikovat anglicky slovem i písmem - obvykle hlavně písmem kvůli technické dokumentaci, ale kdoví, kdy se ukáže, jestli vás není třeba poslat na konferenci či návštěvu centrály na druhé straně zeměkoule.

Plusy by byly, jestli jste zvyklí na git, přispíváte do nějakého open-source, máte zkušenosti s většími distribuovanými systémy případně jste schopni a ochotni dělat i v jiném programovacím jazyce (netvrdím, že to nutně využijete, ale je fajn mít rozhled).

Standardníma benefitama tady nudit nebudu (možná zaměstnanecké opce trochu vybočujou), ale co můžu posoudit, tak velkou výhodou té práce je, že byste dělali s opravdu hodně chytrým lidmi (aspoň doufám, že to případným zájemcům jako výhoda přijde).

Případní zájemci se můžou ozvat na pavel at gooddata tečka com.

Díky za pozornost.

 
Takže ano! (a pak už normálně execute(@a))
...a to bude vono. Zkusim všechno zde zmíněný, díky za nápady :)
running NOVUS ORDO SECLORUM 
$a->execute(@pole)?

$a->execute(@pole[0..2])?

$a->execute(@$reference_na_pole)?
repa mnoho sil vydám na posunky   když řídím vlastní zábavu
a neposíláš tam náhodou referenci na pole, místo pole?
mot Give me a kiss to build a dream on 
A pak execute bez parametru.
mot Give me a kiss to build a dream on 
Jakoze execute(@brikety) to nebere?
Mozna to jde elegantneji, ale prinejhorsim by melo fungovat v cyklu udelat

$db_handle->bind_param($i, $brikety[$i])
Simvás. Placeholdery u DBI. V principu tohle:

$a = $db_handle->prepare('INSERT INTO hromadauhli VALUES (?,?,?)');
$a->execute($briketa1, $briketa2, $briketa3);

Nějak mi nedochází, jak tomu ty tři brikety nacpat, když přiletěj kdovíodkud ve formě pole. Když ho tam zkusím strčit, tak se dozvím, že DBD::mysql::st execute failed: called with 1 bind variables when 9 are needed, celkem nepřekvapivě. Nějaký nápad? Dík!
 
spic má rád Perl 
Funguje skvěle.
	my $req = HTTP::Request->new(GET => $_[0]);
	$req->header('Accept' => '*/*');
	my $res = $ua->request($req);
# ...
	open (my $SAVE, ">:utf8",$_[1])
		or die "cannot open file: $!";
	print $SAVE $res->decoded_content;
nahrazeno
	my $res = $ua->get($_[0] , ':content_file' => $_[1]);
spic má rád Perl 
Šikovné, díky moc. Dám časem vědět, jestli se to zlepšilo... Přepsal jsem to ze skriptu, kterým jsem předtím stahoval desetitisíce HTML souborů a zpracovával je, s čímž nikdy problém nebyl.

Soudě podle velikosti alokovaného bloku (67MB) a názvu skriptu stahuješ mp3 a držíš je v paměti. Nevím jak pracuje s pamětí UserAgent, ale mohlo by pomoct ukládání stažených dat přímo do souboru:

$ua->get( $url , ':content_file' => 'local.mp3');

Detaily na https://metacpan.org/module/LWP::UserAgent#REQUEST-METHODS

spic má rád Perl 
uměl by mi někdo poradit s následující chybou?

Out of memory during "large" request for 67112960 bytes, total sbrk() is 359272448 bytes at ./get-mp3.pl line 131.

Řádek je víceméně náhodný, skript si načte seznam odkazů a pak jeden po druhém stahuje. Nevidím žádný důvod, proč by neměla být po úspěšném stažení paměť uvolněna. Zkoušel jsem variantu, kdy byl objekt LWP::UserAgent předáván proceduře i takovou, kdy si procedura vždy vytvoří svou instanci.
 
(já idiot to řešil přesně naopak, přes encode)
No. Stačilo mě praštit přes pazouru a hned to jde :) Dík, vyřešeno.
mot Give me a kiss to build a dream on 
pouzivam toto, vstupni data jsou v iso8859-2

use Encode;
$hodnota = decode("iso-8859-2", $hodnota);
A jký je teda to "správný" kódování pro Excel, tušíš? Není to UTF8, CP1250, ISO-8859-2, to už jsem si ověřil. Teda aspoň pro to Encode.
skull Znám osobně pár chlapců z Okouna,  oblečených velice kýčovitě
Urcite by melo stacit i encode, nicmene treba zrovna s nim jsem mel kdysi docela problem neco prekodovat - i kdyz dost mozna byl problem ve mne, tak se mi to nechtelo zkoumat do hloubky a vratil jsem se k tomu co uz mam osvedcene. Navic v instalaci cstocs uz mas zaroven pribalene i nastroje pro konverzi volanou primo v shellu, takze si muzes hned odzkouset o jake kodovani se vlastne jedna. Navic to pouzivam pomerne casto i tak, ze vstup/vystup sveho ne-perloveho programu prilepim pres trubku na prikaz cstocs ...
Hm, asi stačilo, ale to bych musel tušit, do čeho to mám enkódovat, když použiju cp1250, výsledek je "v??chodoÄ?esk??". Any ideas?
Hele administrátory toho stroje jsem před vánocema trápil instalací těch modulů pro Excel, nevim, jestli mám odvahu v tom pokračovat :( Nestačilo by Encode?
skull Znám osobně pár chlapců z Okouna,  oblečených velice kýčovitě
Co pouzit nejaky konverzni modul? Napr. cstocs ...