Pull to refresh
-30
Ошнуров Андрей @andreoshread⁠-⁠only

Программист

Send message

Vulkan. Руководство разработчика. Создание вершинного буфера

Reading time8 min
Views3.9K


Я работаю переводчиком в ижевской IT-компании CG Tribe и занимаюсь переводом Vulkan Tutorial на русский язык. Оригинал тьюториала можно найти здесь.

В своей прошлой публикации я начала перевод раздела Vertex buffers, и сегодня хочу представить перевод главы, посвященной созданию буфера — «Vertex buffer creation».

Содержание
Читать дальше →

Как на Three.Js сделать анимированный туннель из частиц

Reading time9 min
Views13K

Один из организаторов митапов для креативных разработчиков в Бельгии Creative Front-end Belgium в двух постах на CodePen рассказывает и показывает, как шаг за шагом сделать туннель из частиц с эффектом движения в нём. К старту курса по Frontend-разработке делимся сокращённым переводом этих статей об анимации, которая, по словам автора, нравится ему больше всего; вы увидите эксперименты с параметрами анимации, поэтому легко поймёте, как адаптировать код для своих нужд, например, для эффекта на сайте или в вашей игре.

Читать далее

Новости Yii 2021, выпуск 3

Reading time7 min
Views8.5K

Привет, сообщество!

Это в очередной раз Александр. Рад представить вам ещё один выпуск новостей про PHP фреймворк Yii. Новостей не было довольно долго, но это не потому, что ничего не происходит, а как раз наоборот: происходит всё и сразу. Над Yii3 работать всё приятней так как пакеты стабилизируются, а фреймворк становится более полным.

Читать далее

GOSTCoin. История первой криптовалюты в I2P

Reading time6 min
Views7.8K

Эта статья посвящена криптовалюте, в основе которой лежит стандартизированная российская криптография. В отличие от других криптовалют-ноу-неймов, ее разработала команда с именем, и она не рекламировалась в инстаграм-профилях с миллионной аудиторией. Из материала вы узнаете историю первой в мире криптомонеты, которая стала полностью адаптирована для работы через I2P без единой нужды обращаться в обычный интернет, где запросы подвержены перехвату, анализу и блокировкам.

Читать далее

«И бысть мор великий на всех землях русских…» — инфекционные болезни и эпидемии в допетровской Руси

Reading time18 min
Views13K

Перейдём к другому разделу данного очерка – истории распространения эпидемических болезней на Руси. С этим разделом древнерусской медицины связаны два любопытных момента. Первый: миф о том, что на Руси эпидемий не было, а если и были, то не охватывали широких слоёв населения. Второй: в связи со слабым развитием естественнонаучных и медицинских знаний, народное сознание породило удивительный мифологический материал, объясняющий происхождение инфекционных болезней, аналогов которому нет ни у одного народа мира. Но обо всём по порядку.

Читать далее

Эволюция Docker. Часть 1

Reading time14 min
Views20K

20 марта 2013 года на конференции PyCon 2013, Соломон Хайкс (CEO компании dotCloud) выступил с пятиминутной презентацией The future of Linux Containers. В ней широкой общественности впервые была представлена внутренняя разработка компании dotCloud под названием Docker, а спустя несколько дней ее исходный код был выложен в открытый доступ. Хотя технологии LXC и Aufs, на которых была основана первая версия Docker существовали и активно использовались уже порядка пяти лет, но именно появление Docker послужило началом стремительного роста и эволюции систем контейнеризации, что кардинально преобразило многие процессы разработки и деплоймента программного обеспечения.

Этой статьей я собираюсь начать небольшой цикл посвященный изучению развития исходного кода Docker на протяжении нескольких лет. В первой части мы посмотрим на то, что представлял собой код на момент создания git репозитория датированного январем 2013 года. Тогда исходный код Docker (за исключением тестов) состоял всего из шести файлов общим объемом ~600 строк кода, написанных на языке Go. Это больше походило на библиотеку/api, функционал которой состоял лишь в создании, удалении, запуске и остановке контейнеров. Мы разберем принцип работы и даже сможем запустить с ее помощью подготовленный контейнер. 

Во второй части мы перенесемся на несколько месяцев вперед - в март 2013, когда докер был представлен на конференции PyCon. На тот момент он уже обладал практически всеми знакомыми нам функциями. А в третьей части я постараюсь рассмотреть переход Docker с LXC на собственную разработку, произошедший годом позже.

Читать далее

Ускорение WordPress. Тотальный разбор плагинов для кэширования. Личный опыт (часть 1)

