Pull to refresh
61
Karma
0
Rating

Пользователь

Беспроводной тачпад из смартфона

Маклауд corporate blog Developing for Arduino *Smartphones DIY
Когда ты уже не начинающий ардуинщик и погодных информеров у тебя уже несколько штук, хочется чего-то более «оригинального» и «полезного».

Предположим у нас имеется: Arduino Leonardo – 1 штука, Bluetooth модуль – 1 штука, Android смартфон – 1 штука. Ключевое отличие Leonardo от остальных ардуин заключается в том, что она поддерживает протоколы HID, а по-простому может притворятся мышкой или клавиатурой. Выглядит это примерно следующим образом:

#include "Mouse.h" // импортируем библиотеку работы с мышью
void setup(){}            // ничего не настраиваем
void loop()
{
 Mouse.move(10, -15, 3);  // сдвигаем курсор на 10 пикселей вправо, на 15 пикселей вверх и колесо на 3 оборота
}

Как видим все крайне просто. Метод Mouse.move(X, Y, WHEEL) принимает три относительных параметра: 

X – величина смещения в пикселях по оси X (отрицательные значения сдвигают влево)

Y – величина смещения в пикселях по оси Y (отрицательные значения сдвигают вверх)

WHEEL – величина смещения колеса прокрутки (отрицательные значения сдвигают в другую сторону)

Но сама по себе идея двигать курсор ничего не стоит, если не мы его контролируем, а значит нам нужно непосредственно HID (Human Interface Device), или по-простому устройство ввода. В нашем случае мы его сделаем из смартфона, «написав программу» в среде AppInventor, но, предварительно, разберемся с железной частью и напишем скетч для Arduino. Данные в Leonardo со смартфона мы будем отсылать по bluetooth. Модуль bluetooth можно использовать любой подходящий, наиболее популярным решением является HC-05(06). Подключаем по следующей схеме:

Total votes 14: ↑12 and ↓2 +10
Views 10K
Comments 35

История российского IPO

Маклауд corporate blog History of IT


В последнее время нас штурмуют рекламой различных инвестиционных продуктов: Тинькофф Инвестиции, ВТБ Инвестиции, Сбер Инвестиции… Возможно, скоро у каждого банка будет свой инструмент для инвестирования. Но любой инструмент — это всего лишь посредник между вами и биржей. История современного фондового рынка в России началась не так давно, как в остальном мире. Первое публичное размещение акций (IPO) российской компании на фондовой бирже произошло лишь в 1996 году, всего 25 лет назад. Давайте подробнее изучим историю российского IPO. 

Матчасть


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

  • функциональная — торговая площадка, где производятся действия с ценными бумагами, например, фондовая биржа;
  • техническая — организации, которые способствуют совершению сделки, например депозитарии, хранящие информацию об участниках рынка (наличие тех или иных ценных бумаг);
  • инвестиционная — сами участники рынка;
  • информационная — СМИ и другие источники информации о текущем состоянии рынка.

В фондовый рынок вовлечены три типа участников:
Читать дальше →
Total votes 19: ↑16 and ↓3 +13
Views 7.3K
Comments 3

Архитектура процессора Эльбрус: стоит ли все это своих денег?

Маклауд corporate blog Reading room CPU


В России всего несколько компаний, занимающихся разработкой процессоров. Одна из этих компаний — МЦСТ с процессорами «Эльбрус». В целом, МЦСТ делает акцент на том, что их процессоры — российские, и государство всячески помогает ей. Во-первых, государство является основным потребителем «Эльбруса», поскольку обычному потребителю такой процессор на данный момент не нужен. А во-вторых, государство выдает субсидии на проекты МЦСТ и принимает инициативы, упрощающие деятельность этой компании  В этой статье пойдет речь о семействе процессоров «Эльбрус» и о том, что они могут предложить вместо процессоров из-за «бугра».

Процессоры «Эльбрус»


Советский период


