Существенную часть кристалла современных ЦП занимает кэш-память. Дальнейшее увеличение кэш-памяти без изменения технологических норм приведет к соответствующему увеличению кристалла. Одним из способов увеличения объема хранимой информации в кэше без увеличения самого кэша является использование алгоритмов компрессии. Среди них выделяются алгоритмы Base+Delta и Base-Delta-Immediate. Данная статья посвящена реализации первого алгоритма.
Пользователь
TCP против UDP или будущее сетевых протоколов
По идее, если бы, к примеру, однажды один ленивый разработчик не попробовал развернуть свой ML на Python (потому что только его и знал), мир скорее всего никогда не проникся бы такой любовью к презренному «супер-джава-кодерами» языку. А сегодня слабости этого языка в прошлом контексте применения безоговорочно обеспечивают ему первенство в развертывании и запуске многочисленных майнерских А/Б.
Сравнивать можно многое: ARM с Intel, iOS и Android, а Mortal Kombat с Injustice. И нарваться на космический холивар, поэтому вернемся к теме доставки огромных объемов разноформатного контента.
Десять лет назад все были абсолютно уверены, UDP — это что-то про негарантированную доставку. Если нужен надежный протокол — это TCP. И вопреки традициям в этой статье мы будем сравнивать такие, кажущиеся несравнимыми вещи, как TCP и UDP.
Осторожно, под катом 99 иллюстраций и схем и все важные.
Различия индексов MySql, кластеризация, хранение данных в MyIsam и InnoDb
Как устроены индексы в MySql, чем отличается индексирование в двух наиболее популярных движках MyISAM и InnoDb, чем первичные ключи отличаются от простого индекса, что такое кластерные индексы и покрывающие индексы, как с помощью них можно ускорить запросы. Вот как мне кажется наиболее интересные темы которые раскрою в этой статье. Тут же постараюсь подробно раскрыть тему с позиции того как работает этот механизм внутри. Буквально на пальцах и с позиции абстракций а не конкретики. В общем чтоб было минимум текста и максимум понятно.
Знакомимся с дата-ориентированным проектированием на примере Rust
James McMurray
В этом посте мы исследуем основные концепции «Data-Oriented Design» (далее «дата-ориентированное проектирование» на языке Rust.
Весь исходный код для этого поста выложен на Github.
Алгоритмы для веб-разработчиков простыми словами
Здравствуйте, друзья! Данным постом мы открываем цикл статей об алгоритмах и структурах данных.
В этой статье мы поговорим о том, зачем вообще их нужно знать веб-разработчикам, и затронем тему оценки сложности алгоритмов и Big O нотации.
Зачем мне алгоритмы? Я фронтендер!
Вы наверняка задумались: «А зачем мне нужно тратить своё время на изучение этих сложных алгоритмов, если я работаю с фронтендом? Как знание графов и бинарных деревьев поможет мне лучше отцентровать одну div-ку внутри другой div-ки?»
С одной стороны, знание алгоритмов и структур данных действительно напрямую не пригодится вам в практической работе. Но с другой стороны, существует одна весомая причина инвестировать немного своего времени в их изучение: знание алгоритмов и структур данных сделает вас лучше как разработчика.
Многие веб-разработчики на таких форумах, как Reddit и Stack Overflow, отмечали, что, освоив даже на базовом уровне эти фундаментальные основы программирования, чувствовали себя увереннее, профессиональнее и писали более чистый и структурированный код.
Также это помогло им прокачать главный скилл разработчика – умение логически думать и решать сложные технические задачи.
Кстати, именно по этой причине многие крупные IT-компании требуют от своих потенциальных сотрудников знания фундаментальных основ computer science, к которым как раз относятся алгоримты и структуры данных, и с пристрастием спрашивают их на собеседованиях.
Ведь они ищут лучших из лучших, и знание алгоритмов как раз делает вас лучше как разработчика. Тем более, лучше инвестировать свое свободное время в новые знания и навыки, чем в сериалы на Netflix.
И на этой прекрасной ноте давайте перейдем к основной теме статьи.
Зачем нужно иногда вставать из-за компьютера? Часть вторая. Сила тренировки в восстановлении после тренировки?
Большинство смотрят на тренировку как на «пытку», «наказание» в отместку за съеденную еду. А все, что заставляет наш организм расставаться с так сложно добываемыми в предыдущие миллионы лет эволюции калориями воспринимается мозгом как угрожающий жизнедеятельности организма фактор. Но можно ли взглянуть на тренировку с другой стороны?
В первой части этой большой темы мы разобрали, что тренировка нужна не столько, чтобы «сжечь лишнее съеденное», но и полезна усилением кровообращения во всем организме, улучшением трофики (питания) тканей, а значит, улучшением функции суставов, сохранением мышечной массы, которая является метаболически-активной тканью по сравнению с жировой тканью, укреплением костной ткани и многими другими полезными эффектами.
Мы не любим спорт потому, что тренировки сопровождаются процессом физического и психического утомления после физической нагрузки. Но, если задуматься, что происходит внутри клеток и тканей после тренировки? Я считаю, что тренировка полезна самим процессом восстановления после физических упражнений, которое случается после физкультуры, ведь восстанавливаются не только тренируемые мышечные группы, но "достается" полезных эффектов всему организму. Разберемся на простом не сильно заумно-медицинском языке, каких?
Козёл отпущения
Мой предыдущий пятничный пост про «козла-провокатора» неожиданно для меня и моих коллег вызвал непродолжительную, но бурную дискуссию в комментариях, где меня буквально обвинили в измене прогрессивным принципам современного овцеводства.
Я, было, начал писать ответ, чтобы объясниться, но когда объём ответа стал приближаться к тысяче слов, понял, что лучше опубликовать отдельный пост, чтобы все раз и навсегда поняли, почему всегда и во всём виноват бывает именно козёл.
Приятного вам пятничного чтения!
Прагматичная разработка
Недавно выдалось свободное время и я сделал простой проект про specialty-кофейни на Кипре: сайт и телеграм-бот по всем канонам "большой" разработки. Люблю хороший кофе ?
Делюсь своим процессом разработки и рекомендациями как сделать всё задуманное без потери времени.
Проект MouseMover — мышь, живущая своей жизнью
MouseMover
Мониторинг PHP-приложений с помощью OpenTelemetry и SigNoz
PHP является самым популярным языком для серверной разработки, по праву занимая первое место на рынке. Приложения многих всемирно известных организаций, таких как Facebook, написаны на PHP. WordPress, на котором работает 43% всех веб-сайтов, также создан на основе PHP. В этом туториале я научу вас инструментировать PHP-приложение при помощи OpenTelemetry для получения данных телеметрии.
Мониторинг PHP-приложения на предмет проблем с производительностью и ошибок очень важен. Чтобы эффективно мониторить приложение, вам нужны надежные данные телеметрии из него. И с этим нам может помочь OpenTelemetry. OpenTelmetry предоставляет клиентские библиотеки для множества языков программирования, включая PHP, которые можно использовать для инструментирования приложений.
17 убойных репозиториев GitHub, которые нужно сохранить
Здесь собраны лучшие и самые полезные репозитории Github, которые будут служить вам долгое время.
Отрисовка в браузере большой анимации или как я ушел с mp4 к своему формату видео
Поделюсь с вами успешным опытом разработки рендера в браузере большой, постоянно расширяющейся анимационной сцены, состоящей из множества мелких двигающихся объектов, зацикленных в 5 секунд.
Как попробовать ELK-стек за один вечер и наконец-то перестать grep'ать логи
Как часто вы, в очередной раз матерясь и grep'ая простыню текста, говорили себе, что вот-вот перестанете хранить логи в файлах и переедете на ELK?
Я - часто, а виной тому кажущаяся сложность настройки всей системы в целом.
Наверное, так оно и есть, но для того, чтобы складывать логи и искать по ним, как оказалось, много ума не нужно.
Дисклеймер: я не знаю всех тонкостей ELK стека и возможно данный сетап не подойдет для огромной компании с сотней проектов и терабайтами логов, но там и без этой статьи все знают. Судите строго, давайте советы мне и другим в комментариях - я буду только рад.
В данной статье мы: разберем компоненты ELK стека и развернем его одной командой; законфижим Filebeat и научим его собирать и отправлять логи; рассмотрим интерфейс Kibana и научимся искать по логам; настроим Kibana и разберемся с правами доступа; поговорим об индексах, шаблонах и об автоудалении индексов (неактуальных логов);
Мой краткий чек-лист по скилам системного аналитика
Привет! Меня зовут Валид Панин, я главный системный аналитик в Альфа-Банк. Хочу поделиться кратким чек-листом скилов аналитика. Расскажу какие харды и соф-скилы использую в своей работе с примерами, пояснениями и списком литературы и ресурсов, которые помогут подтянуть знания. Мне бы пригодился такой чек-лист как карта развития, если бы я был начинал свой путь аналитиком.
Когда тестирование бессильно. Космические лучи меняют биты памяти чаще, чем принято думать
Как известно, все объекты на Земле подвергаются бомбардировке высокоэнергетическими частицами из различных источников. И если частица «снайперским выстрелом» попадёт точно в электронный компонент, то последствия могут быть неприятными, вплоть до сбоя компонента.
В авионике такие феномены называют «одиночные сбои» (single event upset, SEU). Для авиации космическое излучение особенно опасно, потому что лайнеры поднимаются в верхние слои атмосферы, где защита магнитного поля Земли намного слабее.
Но SEU происходят и на обычных компьютерах, в смартфонах, на серверах и т. д. Причём довольно часто. И если такой сбой произошёл во время тестирования, вы никогда не сможете его повторить, потому что состояние Вселенной отличается в каждый момент времени.
Используем клиентский процессор по максимуму. Часть 1: Rust + WebAssembly
На Хабре существует немало статей, посвящённых повышению производительности программ за счёт параллельных вычислений и использования векторных команд. Я решил дополнить этот список и рассказать о том, как можно оптимально задействовать все ресурсы процессора клиентской стороны веб-приложения.
В этой части мы поговорим о том, как, используя Rust в связке с WebAssembly, можно ускорить тяжёлые вычисления на примере программы для рендеринга фрактала Ньютона. В следующей части будет подробно рассказано о векторных командах и мультипоточных вычислениях в браузере.
Прирост производительности при использовании всех техник оптимизации по сравнению с реализацией на чистом JS может составлять ~1000%: от 8–9 до 100–110 фпс. Это можно проверить на интерактивном онлайн-демо, позволяющем также поиграться с числом потоков, способом вычислений и формой фрактала.
Комплект увольнения
- Знание ООП и структуры данных;
- опыт разработки на Java для Android.;
- знание Android API, понимание архитектуры Android;
- знание основ HTTP, XML, JSON;
- опыт работы с системами контроля версий Git;
- опыт работы с Android Studio, Gradle;
- опыт работы с SQL базами данных;
- знакомство с принципами Material Design;
Узнали? Конечно, узнали. Это — одно из стандартных резюме программиста.
Лично мне такое резюме напоминает одну песню, а точнее одну строку этой песни: «Жигули! Едет и уже хорошо!».
Еще напоминает рекламу тех же Жигулей, где наличие ABS, датчиков дождя и света и т.д. выдается за конкурентное преимущество. Ну и лозунг знаменитый: «Таким и должен быть автомобиль!».
А программист таким и должен быть? Если хочет быть, как жигули – массовым, дешевым и «как бы и не
Но мы не такие, поэтому будем формировать и формулировать свое конкурентное преимущество – комплект увольнения.
Комплект увольнения – то, что остается с вами, когда вы меняете место работы. Как пел Юрий Шевчук, «Это то, что останется после меня. Это то, что возьму я с собой».
Как самостоятельно изготовить электронную подпись
Оговорюсь сразу — я почти дилетант в вопросах, связанных с электронной цифровой подписью (ЭЦП). Недавно, движимый естественным любопытством, я решил немного разобраться в этом и нашел в Интернете 100500 статей на тему получения сертификатов ЭЦП в различных удостоверяющих центрах, а также многочисленные инструкции по использованию различных готовых приложений для подписания документов. Кое-где при этом вскользь упоминалось, что неквалифицированную подпись можно изготовить самостоятельно, если воспользоваться услугами «опытного программиста».
Мне тоже захотелось стать хоть немного «опытным» и разобраться в этой кухне изнутри. Для интереса я научился генерировать PGP-ключи, подписывать документы неквалифицированной подписью и проверять ее достоверность. Понимая, что никакой Америки не открыто, я, тем не менее, предлагаю этот краткий туториал для таких же, как и я, дилетантов в вопросах работы с ЭЦП. Я постарался особо не углубляться в теорию и в детали, а написать именно небольшое и краткое введение в вопрос. Тем, кто уже работает с ЭЦП, это вряд ли будет интересно, а вот новичкам, для первого знакомства — в самый раз.
HTTP/3 от А до Я: основные концепции. Часть 1
Фото Florencia Viadana, Unsplash.com
После почти пятилетних разработок протокол HTTP/3 наконец приближается к окончательному выпуску. Предыдущие итерации уже доступны как экспериментальная функция, но в 2021 году мы ждём широкого распространения протокола. Что такое HTTP/3? Зачем выпускать его так рано после HTTP/2? Как его можно или нужно использовать? Как он влияет на производительность?
Создание игр для NES на ассемблере 6502: приступаем к разработке
Оглавление
Часть I: подготовка
- Введение
- 1. Краткая история NES
- 2. Фундаментальные понятия
- 3. Приступаем к разработке
- 4. Оборудование NES
- 5. Знакомство с языком ассемблера 6502
- 6. Заголовки и векторы прерываний
- 7. Зачем вообще этим заниматься?
- 8. Рефакторинг
Часть II: графика
2. Фундаментальные понятия
Содержание:
- Работа с данными
- Регистры процессора
- Память
- Как задаются данные
- Как сделать данные человекочитаемыми
- Соединяем всё вместе
Что такое компьютер?
Вопрос кажется простым, но он затрагивает самую суть того, что делаем мы как программисты. Пока скажем, что «компьютер» — это нечто, исполняющее программу. «Программа» — это просто последовательность команд, а под исполнением программы подразумевается, что команды выполняются с начала и одна за другой. (Если вы читаете программу и сами исполняете команды, то поздравляю! Вы — компьютер!)
Информация
- В рейтинге
- Не участвует
- Откуда
- США
- Зарегистрирован
- Активность