Reading time14 min
Views21K

Что делать, если сайт на WordPress грузится медленно? Ответ на самом деле прост – настрой кеширование. Можно ещё заниматься оптимизацией изображений, настройкой lazy loading и прочими хитростями. Но кеширование всё равно остаётся ключевым способом ускорения любого сайта на Вордпресс. Кажется, всё просто, зайди в Google, напиши "WordPress cache", найди статью, где больше всего картинок, скачай упомянутый в статье плагин и выстави настройки согласно скриншотам. При любом раскладе твой сайт сразу начнет работать в разы быстрей.

Но дьявол, как обычно, кроется в деталях. В интернете есть самые разные обзоры и сравнения плагинов кеширования. И за столько лет кто-то же должен был выдать идеальный рецепт? Но нет. Все эти обзоры сводятся к тезису: «мы сделали 10 одинаковых сайтов, установили плагины с дефолтными настройками и смотрим, где страница загрузилась быстрее». При этом все забывают, что нюансов при оптимизации кеширования вагон и маленькая тележка. Похоже, эта статья первая, которая примет во внимание реальное поведение пользователей на сайте, вместо сравнения скорости загрузки одной страницы в тепличных условиях.

Используя бестселлеры с Themeforest или, те же конструкторы, вроде Elementor, WP Backery и прочие, сайт обречен на 5-15 секунд TTFB (time for first byte, время ответа сайта) при загрузке КАЖДОЙ страницы. С одной страницы может быть несколько сотен обращений к базе данных, выполняться большое число php-функций, подключаться множество библиотек. Естественно, что такая скорость недопустима, она влечет за собой понижение в поисковой выдаче, "отказы" посетителей, сливы бюджетов на рекламу и так далее. С этим нужно что-то делать.

Читать далее

Ускорение WordPress. Тотальный разбор плагинов для кэширования. Личный опыт (часть 2)

Reading time18 min
Views31K

В этой части я подробно рассмотрю принцип работы каждого плагина, о которых говорил в первой части, а также приведу код с доработками для закрытия проблем плагинов. Кратко все преимущества и недостатки, основные выводы я уже сделал в первой части статьи.

Читать далее

Java CSP быстрый старт

Reading time8 min
Views21K

Если вы решили разрабатывать приложение на Java + maven, которое должно работать с отечественной криптографией, то эта статья для вас.

В статье рассказывается как создать приложение и подключить к нему JavaCSP для работы с ГОСТ-овой криптографией. В качестве примера мы создадим программу, показывающую все сертификаты в регистре.

Целевая аудитория junior/middle разработчики, которым требуется реализовать подписание/шифрование на базе отечественной криптографии. И которые до этого не имели опыта работы с Крипто Про.

Читать далее

Как я ЖКХ-платежи автоматизировал

Reading time6 min
Views24K

Если у вас есть возможность оплачивать все коммунальные счета из одного приложения, я вам завидую. А уж если у вас стоят умные счётчики, то вы просто счастливчик.

У меня вот две обслуживающие организации, и заведены два личных кабинета на разных сайтах. В одном кабинете я должен ежемесячно передавать показания всех счётчиков и оплачивать воду, электричество и прочие коммунальные услуги. А в другом я должен продублировать показания счётчиков горячей воды и заплатить за тепло. Дни, когда можно передавать показания по воде и электричеству, разные. А передавать показания и потом платить после выставления чёта лучше вовремя, иначе возникает неразбериха. Можно, конечно, ставить напоминалки, но это не слишком-то помогает.

Решил я немного упростить жизнь и написать программку, которая будет оповещать меня о наступивших событиях, таких как необходимость заплатить или передать показания, и позволит передавать показания счётчиков сразу на оба сайта в нужное время.

Под катом рассказ о том, что у меня из этого получилось.

Читать далее

Что нового в .NET 6?

Reading time23 min
Views85K

На момент написания этих строк вышло уже семь превью-версий .NET 6. Дальше — только релиз-кандидаты. Все основные фичи уже добавлены во фреймворк, идёт отладка, тестирование и оптимизация. Ожидать чего-то кардинально нового в RC-версиях, пожалуй, уже не стоит. Пришла пора рассмотреть .NET 6 поближе.


Пресс-релиз для каждой версии содержит огромное количество восхвалений и убеждений в том, что теперь-то всем станет ещё лучше, и как мы вообще жили раньше — уму непостижимо. Где-то авторы не врут, где-то не договаривают, где-то преувеличивают. Пришлось тщательно прочитать все семь пресс-релизов, изучить массу смежных материалов и просмотреть огромное количество тикетов на Гитхабе. Всё для того, чтобы понять, чем они там занимаются и что выкатывают нам посмотреть.