В конце 60-х годов 20-го века в СССР была принята государственная директива, которая обозначала дальнейший вектор развития компьютеростроения СССР как копирование наработок западных коллег, в частности компьютера IBM S/360. В целом, многие советские инженеры, в том числе и отец советской кибернетики Сергей Лебедев, отзывались скептически о таком решении. По мнению Лебедева, путь копирования по определению является дорогой отстающих. Но других вариантов никто не видел или не хотел видеть.
Читать дальше →
Total votes 85: ↑76 and ↓9 +67
Views 67K
Comments 297

Автоматизируем работу с контейнерами через Makefile: сборка, тестирование и развёртывание за один вызов make

Маклауд corporate blog Website development *Python *
Translation
Утилита make позволяет просто управлять контейнерами, объединив команды для сборки, тестирования и развёртывания в одном конфигурационном файле.


Разработчики многие годы используют утилиту make. При запуске утилита читает файл с описанием проекта (Makefile) и, интерпретируя его содержимое, предпринимает необходимые действия. Файл с описанием проекта представляет собой текстовый конфигурационный файл, где описаны зависимости и команды, которые необходимо выполнить. Он похож на Dockerfile или другой файл конфигурации контейнера: там тоже указаны команды, на основе которых формируются образы для развёртывания контейнеров.

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

Цели и структура Makefile


Утилита make по умолчанию установлена в большинстве современных Linux-дистрибутивов, поэтому проблем с её использованием обычно не возникает. И чтобы начать её использовать, нужно создать файл с именем Makefile.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Views 7.6K
Comments 9

Краткая история Windows и что у нее под капотом

Маклауд corporate blog History of IT Software


Несколько дней назад в сеть просочился образ ранней версии Windows 11. Различные издательства провели тесты по производительности и пришли к неутешительному выводу: Windows 11 в среднем работает хуже, чем Windows 10. Но расстраиваться рано! Проблемы производительности могут быть связаны с «сыростью» слитого образа и нюансами совместимости с текущими программами. Так или иначе, 24 июня состоится официальная презентация нового поколения операционных систем Windows, которая, возможно, даст ответы на многие вопросы. Если сегодня у вас есть настроение для ностальгии, предлагаем вам окунуться в мир Windows: познакомиться с историей, как менялась ось и что у нее внутри.

История Windows



В начале 80 годов прошлого века компания IBM работала над персональным компьютером на базе процессора Intel 8088. С середины 70 годов компания Microsoft была основным поставщиком Basic для восьмибитных микрокомпьютеров. Когда IBM обратилась к Microsoft для лицензирования Basic для их нового компьютера IBM PC, Microsoft согласилась, а также посоветовала обратиться к компании Digital Research для лицензирования операционной системы CP/M. Но, получилось так, что глава Digital Research не нашел в своем графике времени для встречи для IBM, и IBM снова обратилась к Microsoft, теперь уже с просьбой решить вопрос операционной системы для IBM PC. Microsoft купила клон ОС CP/M у компании Seattle Computer Products и перенесла её на IBM PC. Итоговым названием получившейся ОС стало MS-DOS 1.0.
Читать дальше →
Total votes 73: ↑61 and ↓12 +49
Views 55K
Comments 100

То, чего не может быть: самые необычные версии обычных игровых консолей

Маклауд corporate blog Game development *Old hardware Games and game consoles


Мы с вами давно привыкли к тому, что на протяжении своего жизненного цикла игровые консоли остаются практически неизменными. Да, они подвергаются рестайлингу, выходят в разных комплектациях и лимитированных версиях, приуроченных к громким релизам или юбилею платформы, и даже могут получить более мощную начинку. Однако в общем и целом модификации одной и той же приставки идентичны по функционалу и не имеют принципиальных различий, а ситуации вроде той, что произошла с PlayStation 3, когда последующие ревизии консоли лишились аппаратного блока для запуска игр с PS2, являются скорее исключением, нежели правилом.

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

Теория гибрида: консольные эксперименты Sega


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

Sega SC-3000



8-битный игровой компьютер Sega SC-3000
Читать дальше →
Total votes 56: ↑45 and ↓11 +34
Views 14K
Comments 13

Оперативная память мозга: что общего между компьютером и мозгом

Маклауд corporate blog Popular science Biotechnologies Brain


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

Когнитивность


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

Получение информации


Информация попадает в наш мозг посредством нервных импульсов, источником которых являются органы чувств. Именно они первыми получают информацию, а также и преобразовывают её в соответствующий импульс. Зрение преобразовывает электромагнитное излучение видимого спектра, осязание — физическое взаимодействие (температура, вибрации, прикосновения и т. п.), слух — механические колебания в среде, обоняние и вкус — воздействие различных веществ на рецепторы. Помимо основных пяти видов чувств, не стоит забывать о вестибулярном аппарате, который отвечает за положение тела в пространстве и направления движения. 
Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Views 14K
Comments 10

Реализация подписки на обновления с помощью Google Sheets, Netlify Functions и React. Часть 2

Маклауд corporate blog ReactJS *Serverless *

Это вторая часть туториала, посвященного реализации Real World App — подписки на обновления с помощью гугл таблиц, бессерверных функций и реакта.


Вот ссылка на первую часть.


Напомню, что основной функционал нашего приложения, который мы реализовали в первой части туториала, является следующим:


  • на главной странице отображается приветствие и предложение подписаться на обновления
  • при нажатии на кнопку «Подписаться», пользователь попадает на страницу с формой, содержащей два поля: имя и адрес электронной почты
  • для защиты от ботов используется гугл рекапча 2 версии
  • при заполнении полей и прохождения проверки снимается блокировка с кнопки «Подписаться»
  • при нажатии этой кнопки данные пользователя отправляются в таблицу с помощью бессерверной функции

Дополнительный функционал, реализацией которого мы займемся в этой части:


  • с помощью скрипта осуществляется автоматическая рассылка уведомлений
  • в рассылаемых письмах содержится ссылка на отписку от обновлений
  • при переходе по этой ссылке адрес электронной почты передается бессерверной функции, с помощью которой из таблиц удаляется соответствующая строка
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Views 1.2K
Comments 0

Альтернатива ML-Agents: интегрируем нейросети в Unity-проект с помощью PyTorch C++ API

Маклауд corporate blog C++ *API *
Translation


Кратко объясню, что будет происходить в этой статье:

  • покажу, как использовать PyTorch C++ API для интеграции нейросети в проект на движке Unity;
  • сам проект я подробно описывать не буду, это не имеет значения для данной статьи;
  • использую готовую модель нейросети, преобразовав её трассировку в бинарник, который будет подгружаться в рантайме;
  • покажу, что такой подход существенно облегчает деплой сложных проектов (например, нет проблем с синхронизацией сред Unity и Python).

Добро пожаловать в реальный мир


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

Другими словами, мне нужно превратить исследовательский проект на PyTorch в готовое решение, способное вместе с движком Unity работать в боевых условиях.
Читать дальше →
Total votes 15: ↑12 and ↓3 +9
Views 2.7K
Comments 0

Реализация подписки на обновления с помощью Google Sheets, Netlify Functions и React. Часть 1

Маклауд corporate blog Website development *ReactJS *Serverless *
Tutorial

В этом туториале мы реализуем ~~Real World App~~ — подписку на обновления с помощью гугл таблиц, бессерверных функций и реакта.


Основной функционал нашего приложения будет следующим:


  • на главной странице отображается приветствие и предложение подписаться на обновления
  • при нажатии на кнопку "Подписаться", пользователь попадает на страницу с формой, содержащей два поля: имя и адрес электронной почты
  • для защиты от ботов используется гугл рекапча 2 версии
  • при заполнении полей и прохождения проверки разблокируется кнопка "Подписаться"
  • при нажатии этой кнопки данные пользователя отправляются в таблицу с помощью бессерверной функции

Дополнительный функционал:


  • с помощью скрипта осуществляется автоматическая рассылка уведомлений
  • в рассылаемых письмах содержится ссылка на отписку от обновлений
  • при переходе по этой ссылке адрес электронной почты передается бессерверной функции, с помощью которой из таблиц удаляется соответствующая строка — пользователь больше не будет получать уведомлений

В первой части туториала мы реализуем основной функционал, во второй — дополнительный.

Читать дальше →
Total votes 12: ↑7 and ↓5 +2
Views 2.2K
Comments 0

4 технических решения, которые делают API сервис успешным

Маклауд corporate blog Development of mobile applications *API *Development for Office 365 *
Translation
Есть API, которые в целом «как-то работают», но имеют проблемы с безопасностью, документацией или валидацией данных. Автор статьи объясняет, почему в современных реалиях это недопустимо, и даёт рекомендации по исправлению недостатков.

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

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

А если от публичного API напрямую зависит доход компании, то ставки по-настоящему высоки. Эта мысль подробнее раскрыта в книге «Непрерывное развитие API. Правильные решения в изменчивом технологическом ландшафте» (Мехди Меджуи, Ронни Митра и др):
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Views 6.2K
Comments 1

Уютный VPS-сервер для маленьких проектов: как настроить

Маклауд corporate blog Configuring Linux *Server Administration *

Мне всегда хотелось иметь в сети личное пространство. Место, где все было бы устроено как мне удобно. Наилучшим решением мне виделся недорогой VPS, который я мог бы обустраивать в соответствии со своими потребностями. Долго я не мог подступиться к решению этой задачи, но как-то незаметно подобрался набор инструментов, который позволил организовать именно такую программную среду, как мне хотелось. 

Если вам тоже хочется создать в сети свое личное пространство, но вы не знаете, с чего начать, или вам просто интересны такие замечательные программные продукты как Docker, Portainer, Traefik – добро пожаловать под кат.

Введение


Признаться честно, я не очень люблю командную строку. То есть, мне нравится сама идея легкого минималистичного универсального интерфейса, практически не требующего ресурсов, но черное окно с мигающим курсором вызывает у меня фрустрацию и чувство беспомощности. И я даже знаю откуда это у меня. 
Читать дальше →
Total votes 54: ↑43 and ↓11 +32
Views 34K
Comments 31

Карманная книга по TypeScript. Часть 2. Типы на каждый день

Маклауд corporate blog Website development *TypeScript *Lifehacks for geeks
Translation

image


Мы продолжаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".

Другие части:



Обратите внимание: для большого удобства в изучении книга была оформлена в виде прогрессивного веб-приложения.


Примитивы: string, number и boolean


В JS часто используется 3 примитива: string, number и boolean. Каждый из них имеет соответствующий тип в TS:


  • string представляет строковые значения, например, 'Hello World'
  • number предназначен для чисел, например, 42. JS не различает целые числа и числа с плавающей точкой (или запятой), поэтому не существует таких типов, как int или float — только number
  • boolean — предназначен для двух значений: true и false

Обратите внимание: типы String, Number и Boolean (начинающиеся с большой буквы) являются легальными и ссылаются на специальные встроенные типы, которые, однако, редко используются в коде. Для типов всегда следует использовать string, number или boolean.

Читать дальше →
Total votes 35: ↑30 and ↓5 +25
Views 23K
Comments 1

Карманная книга по TypeScript. Часть 1. Основы

Маклауд corporate blog Website development *TypeScript *Lifehacks for geeks
Translation

Обратите внимание: для большого удобства в изучении книга была оформлена в виде прогрессивного веб-приложения.



С сегодняшнего дня мы начинаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".


Каждое значение в JavaScript при выполнении над ним каких-либо операций ведет себя определенным образом. Это может звучать несколько абстрактно, но, в качестве примера, попробуем выполнить некоторые операции над переменной message:


// Получаем доступ к свойству `toLowerCase`

// и вызываем его

message.toLowerCase()

// Вызываем `message`

message()

На первой строке мы получаем доступ к свойству toLowerCase и вызываем его. На второй строке мы пытаемся вызвать message.


Предположим, что мы не знаем, какое значение имеет message — обычное дело — поэтому мы не можем с уверенностью сказать, какой результат получим в результате выполнения этого кода.


  • Является ли переменная message вызываемой?
  • Имеет ли она свойство toLowerCase?
  • Если имеет, является ли toLowerCase вызываемым?
  • Если оба этих значения являются вызываемыми, то что они возвращают?

Ответы на эти вопросы, как правило, хранятся в нашей памяти, поэтому остается только надеяться, что мы все помним правильно.

Читать дальше →
Total votes 35: ↑30 and ↓5 +25
Views 42K
Comments 18

Чем опасен космический мусор и как его уничтожают

Маклауд corporate blog Reading room Popular science Astronautics

По разным оценкам, количество космического мусора на орбите Земли варьируется от 220 до 300 тысяч объектов. При этом, объекты, размером в поперечнике более 1 см, составляют от 20 до 33% (от 60 тыс. до 100 тыс) всего космического мусора. Только представьте, какой эффект может оказать «астрономическая пуля» на пролетающий мимо космический корабль. Конечно, в масштабах нашей орбиты это кажется несущественным, но по мнению ученых, после 2055, в результате взаимного саморазрушения уже имеющегося на орбите мусора, проблема космического мусора станет серьезным препятствием для дальнейшего освоения космоса. Теперь подробнее об этом и других возможных последствиях.

Суть проблемы


Угроза физического столкновения


Собственно, самая очевидная угроза, исходящая от космического мусора, — это угроза физического столкновения. На текущем уровне развития технологий не существует какого-либо способа защитить космические аппараты от небольшого объекта, размером с пулю, движущегося со скоростью 10 км/с. Ну а про защиту от более крупных объектов и заикаться не приходиться, хотя на орбите их существенно меньше. Помимо угрозы повреждения и уничтожения объектов, стартующих с Земли, на орбите находится огромное количество различных спутников, необходимые для работы разных служб. GPS, метеорология, да куча всего в общем. Уничтожение одного из них не сделает всю систему нежизнеспособной, но в условиях увеличения количества мусора в будущем это может серьёзно повлиять на работоспособность этих систем. Помимо прогнозов на будущее, в настоящем и прошлом есть примеры столкновения космических аппаратов с мусором:
Читать дальше →
Total votes 31: ↑25 and ↓6 +19
Views 11K
Comments 7

Найти и не обезвредить: пишем пентесты с Kali Linux

Маклауд corporate blog Configuring Linux *Information Security *
Translation

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




Шило в мешке не утаить: по неведению (правда, в некоторых случаях — умышленно) даже крупные корпорации оставляют дыры в своей системе безопасности. Жизненно важно как можно быстрее (1) локализовать их и (2) пофиксить. К счастью, существует множество различных продуктов, которые помогают с первым пунктом. Среди них можно выделить Kali, дистрибутив Linux, разработанный для тестирования систем безопасности. В этой статье я расскажу, как использовать Kali Linux для исследования вашей системы и поиска слабых мест, имитируя атаку злоумышленника.

Дистрибутив Kali включает множество инструментов, каждый из которых имеет открытый исходный код. Достаточно запустить установку дистрибутива и все эти инструменты будут доступны из коробки.
Читать дальше →
Total votes 26: ↑19 and ↓7 +12
Views 13K
Comments 3

Наиболее полное руководство по практическому использованию Web Speech API

Маклауд corporate blog Website development *JavaScript *API *

В этой статье я хочу поделиться с вами результатами изучения основных возможностей Web Speech API (далее — WSA).


Введение


