Skip to content

Instantly share code, notes, and snippets.

View mormegil-cz's full-sized avatar

Petr Kadlec mormegil-cz

View GitHub Profile
@mormegil-cz
mormegil-cz / OkounJasnovidec.cs
Created March 15, 2024 09:07
Jasnovidec@Okoun
void Main()
{
for (int kol = 2; kol < 15; ++kol)
{
Console.WriteLine("{0}: {1}", kol, Enumerable.Range(0, 1 << kol).Select(i => Check(Enumerable.Range(0, kol).Select(b => (i & (1 << b)) == 0 ? 0 : 1).ToList())).Min());
}
}
static int Check(List<int> krupier) =>
Enumerable.Range(0, 2).Select(rada =>
@mormegil-cz
mormegil-cz / updatePasswords.js
Last active October 11, 2023 07:45 — forked from insin/updatePasswords.js
Mass update Firefox passwords (run in Tools → Web Developer → Browser Console) - https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox#Enabling_the_Browser_Toolbox
async function updatePasswords() {
let oldPassword = prompt('Old password:')
if (!oldPassword) return
let loginManager = Components.classes['@mozilla.org/login-manager;1']
.getService(Components.interfaces.nsILoginManager)
let matchingLogins = (await loginManager.getAllLogins()).filter(l => l.password === oldPassword)
let matchCount = matchingLogins.length
if (matchCount === 0) return alert('No matching logins found')
@mormegil-cz
mormegil-cz / GantoAxe.hs
Created August 5, 2023 12:42
The proof and interpretation of Gantō's axe in Haskell
-- see https://blog.plover.com/math/logic/gantos-axe.html
import Data.Void
-- The general theorem, valid for all types p, q
heart :: (p -> q) -> ((p -> Void) -> q) -> (q -> Void) -> Void
-- The proof
heart pq npq nq = v where
-- np :: p -> Void
np = nq . pq
@mormegil-cz
mormegil-cz / Duchody.cs
Created June 6, 2023 14:11
Příklad normální implementace v dnešním jazyce
record Osoba(string Ident, string PrijmeniJmeno, int RokNarozeni, decimal KcDuchodu);
record CteniKartotekyResults(int Pocet, decimal Soucet);
void Main()
{
var results = CteniKartoteky(ParseDuchody(File.ReadLines(@"duchody.txt")));
var prumer = Math.Round(results.Soucet / results.Pocet);
Console.WriteLine($"Pocet: {results.Pocet}, Prumer: {prumer}");
}
@mormegil-cz
mormegil-cz / most_visited_CZ_people_2022_CZ.tsv
Created January 4, 2023 19:47
Nejčtenější články Wikipedie o Češích v Česku v roce 2022
Jan Mikolášek 324500
Ivan Jonák 251400
Petr Pavel 206400
Ivan Roubal 176600
Danuše Nerudová 175600
Karel Gott 139000
Hana Zagorová 138500
František Mrázek 111200
Jan Žižka 104700
Libuše Šafránková 100000
@mormegil-cz
mormegil-cz / osm-relace-silnice3tridy.csv
Created December 21, 2022 08:24
Seznam relací OpenStreetMap pro silnice III. třídy v Česku
We can make this file beautiful and searchable if this error is corrected: No commas found in this CSV file in line 0.
Ref;Osm rel
0021;3260507
0024;3260519
0025;3260520
0026;3260521
0027;3260522
0029;3260523
0031;3260524
0032;3260536
0033;3260539
@mormegil-cz
mormegil-cz / most_edited_pages_cswiki_2022.tsv
Created December 15, 2022 08:22
Nejeditovanější stránky na cswiki v roce 2022
Stránka Editací
Wikipedista:Prikryl/Pískoviště 7423
Wikipedie:Nástěnka správců 2655
Wikipedie:Pod lípou 1927
Wikipedista:StephenzJehnic/Pískoviště 1755
Ruská invaze na Ukrajinu (2022) 1674
Wikipedista:Davidek2009/Pískoviště 1317
Wikipedista:Kubajdaa22cz/Pískoviště 1284
Wikipedie:Potřebuji pomoc 1050
Wikipedie:Pískoviště 995
@mormegil-cz
mormegil-cz / most_edited_articles_cswiki_2022.tsv
Created December 15, 2022 08:13
Nejeditovanější články na cswiki v roce 2022
Článek Editací
Ruská invaze na Ukrajinu (2022) 1674
Časová osa ruské invaze na Ukrajinu (2022) 731
Mistrovství světa ve fotbale 2022 483
Survivor Česko & Slovensko 352
Úmrtí v roce 2022 342
Seznam fotbalistů s 500 a více vstřelenými brankami 331
Tvoje tvář má známý hlas (9. řada) 325
2022 316
Seznam zájemců o kandidaturu ve volbě prezidenta České republiky 2023 311
@mormegil-cz
mormegil-cz / most_visited_articles_2022_CZ.tsv
Last active December 9, 2022 08:19
Nejčtenější články WMF v Česku v roce 2022
Ukrajina 679000
Česko 675700
Jeffrey Dahmer 558400
Alžběta II. 533500
Severoatlantická aliance 426300
Orličtí vrazi 424300
Vladimir Putin 412100
Marie Terezie 331100
Jan Mikolášek 324500
Josef II. 314200
let successes = 0;
let failures = 0;
for (let iter = 0; iter < 100000000; ++iter) {
let counts = [3,0,0,0];
while (counts.length > 1) {
let loser = Math.round(Math.random() * counts.length);
if (loser === 0) {
break;
}