Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].
Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.
Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.
Byla vydána verze 1.94.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. Zveřejněny byly výsledky průzkumu mezi vývojáři v programovacím jazyce Rust: 2025 State of Rust Survey Results.
Google zveřejnil seznam 185 organizací přijatých do letošního Google Summer of Code (GSoC). Dle plánu se zájemci přihlašují od 16. do 31. března. Vydělat si mohou od 750 do 6600 dolarů. V Česku a na Slovensku je to 900 dolarů za malý, 1800 dolarů za střední a 3600 dolarů za velký projekt. Další informace v často kladených otázkách (FAQ). K dispozici jsou také statistiky z minulých let.
Byla vydána únorová aktualizace aneb nová verze 1.110 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.110 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Apple představil 13palcový MacBook Neo s čipem A18 Pro. V základní konfiguraci za 16 990 Kč.
Kalifornský zákon AB 1043 platný od 1. ledna 2027 vyžaduje, aby operační systémy požadovaly po uživatelích věk nebo datum narození a skrze API poskytovaly aplikacím informaci, zda je uživatel mladší 13 let, má 13 až 16 let, má 16 až 18 let nebo má alespoň 18 let. Vývojáři linuxových distribucí řeší, co s tím (Ubuntu, Fedora, …).
Konference LinuxDays 2026 proběhne o víkendu 3. a 4. října v Praze v areálu ČVUT v Dejvicích na FIT. Čekají vás desítky přednášek, workshopy, stánky a setkání se spoustou chytrých lidí.
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ů.