Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).
Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.
O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.
Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.
České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.
Microsoft Defender nově podporuje linuxové desktopy.
Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).
Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.
KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.
Měl bych se sice šrotit na zkoušky a psát zápočtové programy, ale je to taková nuda... A tak bezcílně brouzdám webem a dnes se mi konečně podařilo najít něco zajímavého. Vždycky jsem si lámal hlavu, jaký mají u Googlů systém pojmenování bloků map a světe div se, dneska jsem to našel úplně náhodou v blogu jednoho machra z Francie.
Podívejte se na to, je to sice francouzsky, ale i bez její znalosti lze pochopit o co jde. Má tam dokonce funkci v C, která podle zoomu a pravoúhlých souřadnic vrátí adresu odpovídajícího bloku mapy.
Napadlo mě tedy, že si prostě musím ty mapy za každou cenu stáhnout a složit z těch bloků
. Tak jsem si na to napsal prográmek. Ten stáhne bloky wgetem a pomocí montage z ImageMagicku ty bloky poskládá dokupy. A ono to dokonce funguje.
Tady je ten prográmek. Přeložíte takto: gcc -std=c99 get-map.c -o get-map. Jsem lenoch líná, tak zoom si musíte nastavit v kódu, ostatní už funguje samo. Přeju hodně zábavy!
Pro ty co mají silné stroje: jak velkou mapu se vám podařilo složit?
#include <stdio.h>
#include <string.h>
char* getBlock(char* url, unsigned int x, unsigned int y, unsigned int zoom)
{
strcpy(url, "http://kh*.google.com/kh?n=404&v=3&t=t")[9] = '0' + (x + y) % 4;
if(!zoom)
return url;
for(unsigned long c = 1 << (zoom - 1); c != 0; c >>= 1)
if(y < c)
{
if(x < c)
strcat(url, "q");
else
{
strcat(url, "r");
x -= c;
}
}
else
{
if(x < c)
{
strcat(url, "t");
y -= c;
}
else
{
strcat(url, "s");
x -= c;
y -= c;
}
}
return url;
}
int main(void)
{
int zoom = 3, num = 0;
char cmd1[100], cmd2[100];
for(int y = 0; y < 1 << zoom; y++)
for(int x = 0; x < 1 << zoom; x++)
{
sprintf(cmd2, "wget \"%s\" -O google-maps-block-%.6d.jpg", getBlock(cmd1, x, y, zoom), num++);
system(cmd2);
}
sprintf(cmd1, "montage -geometry %dx%d +frame -tile %dx%d -verbose google-maps-block-* map-zoom-%d.jpg", 256, 256, 1 << zoom, 1 << zoom, zoom);
system(cmd1);
system("rm google-maps-block-*");
return 0;
}
Tak moje pokusy dopadly následovně
. Těch bloků jsem stáhnul několik tisíc. Asi hodím mezi jednotlivé wgety nějaký sleep, a nechám to běžet přes noc.
Google Error
We're sorry...
... but your query looks similar to automated requests from a computer virus or spyware
application. To protect our users, we can't process your request right now.
We'll restore your access as quickly as possible, so try again soon. In the meantime, if you
suspect that your computer or network has been infected, you might want to run a virus checker or
spyware remover to make sure that your systems are free of viruses and other spurious software.
We apologize for the inconvenience, and hope we'll see you again on Google.
Největší mapu, co se mi podařilo složit byl zoom = 5, čili 1024 bloků, výsledná bitmapa má 8192x8192 bodů a málem se mi u toho upekl počítač. Paměťové nároky toho programy montage jsou nějaké velké.
Tiskni
Sdílej:
Co znak, to 2 bity, ne?
A jak je to tedy s tím Seznam.cz?
trtqtrtsqtqsrtsttr) a přepočítat ho na pravoúhlé souřadnice pomocí tohohle algoritmu:
void code2location(char* code)
{
unsigned int x = 0, y = 0;
for(int i = 1; i < strlen(code); i++)
{
x = (x << 1) | ((code[i] == 'r' || code[i] == 's') ? 1 : 0);
y = (y << 1) | ((code[i] == 't' || code[i] == 's') ? 1 : 0);
}
printf("locatiton = [%d; %d], zoom = %d", x, y, strlen(code) - 1);
}
Výstupem pro trtqtrtsqtqsrtsttr je:
locatiton = [70761; 44382], zoom = 17
Získaná čísla potom dosadíš do toho programu a je to.
Jde o nastavení levého horního rohu. Je třeba upravit ty vnořene cykly takhle:
for(int y = odkud_v_ose_y; y < potud_v_ose_y; y++)
for(int x = odkud_v_ose_x; x < potud_v_ose_x; x++)
A potom ještě tenhle řádek:
sprintf(cmd1, "montage -geometry %dx%d +frame -tile %dx%d -verbose google-maps-block-* map-zoom-%d.jpg", 256, 256, potud_v_ose_x - odkud_v_ose_x, potud_v_ose_y - odkud_v_ose_y, zoom);
Kde location = [odkud_v_ose_x; odkud_v_ose_y] zoom = 17
S těmi daty v té mapě je to stejný jako s datovými soubory u slovníků.