Архив за 17 июля 2022 - 2

Всем привет. Сегодня я хотел бы задеть такую тему, как рендеринг и шейдеры в Unity. Шейдеры - простыми словами это инструкции для наших видео-карт, которые говорят, как правильно отрисовывать и трансформировать объекты в игре. Итак, welcome to the club buddy.

Что такое шейдеры, зачем они нужны и как разобраться во всем этом. Краткий экскурс по рендерингу в Unity - 1

Читать полностью »

Раньше, когда я думал, что у меня дар инженера, я провалил собеседование из-за одного глупого вопроса. Один из тех, что «не имеют никакого отношения к работе». Вот он: «Что бы вы изменили в JavaScript?»

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

Читать полностью »

В Китае представлен игровой ноутбук Thunderobot 911MT Tiger – его уже можно приобрести на JD.com за эквивалент 1400 долларов. Казалось бы, какое отношение эта новость имеет к российскому рынку? С недавних пор – самое прямое: ноутбуки Thunderobot начали ввозить в Россию по параллельному импорту, первая модель – ближайший «родственник» сегодняшней новинки Thunderobot 911 Air D. Так что не исключено и появление Thunderobot 911MT Tiger в официальной российской рознице. 

Знакомство с тестированием веб-приложений - 1


Даже в случае самой базовой конфигурации по мере добавления новых страниц и функциональности тестировать веб-приложение становится все сложнее. И чтобы помочь начинающим в этом нелегком деле, я написал небольшое вводное руководство. Читать полностью »

Рокетмены и право. Ракетомоделизм — это законно? - 1

В посте про правовое регулирование дронов меня заинтересовал вопрос @vinny496 про то, каким образом в РФ регулируется модельное ракетостроение. В этом посте я представляю результаты небольшого правового расследования на эту тему.

В начале, тем не менее, стоит отметить, что в России регулированию такого хобби посвящено очень мало правовых актов. С одной стороны, ракетомоделизм не запрещен законом. Более того, по всей стране действуют десятки клубов ракетчиков, работает Федерация ракетомодельного спорта, организуются соревнования, в том числе Всероссийские соревнования по ракетомоделизму, проводимые в Пермском крае.

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

Такая ситуация отличается от США, где ракетомоделизм более институционализирован и вопросы изготовления топлива для ракет и их запуска регулируются федеральным законодательством, а также изложены в справочниках Национальной ассоциации ракетомоделизма.

Этот пост представляет собой попытку разобраться в требованиях закона и установить границы легальности этого захватывающего хобби. Читать полностью »

Получение generic-типа в runtime - 1

В Java 5 появились generic-типы, а вместе с ним и концепция type erasure, которая буквально означает стирание информации о generic-типе после компиляции. Действительно, во многих случаях это просто синтаксический сахар, помогающий писать типо-безопасный код на уровне компиляции, и в runtime с такими типами работать нельзя. Например, невозможно получить тип T внутри ArrayList<T>, поэтому он в своей реализации создает массив Object[], а не T[] для хранения элементов.

Однако, в ряде случаев это очень даже возможно. Например, можно объявить поле

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanPostProcessor;
...
@Autowired
private Set<BeanPostProcessor> beanPostProcessors;

и spring в него заинжектит все объекты контекста, которые реализуют интерфейс BeanPostProcessor.

Можно написать и так:

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
...
List<String> strings = new ObjectMapper()
     .readValue("[1, 2, 3]", new TypeReference<>() {});
// все элементы strings - строки (не Integer и не Long)
List<Integer> ints = new ObjectMapper()
     .readValue("[1, 2, 3]", new TypeReference<>() {});
// все элементы ints - Integer (не String и не Long)

Можно написать даже так:
Читать полностью »

Я часто заморачиваюсь на тему минимизации размера своих GUI приложений. Прошлая моя статья была про Nuklear. Но сейчас захотелось более современных технологий. Чтоб HTML5, CSS3 и PHP. Чтоб приложение ни от чего не зависело, т.е. построено по принципу "всё включено". И чтоб конечный размер приложения не превысил 2 мегабайта. Получится ли?

В Linux я часто пользуюсь утилитой df. Мне её очень не хватает в Windows, а искать аналоги лень. Так что было сделано волевое решение сделать свою, на РНР 5, с бутстрапом и JQuery.

Краткое решение моей задачи: Читать полностью »

Дайджест новостей и полезных статей из мира фронтенд-разработки за неделю 11–17 июля.

Фронтенд-новости №15. CSS становится сложнее, VITE 3.0, самый высокий сайт в мире - 1

🧬 HTML

📔 Создадим табы на веб-компонентах. Для создания потребуется хорошо знать разметку, ариа-роли и UX.

📔 Читать полностью »

По материалам статьи Craig Freedman: The PIVOT Operator

Несколько статей будут посвящены тому как в SQL Server реализован оператор PIVOT и UNPIVOT. Начнем с оператора PIVOT. Оператор PIVOT берет нормализованную таблицу и преобразует ее в другой вид, в котором столбцы результирующей таблицы получаются из значений исходной таблицы. Например, предположим, что мы хотим хранить данные о суммарной выручке от продаж за год по каждому из сотрудников. Для этих целей можно создать следующую таблицу:

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js