WSA — это экспериментальная технология, состоящая из двух интерфейсов: SpeechSynthesis (интерфейс для перевода текста в речь) и SpeechRecognition (интерфейс для распознавания речи).


О том, что из себя представляют названные интерфейсы и что в себя включают можно почитать на MDN или в рабочем черновике (данный черновик, в отличие от большинства спецификаций, написан более-менее человеческим языком).


Что касается поддержки, то вот что об этом говорит Can I use:



Total votes 24: ↑22 and ↓2 +20
Views 8.8K
Comments 1

Как использовать GraphQL Federation для инкрементальной миграции с монолита (Python) на микросервисы (Go)  

Маклауд corporate blog Python *Programming *Google App Engine *
Translation
Или как поменять фундамент старого дома, чтобы он не обвалился



Лет 10 назад мы выбрали 2-ю версию Python для разработки нашей обучающей платформы с монолитной архитектурой. Но с тех пор индустрия существенно изменилась. Python 2 был официально похоронен 1 января 2020 года. В предыдущей статье мы объясняли, почему решили отказаться от миграции на Python 3. 

Каждый месяц нашей платформой пользуются миллионы людей. 

Мы пошли на определённый риск, когда решили переписать наш бэкенд на Go и изменить архитектуру. 

Язык Go мы выбрали по нескольким причинам:

  1.  Высокая скорость компиляции.
  2. Экономия оперативной памяти.
  3. Достаточно широкий выбор IDE с поддержкой Go.

Но мы применили подход, который позволил минимизировать риск.
Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Views 6.4K
Comments 6

Языки «Властелина колец»: как язык создал целую вселенную

Маклауд corporate blog Reading room


Рождение Средиземья


21 сентября 1937 года в Англии вышла небольшая книжка, озаглавленная просто – «Хоббит», автором числился мало известный за пределами научного мира Дж. Р. Р. Толкин. Читатели приняли текст хорошо, но никто не понял, чем все это грозит миру.

Толкиновский бум грянул через два с лишним десятилетия.

Эпопея «Властелин колец» вышла в 1954/55-м, американское издание, после которого началось безумие с лозунгами «Гендальфа в президенты», появилось еще через шесть лет. Потом книгу и автора узнали во всех концах мира, помимо ученого-лингвиста он стал популярным писателем.

Сейчас «Властелин колец» – самая известная фэнтезийная сага, даже далекий от фантастики человек знает, что народы Средиземья говорят на разных языках и что языки эти обладают словарем, грамматикой и письменностью.

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

Толкин говорил, что его книги написаны лишь для того, чтобы у придуманных им языков был дом. Что не увлекайся он с детства созданием конлангов (от английского constructed language – сконструированный или искусственный язык), то мы бы не получили ни «Хоббита», ни тем более «Властелина колец».
Total votes 48: ↑46 and ↓2 +44
Views 18K
Comments 38

5 приемов по разделению «бандла» и «ленивой» загрузке компонентов в React

Маклауд corporate blog Website development *JavaScript *ReactJS *
Translation

image


Разделение Javascript-кода на несколько файлов называется разделением «бандла» или сборки (bundle splitting). Это позволяет загружать только тот код, который который используется приложением в данный момент, другие части загружаются по необходимости (по запросу пользователя).


Распространенные случаи разделения сборки и «ленивой» или отложенной загрузки (lazy loading) включают в себя следующее:


  • Загрузка дополнительного кода при переходе пользователя к новому представлению (view — слой, отвечающий за визуальное отображение)


  • Загрузка такого кода может быть связана с определенным действием, таким как прокрутка или нажатие кнопки


  • Также можно реализовать предварительную загрузку определенных ресурсов, которые представляют потенциальный интерес для пользователя


  • Это приводит к тому, что когда пользователь захочет получить доступ к определенной функциональности, она уже будет готова

Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Views 8.6K
Comments 0

Information

Rating
Does not participate
Registered
Activity