Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
QDir::separator() a dávat si bacha na používání správných lomítek ve Windows. Ale mě jsou windows špehovátka stejně ukradený. Jenom je cílem tohoto zápisku upozornit na bludy šířené uživateli Qt.
Tiskni
Sdílej:
Né, práci ještě nemám.Za předpokladu, že bych stvořil technoklášter, kde by lidi mohli meditovat nad algoritmy a programovat od rána do večera, aniž by byli rušeni problémy běžných smrtelníků; šel by jsi k nám šířit programátorskou moudrost, studovat učení, které těší strojového boha a pást beránky?
Naštěstí je tu jedno chytré, kterému je to ukradené ... použít unicode verzi (třeba CreateFileW) a skutečnou absolutní cestu ("\\?\C:\bla\bla/bla"), tak se cesta pošle rovnou k filesystému a nebude se jednat o "C:\bla\bla\" + "bla", ale o "C:\bla\" + "bla/bla".Skutečně? Zkoušel jsi to? Já tomu nevěřim. V dokumentaci ke
CreateFile se píše:
lpFileName [in]
The name of the file or device to be created or opened. You may use either forward slashes (/) or backslashes (\) in this name.
Imho žádným rozumným způsobem nevytvoříš '/' ve filename ve windows, a i kdybys to nějak nahackoval, běžné windows aplikace vč. exploreru s tím nepočítají, je to zakázany znak, tudíž je zcela na místě v Qt nepoužívat QDir::Separator.
Naming Conventions The following fundamental rules enable applications to create and process valid names for files and directories, regardless of the file system:
- Use any character in the current code page for a name, including Unicode characters and characters in the extended character set (128–255), except for the following reserved characters:
- / (forward slash)
Z toho mi vyplívá, že to nemáte používat, pokud chcete kompatibility se všemi filesystémy (né jen NTFS). Nezní to tedy jako zákaz, ale doporučení.
Dále
The Windows API has many functions that also have Unicode versions to permit an extended-length path for a maximum total path length of 32,767 characters. This type of path is composed of components separated by backslashes, each up to the value returned in the lpMaximumComponentLength parameter of the GetVolumeInformation function (this value is commonly 255 characters). To specify an extended-length path, use the "\\?\" prefix. For example, "\\?\D:\very long path".A dále
There is no need to perform any Unicode normalization on path and file name strings for use by the Windows file I/O API functions because the file system treats path and file names as an opaque sequence of WCHARs. Any normalization that your application requires should be performed with this in mind, external of any calls to related Windows file I/O API functions.A dále poznámka, že shell (průzkumník) je hodně hloupej a na takových cestách se může rozbít.
The shell and the file system have different requirements. It is possible to create a path with the Windows API that the shell user interface is not able to interpret properly.A nejedná se jen o shell, ale o spoustu (většinu) programů. Všetně programů od MS. To ale neznamená, že budu, jako ten kdo napsal zápisek, vnucovat špatné chování, aby se i jeho program rozbil.
A nejedná se jen o shell, ale o spoustu (většinu) programů. Všetně programů od MS. To ale neznamená, že budu, jako ten kdo napsal zápisek, vnucovat špatné chování, aby se i jeho program rozbil.Nechápu, kdes došel k tomu, že to je špatné chování. Jestli potřebuješ Qt k napsání low-level filesystem utilit, tak použiješ specializované funkce, to je jasné. Běžné Qt I/O API je high-level abstrakce, u které je naopak dobře, že se chová stejně jako Win shell. Přijde mi to jako snaha být papežtější než papež.
\\?\) a žádné změny se v tomto ohledu neplánují.
Tedy kdo používá long paths hodně riskuje. Ano, ve Windows světě je tohle obrovský problém již od nepaměti a žádné řešení se stále nerýsuje
(viz. např. diskuze https://github.com/daokoder/dao-modules/issues/67).
Skript:
#!/bin/sh
function usage()
{
echo "Usage: $0 <label> <device>"
exit 1
}
dev="$2"
label="$1"
[ $# -eq 2 ] || usage
[ -b "$dev" ] || usage
dd if=/dev/zero of="$dev" bs=1M count=1
mkudffs --media-type=hd --blocksize=512 --utf8 --lvid="$label" --vid="$label" --fsid="$label" "$dev"
Ještě bych moh zkusit jak to pude přečíst/zapsat/smazat pod sedmičkama...
Pismenka jednotek jsou ten nejhorsi hell na svete. A ty spatny lomitka tomu jeste pridavaj.
char path[] = "c:\test\con"; FILE *f = fopen(path, "w");