Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.
Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.
Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".
Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Byla vydána verze 5.30 dnes již open source operačního systému RISC OS (Wikipedie).
V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …
Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
script1.pl | script2.pl
script2.pl sub update { my ($item) = @_; print "item to DB: $item\n"; sleep(2); if (my $dbh = DBI->connect('DBI:mysql:dataWeb', 'xxx', 'xxx')) { my $query="UPDATE onWeb SET name='".$item."' WHERE id=0;"; my $sth = $dbh->prepare($query);#zkousel jsem pouzit i $dbh->do ale je to stejny my $rv = $sth->execute(); $dbh->disconnect; } else { print "Could not connect to database: $DBI::errstr"; } } my $scThread=0; while (my $line = <STDIN>) { if ($line ne "") { chomp ($line); $scThread = threads->create(\&update, $line); } }Nevite nekdo prosim vas coje spatne? Kde mam udelat zmenu, aby script bezel jak ma? Soft mysql 5.0.51a a perl 5.10.
script2.pl sub update { my ($item,$dbh) = @_; print "item to DB: $item\n"; sleep(2); my $query="UPDATE onWeb SET name='".$item."' WHERE id=0;"; my $sth = $dbh->prepare($query);#zkousel jsem pouzit i $dbh->do ale je to stejny my $rv = $sth->execute(); } my $scThread=0; my $dbh = DBI->connect('DBI:mysql:dataWeb', 'xxx', 'xxx'); while (my $line = <STDIN>) { if ($line ne "") { chomp ($line); $scThread = threads->create(\&update, $line, $dbh); } } $dbh->disconnect;Hlaseni perlu:
Thread 2 tady dochazi ke zvysovani cisla vlakna terminated abnormally: DBD::mysql::db prepare failed: handle 2 is owned by thread 198e010 not current thread 1e2b7e0 (handles can't be shared between threads and your driver may need a CLONE method added)Pridal jsem teda shared:
pridano use threads::shared; ... my $scThread=0; my $dbh = DBI->connect('DBI:mysql:dataWeb', 'xxx', 'xxx'); share ($dbh); while (my $line = <STDIN>) { ...perl hlasi
Thread 1 terminated abnormally: dbih_getcom handle threads::shared::tie=SCALAR(0xe739c0) is not a DBI handle at script2.pl <STDIN> line 1
Thread 2 terminated abnormally: dbih_getcom handle threads::shared::tie=SCALAR(0xe739c0) is not a DBI handle at script2.pl <STDIN> line 2
ps -p 14814 uH
use threads; sub ThreadRoutine {} while (1) { threads->new(\&ThreadRoutine)->join; }
use threads; use threads::shared; my $line; my $thr_end; my @thr_data; my $thr_worker; share($thr_end); share(@thr_data); $thr_end = 0; $thr_worker = threads->create(\&thr_sub); @thr_data = (); sub thr_sub { my $dbh = DBI->connect('DBI:mysql:dataWeb;mysql_server_prepare=1', 'user', 'password'); my $qry = "UPDATE onWeb SET name=? WHERE id=0"; my $sth; my $tmp; die "Can't connect to database" if (!$dbh); $sth = $dbh->prepate($qry); while (!$thr_end) { { lock(@thr_data); $tmp = shift(@thr_data); } $sth->execute($tmp) if(defined($tmp)); } lock(@thr_data); $sth->execute($_) for (@thr_data); $dbh->disconnect(); } while ($line = <STDIN>) { chomp($line); next if ($line =~ /^\s*$/); { lock(@thr_data); push @thr_data, $line; } } $thr_end = 1; $thr_worker->join();
Tiskni Sdílej: