1.84K subscribers
3.27K photos
130 videos
15 files
3.55K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Все же уже слышали про новый формат QOI (quite ok image format, qoiformat.org), который lossless сжимает картинки +- так же хорошо, как PNG, но при этом в 20-50 раз быстрее, а его спецификация умещается на одну страницу?

Хотели бы кодинг стрим где я бы подумал вслух и написал бы реализацию энкодера/декодера? 👀
👍9👎3
А всё же некоторая польза от [спецоперации] есть: по отношению к ней очень легко понять, кто нормальный человек, а кто — полоумный патриорк
👍24
Forwarded from resort (Дегидротация)
За пенсию в 30 лет я бы голосовал
3
Анекдот из жизни принесла. Две тётки ругаются в очереди к психиатру. Опуская предысторию, апогей конфликта:
— Вот и правильно вас тут лечат, психованную!
— Да я справку для работы пришла получать! Это тебя тут правильно лечат!
— Да мне рецепт для лежачего нужен!

Внезапно поднимается молчавший мужик:

— Вот меня тут лечат. И если вы не замолчите, я вас обеих покусаю! У меня справка есть, мне можно!
😁24👍3
Forwarded from Life of Tau
куличи переоценены
👎29👍53🤔3🤯1
Блог* pinned «Вафель начинает стрим по реализации QOI»
Forwarded from You Had No Job
Только 7-летней!
12😁6👍1
Как бы #prog #meme, а как бы и нет
1
💩14
Experimental chill
https://danlark.org/2022/04/20/changing-stdsort-at-googles-scale-and-beyond/ В общем, вот. Мы меняем сортировку в libcxx. Это был годовой 20%-й проект у меня, я к нему возвращался и бросал. Я его любил и ненавидел. Я ненавижу все ваши golden тесты до единого…
#prog #rust #моё

Не могу пройти мимо и удержаться от похвал Rust. Однако перед этим всё же проведу небольшой эксперимент по поводу производительности алгоритмов в стандартной библиотеке Rust. Проверять будем при помощи такого кода:

use rand::prelude::*;

fn measure(size: usize) -> usize {
use std::cmp::Ordering::*;

let mut comp_count = 0;
let gas = size + 1;
let mut n_solid = 0;

let mut indices = (0..size).collect::<Vec<_>>();
let mut values = vec![gas; size];
indices.shuffle(&mut thread_rng());

// indices.select_nth_unstable_by(size - 2, |&x, &y| {
indices.sort_unstable_by(|&x, &y| {
comp_count += 1;
match (values[x] == gas, values[y] == gas) {
(true, true) => {
values[x] = n_solid;
n_solid += 1;
Less
}
(true, false) => Greater,
(false, true) => Less,
(false, false) => values[x].cmp(&values[y]),
}
});

comp_count
}

fn main() {
let sizes = std::iter::successors(Some(100), |&i| Some(i * 2)).take_while(|&i| i <= 6400);
for size in sizes {
let n_comp = measure(size);
println!("{size}\t{n_comp}");
}
}

Как видите, это тот самый худший случай для быстрой сортировки. Однако pattern-defeating quicksort — текущая реализация сортировки в Rust std — достаточно хороша. Как же она себя ведёт?
👍1