Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.
Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.
Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
Pro moddery Minecraftu: Java edice Minecraftu bude bez obfuskace.
Národní identitní autorita, tedy NIA ID, MeG a eOP jsou nedostupné. Na nápravě se pracuje [𝕏].
Americký výrobce čipů Nvidia se stal první firmou na světě, jejíž tržní hodnota dosáhla pěti bilionů USD (104,5 bilionu Kč). Nvidia stojí v čele světového trhu s čipy pro umělou inteligenci (AI) a výrazně těží z prudkého růstu zájmu o tuto technologii. Nvidia již byla první firmou, která překonala hranici čtyř bilionů USD, a to letos v červenci.
Po Canonicalu a SUSE oznámil také Red Hat, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie).
 . Ale já bych si asi udělal speciální mezivrstvu a dál bych se o to nestaral.
. Ale já bych si asi udělal speciální mezivrstvu a dál bych se o to nestaral.
             .
. 
            Nejde k enumeraci zařízení použít taky udev s vyhledáváním podle major a minor čísel? Já pro enumeraci sériových portů v PC používám tenhle kód:
{
	QStringList ret;
	struct udev * udev = udev_new();
	if(udev == NULL)
	{
		qCritical() << "udev_new() failed";
		return ret;
	}
	for(quint8 minor = 64; minor <= 255; ++minor)
	{
		struct udev_device * udev_device = udev_device_new_from_devnum(udev, 'c', makedev(4, minor));
		if(udev_device != NULL)
		{
			ret.append(udev_device_get_devnode(udev_device));
			udev_device_unref(udev_device);
		}
		else
			break;
	}
	udev_unref(udev);
	return ret;
}
Seznam a vysvětlení major čísel je v dokumentaci kernelu.
Požádám udev o přeložení major:minor na soubor se zařízením (např. /dev/sr0)Tím jsem měl na mysli právě použitím udev_device_new_from_devnum
 8.6.2010 14:50
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        8.6.2010 14:50
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
         8.6.2010 15:04
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        8.6.2010 15:04
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
         8.6.2010 15:01
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        8.6.2010 15:01
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
         8.6.2010 15:14
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        8.6.2010 15:14
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        It is in the process of being merged into udev (main udev, libudev, and udev-extras) and existing udev and kernel functionality. Initially a new daemon DeviceKit was planned to replace certain aspects of HAL, but in March 2009, DeviceKit was deprecated in favor of adding the same code to udev as a package: udev-extras, and some functions have now moved to udev proper.
 
             8.6.2010 15:32
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        8.6.2010 15:32
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
         8.6.2010 15:17
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        8.6.2010 15:17
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        udisks
According to DeviceKit devel mailing list, DeviceKit is getting merged with udev-extra and the existing DeviceKit programs such as DeviceKit-disks and DeviceKit-power will be switched over to use libudev.Takže by bylo fajn se začít poohlížet jak se vlastně vůbec pracuje s libudev. Jinak by ale na toto měl snad mít Qt svoje serepetičky, ne?
 8.6.2010 15:20
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        8.6.2010 15:20
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
         Takže buď udělal někde chybu, nebo udev potřebné schopnosti nemá. Každopádně stále je možné prostě počkat, než to vývojáři všechno do udevu namergují. Imho by to nemělo trvat zas tak strašně dlouho.
 Takže buď udělal někde chybu, nebo udev potřebné schopnosti nemá. Každopádně stále je možné prostě počkat, než to vývojáři všechno do udevu namergují. Imho by to nemělo trvat zas tak strašně dlouho.
 
void bla()
{
  struct udev_enumerate* enumerate = udev_enumerate_new(_udev);
  if (!enumerate) return;
  
  udev_enumerate_add_match_subsystem(enumerate, "block");
  if (udev_enumerate_scan_devices(enumerate) == 0)
  {
    struct udev_list_entry *e;
    const char *syspath, *prop;
    struct udev_device *dev, *parent_dev;
    
    e = udev_enumerate_get_list_entry(enumerate);
    while (e)
    {
      syspath = udev_list_entry_get_name(e);
      
      dev = udev_device_new_from_syspath(_udev, syspath);
      if (dev)
      {
        prop = udev_device_get_property_value(dev, "ID_TYPE");
        if (prop && strcmp(prop, "cd") == 0)
        {
          qDebug() << "Found CD-ROM device" << udev_device_get_devnode(dev);
          //printAttrs(dev);
        }
        udev_device_unref(dev);
      }
      
      e = udev_list_entry_get_next(e);
    }
  }
  udev_enumerate_unref(enumerate);
}
Snad se to nějak dá do kupy. Ale mě by spíše potěšilo, aby se ta CD-ROMka dala zamknout pro exkluzivní přístup nezávisle na typu zařízení, přes které se přistupuje.
Problém ale bude určitě v tom, že distribucím bude dost dlouho trvat, než nový model přijmou. Například Arch stále ještě jede na HALu. Nebo prostě bude někdo mít nainstalovanou starší verzi nějaké konzervativní ditribuce s HALem, a bude problém...Tak ten program nebudu vydávat zítra. Než to dám do nějakého použitelného stavu, aby se kvůli každé operaci nemusel rekompilovat zdroják (
 ), tak už to ve všech distrech bude (kromě debianu
), tak už to ve všech distrech bude (kromě debianu  )
)
             8.6.2010 18:20
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        8.6.2010 18:20
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        Jó no, ona to fakt taková hrůza neníBer to z té pozitivní stránky. Zas se nemusíš drbat s komunikací pomocí DBUSu.
Ale mě by spíše potěšilo, aby se ta CD-ROMka dala zamknout pro exkluzivní přístup nezávisle na typu zařízení, přes které se přistupuje.Tak flock(2) to nebere. Ale jak jsem řekl. Inspiruj se u konkurence. Tady nejsi ve Widlích, ale na otevřené platformě. Co jsem se tak zběžně díval do cdrecord, tak si první autor udělá v paměti buffer a ten si všelijak pozamyká s následujícím komentářem:
/* * Try to lock us im memory (will only work for root) * but you need access to root anyway to send SCSI commands. * We need to be root to open /dev/scg? or similar devices * on other OS variants and we need to be root to be able * to send SCSI commands at least on AIX and * Solaris (USCSI only) regardless of the permissions for * opening files * * XXX The folowing test used to be * XXX #if defined(HAVE_MLOCKALL) || defined(_POSIX_MEMLOCK) * XXX but the definition for _POSIX_MEMLOCK did change during * XXX the last 8 years and the autoconf test is better for * XXX the static case. sysconf() only makes sense if we like * XXX to check dynamically. */, kde když se zámek nepovede, tak: errmsgno(EX_BAD, "WARNING: This causes a high risk for buffer underruns.\n"); a pak se na tu zamknutou paměť snaží připojit (fs = init_fifo(fs); /* Attach shared memory (still one process) */) a následně nějak propojit s nějakou scg což vypadá na knihovnu, viz komentář:
/* * Call scg_remote() to force loading the remote SCSI transport library * code that is located in librscg instead of the dummy remote routines * that are located inside libscg. */A IMHO je za dostání do stavu kdy jednotka nebude komunikovat s ničím jiným je zodpovědná právě ta knihovna nebo ta komunikace skrze SCSI příkazy. Jinak celý proces vypalování vypadá opravdu dost brutálně, takže pokud sis myslel, že to bude jen otevření blokového zařízení, uzamknutí přístupu pro exkluzivní přístup a pár writů, tak ses IMHO docela zmýlil.
PREVENT/ALLOW MEDIUM REMOVAL - zamknu eject mechanismus TEST UNIT READY - test jestli je tam médium a jestli je jednotka ready GET CONFIGURATION - získání aktuálního profilu (podle profilu se určí typ vloženého média (u příkladu DVD+RW)) READ DISC INFORMATION - zkontroluju jestli je naformátováno SET STREAMING - nastavím rychlost pálení FORMAT UNIT - pokud není naformátováno, spustím background format série WRITE(10) popř. WRITE(12) - zapíšu data SYNCHRONIZE CACHE - flush (DVD+RW se nezavírá, nikdy) Pokud stále běží background format tak CLOSE TRACK/SESSION na ukončení formátování PREVENT/ALLOW MEDIUM REMOVAL - povolím ejectSnad jsem nic nezapomněl
 
             10.6.2010 14:02
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        10.6.2010 14:02
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        Děláte WRITE a při tom se plní buffer a vypalovačka pálí. DVD+RW lze vypalovat "náhodně", není třeba sekvenční pálení, určíte si start sektor, počet sektorů, co pálíte a prostě pálíte. To samé platí o DVD-RAM a DVD-RW v Restricted overwrite módu (tj. naformátované). A pro zbytek ve write parameters mode page nastavíte BUFE bit (ochrana proti podtečení). Pokud nestíháte posílat WRITE a buffer palírny se vyprázdní, tak může dojít a) k průseru, b) provedení "linkingu".
Každopádně prostě vy děláte WRITE, vypalovačka si plní buffer daty, co jí posíláte a pálí. Data čtu v extra vlákně (SW buffer jsem pro zatím zvolil 64 MB, ale dneska asi nemá cenu šetřit, tak bych se nebál půl giga (vtip, samozřejmě půjde nastavit)). 10.6.2010 15:50
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        10.6.2010 15:50
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
         10.6.2010 17:13
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        10.6.2010 17:13
Grunt             | skóre: 23
             | blog: Expresivní zabručení
             | Lanžhot
        rozumíme si, že se nejedná o systémové volání write(), ale o SCSI příkaz WRITE(10), který posíláte přes ioctl(SG_IO) či write()?Aha, tak už jo.
posíláteMy? No my toho neposíláme.
My? No my toho neposíláme.sry
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                