Поговорим об этом.

Читать дальше →

Работа с кучей в Rust

Reading time4 min
Views8.4K

Продолжаем изучать Rust нетрадиционным способом. В этом раз будем разбираться в нюансах работы с кучей, для их понимания понадобятся: сырые указатели, выделение памяти в куче, размер экземпляра типа, запись значений в кучу и чтение из нее, const и static, unit-like структуры, переопределение глобального аллокатора.


Это, определенно, overkill для одной статьи, а вот половину списка вполне можно освоить.


Читать дальше →

Охлаждение электроники: термомоделирование при разработке конструкции корпуса

Reading time7 min
Views14K

Электронное устройство обычно состоит из корпуса и внутренних компонентов, которые при работе выделяют тепло. И тут скрыт конфликт: производители стремятся уменьшить корпус (так дешевле и удобнее), но компактный корпус затрудняет отвод тепла. Проблему усугубляет рост вычислительных мощностей: электроника нагревается еще сильнее, а это может привести к сбоям. Как в таких условиях обеспечить достаточное охлаждение еще на стадии разработки новых серийных устройств? Давайте вместе разберемся с разными типами теплоотведения:  естественной конвекцией, принудительным охлаждением с помощью вентиляторов и системами жидкостного охлаждения.

Читать далее

Интеграция 1С в экосистеме

Reading time5 min
Views13K

За что я люблю технологии 1С?

Это за широкую возможность интеграции с другими системами. А сколько возможностей открывают расширения, написанные на внешней библиотеке DLL. Предлагаю рассмотреть одну из таких возможностей - интеграции через брокер-сообщения, а также предлагаю свой вариант универсальной структуры JSON для обмена данными.

Читать далее

Персонализируйте свою Visual Studio 2022

Reading time2 min
Views7.1K

Одна из основных целей Visual Studio - повысить вашу индивидуальную и командную продуктивность. И одно из наших ключевых направлений - сделать Visual Studio более настраиваемой и гибкой. В статье мы кратко расскажем о некоторых функциях персонализации, которые мы добавили в нашу Preview-версию или планируем выпустить в ближайшее время.

Читать далее

Шпаргалка для разработчика: создаём безопасное веб-приложение

Reading time17 min
Views22K

Эта статья — своего рода ‘cheat sheet’ для веб-разработчика. Она даёт представление о «программе-минимум» для создания веб-приложения, защищённого от самых распространённых угроз.

Читать далее

Генерация Excel-файлов как zip-архива

Reading time5 min
Views6.8K
Как известно, файл Excel — это просто набор XML-файлов, определяемых форматом Office Open XML и упакованных в zip-архив, и потому для генерации нового файла помимо специализированных библиотек можно воспользоваться библиотеками для XML и zlib. Как обойтись без внешних зависимостей — под катом.
Читать дальше →

Вектор-инструкция: о советском происхождении VLIW

Reading time6 min
Views8.6K

Изначально у меня была мысль опубликовать на habr статью о современных VLIW-процессорах. Думаю, далеко не все читатели в курсе, что сейчас происходит ренессанс VLIW-подобных архитектур в области предметно-ориентированных ускорителей. Такие компании, как Xilinx, Synopsys и Cadence, даже предоставляют "конструкторы" для сборки VLIW-процессоров под задачи клиента. Но начало статьи, в контексте истории VLIW, планировалось посвятить неожиданной для меня исторической находке, давшей название заголовку заметки, которую вы сейчас читаете. Увы, сейчас совершенно некогда писать развернутую статью о VLIW-процессорах. Но и молчать о своей находке я тоже уже не могу!

Читать далее

V8 в бэкенде С++: от одного JS-скрипта до фреймворка онлайн-вычислений

Reading time31 min
Views11K
В этой статье я расскажу о долгом путешествии, в котором простая идея выноса в JavaScript часто меняющихся фрагментов алгоритма постепенно выросла в универсальный фреймворк, позволяющий быстро создавать микросервисы и так же быстро их развивать. Сейчас он служит основой для множества микросервисов в Яндекс Go. Тут не будет много специфики Go. Вместо этого будет много разработки и решений технических задач (а не продуктовых). Ещё я, конечно, расскажу про возникшие в процессе трудности: если вам, например, интересно, как V8 уживается с корутинами или как мы оптимизировали работу с ним для производительности, то добро пожаловать под кат.


Читать дальше →

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity