Закреплено автором
ZDG
Навигатор по каналу
2,2K · 3 года назад
Статьи
21 прочтение · 2 дня назад
Поразительно много материалов в ленте про то, как ускорить Ютуб. Как грибы после дождя, десятками. Даже не читал, и такого ажиотажа не понимаю. Во-первых, Ютуб не замедлился, а не работает вообще. Это несколько разные вещи, не так ли? Во-вторых, чтобы он работал, надо в браузере использовать VPN-плагин типа VeePN, Freegate и т.п. Я вот использую VeePN. Фишка в том, что он использовался и раньше, для доступа к различным заблокированным сайтам. То есть ничего вообще не изменилось. Заблокировался Ютуб – открываем через VPN. Всё! Какие ещё способы нужны, о чём все эти десятки статей?
18 прочтений · 1 неделю назад
Возвращаясь к решению ЕГЭ-задачи: экстремальные альтернативы
Никак не может "утонуть" по просмотрам вот эта статья: Которая в свою очередь была написана по мотивам статьи другого автора: Не думал, что так получится. За всё это время набрались комментарии с различными предложениями и возражениями, поэтому сделаю второй подход с повышенной сложностью. В качестве исходных данных даётся уже сформированный файл, который содержит 5000 записей. Именно от этого числа я и отталкивался при решении – какую сортировку выбрать, как размещать в памяти и прочее. Но в задаче говорится, что число записей считывается первым из файла...
56 прочтений · 2 недели назад
Запись и чтение данных с неровным числом бит
Первоначально замышлял доработать алгоритм LZW вот отсюда: Но работа с произвольным количеством бит оказалась самостоятельной задачей, которая заслуживает отдельного выпуска. Итак, обычно мы работаем с данными по 8, 16, 32 и так далее бит. Компьютерная память приспособлена для ведения операций чтения и записи именно такими порциями. Но это же приводит к тому, что если наши данные, допустим, занимают всего 3 бита, то для хранения потребуется минимум 8. А если данные занимают 12 бит, то потребуется 16...
29 прочтений · 3 недели назад
Алгоритм LZW: Сравнение производительности и распаковщик
В предыдущей части был написан упаковщик LZW: Если порыться в сети, то большинство реализаций LZW будут опираться на использование хэшмапа с ключами-строками. Почему? Потому что это самое очевидное, что приходит в голову. Но я сделал свою версию хэш-таблицы для реализации словаря. Без ключей-строк и вообще очень примитивную. Я измерил время выполнения своей программы на файле "Neuromancer", упомянутом в предыдущей части. Оно составило около 0.05 секунды. Потом я решил вывести статистику заполнения...
1,9K прочтений · 1 месяц назад
От чего SCP Foundation защищает человечество
Три буквы SCP появились в 2007 году, но долгое время о них мало кто знал. Это была особая субкультура, которая зародилась на неформальном сайте 4chan, и, если кто-то ненароком произносил эти три буквы, то можно было понимающе кивать – мол, ты тоже в теме. В последнее время SCP получает всё более широкую известность, и даже такой популярный среди современных детишек персонаж, как Сиреноголовый, считается SCP, либо не считается SCP, но в любом случае там всплывает отсылка к SCP, так что детишки уже в курсе...
572 прочтения · 1 месяц назад
Алгоритм сжатия LZW
Называется по фамилиям создателей: Lempel, Ziv, Welch. Известен тем, что используется в различных библиотеках сжатия и в частности в формате GIF. Был запатентован, и жадная компания Unisys стала требовать денег за создание гифок. Но как известно, если ты плюнешь в коллектив, то коллектив утрётся. А если коллектив плюнет в тебя... Так появился свободный формат PNG (PNG's Not GIF). В 2003 году срок действия патента истёк, и мы можем невозбранно использовать LZW для своих целей. Я использовал его....
113 прочтений · 1 месяц назад
От C к C++: Виртуальные функции
Предыдущая часть: Рассмотрим для затравки пример из другого языка – PHP: Несмотря на разницу в синтаксисе, легко понять, что класс Child наследуется от класса Prnt. Я его назвал Prnt, так как Parent в PHP это зарезервированное слово. И родитель, и потомок имеют метод setX(). Далее, мы передаём в функцию test() экземпляры классов Prnt и Child и смотрим, что происходит. $parent = new Prnt(); test($parent); $child = new Child(); test($child); Когда передаём $parent, то вызывается метод Prnt::setX(),...
839 прочтений · 1 месяц назад
Наивное кодирование Хаффмана
Откуда такой заголовок, и в чём суть проблемы? Кодирование Хаффмана это алгоритм сжатия данных, древний, известный и несложный. Конкретно у меня возникла трудность с его пониманием. То есть, я много раз про него слышал, формально знаю как работает, но это знание о каких-то механических действиях, которые просто делаются и что-то получается. Я читал труд Хаффмана в оригинале, читал Википедию, читал обсуждения на StackOverflow, даже у ChatGPT спрашивал. В итоге всё равно не понял. Так бывает, когда пропускаешь какую-то одну деталь и без неё головоломка никак не складывается...
103 прочтения · 1 месяц назад
От C к C++: Наследование и пустые объекты
Как известно, стоит перейти от простого языка к сложному, в котором есть ООП и прочее, так и программы становятся больше, и работать они начинают медленнее, и всё это ради удобства разработки. Будем смотреть, до каких пределов мы можем добавлять ООП в чистый C, чтобы скомпилированные программы не начинали распухать и тормозить. Предыдущая часть: Итак, в чистом C для эмуляции ООП мы используем структуру как класс и набор функций как методы класса. В C++, как известно, классы это те же структуры,...
199 прочтений · 1 месяц назад
От C к C++: Оператор new и всякие-разные конструкторы
В предыдущей части я был приятно удивлён тем, что для создания экземпляра класса на стеке не требуется оператор new, как в других языках: Всё происходит как обычное объявление переменной нужного типа, и объект уже создан (на стеке), и даже вызван его конструктор. На третий день Зоркий Глаз увидел, что в C++ всё-таки используется new: MyClass* test = new MyClass(); Можно писать new MyСlass со скобками или без скобок, но про это позже. А пока про new. На деле оператор new выделяет память под объект из кучи...
469 прочтений · 1 месяц назад
От C к C++: ООП
Я писал на языке C давно, и сейчас вернулся к нему просто для души. Мне просто нравится. Однако я вообще не знаю C++ и никогда не писал на нём, хотя это и покажется странным. Многие уверены, что C и C++ это практически одно и то же, ну как Java и JavaScript :) Да, C это подмножество C++, и поэтому можно написать программу на C, дать файлу расширение .cpp и скомпилировать компилятором C++. Формально это будет программа, написанная на C++, но на самом деле нет. Можно писать на C, используя некоторые...
373 прочтения · 1 месяц назад
Демистификация циклов
Цикл – одна из самых базовых конструкций программирования, и что там может вызывать непонимание? Действительно, ничего. Программист пишет циклы очень часто, это становится автоматическим навыком, но именно поэтому некоторые специфические детали могут систематически ускользать и попадать в поле зрения только тогда, когда что-то пойдёт не так. Цикл это повторное исполнение одного и того же кода. Например, вот одни и те же строчки кода: a = 5; a = 5; a = 5; И они будто бы даже выполняются повторно....
Видео