Pull to refresh
3
0

Веб

Send message

Опенсорсный чип OpenTitan заменит проприетарные корни доверия Intel и ARM

Reading time6 min
Reach and readers14K


Некоммерческая организация lowRISC при участии Google и других спонсоров 5 ноября 2019 года представила проект OpenTitan, который называет «первым опенсорсным проектом по созданию открытой, качественной архитектуры микросхем с корнем доверия (RoT) на аппаратном уровне».

OpenTitan на архитектуре RISC-V — микросхема специального назначения для установки на серверах в дата-центрах и в любом другом оборудовании, где нужно обеспечить аутентичность загрузки, защитить прошивку от изменений и исключить вероятность руткитов: это материнские платы, сетевые карты, маршрутизаторы, устройства IoT, мобильные гаджеты и др.

Конечно, подобные модули есть в современных процессорах. Например, аппаратный модуль Intel Boot Guard является корнем доверия в процессорах Intel. Он по цепочке доверия верифицирует подлинность UEFI BIOS перед загрузкой ОС. Но вопрос, насколько мы можем доверять проприетарным корням доверия с учётом того, что у нас нет гарантий отсутствия багов в дизайне, а проверить его нет возможности? См. статью «Доверенная загрузка Шрёдингера. Intel Boot Guard» с описанием того, «как годами клонируемая ошибка на производстве нескольких вендоров позволяет потенциальному злоумышленнику использовать эту технологию для создания в системе неудаляемого (даже программатором) скрытого руткита».
Читать дальше →

«Шакал»: сжимаем фронтенд

Reading time5 min
Reach and readers23K
Привет! Я — Ваня, лид платформенной команды в Тинькофф Бизнес.

Мое любимое занятие — открывать вкладку DevTools и проверять, сколько весят артефакты сайта. В этой статье расскажу, как мы сократили вес приложения на 30% силами платформенной фронтенд-команды за один день без изменения кода сайта. Никаких хитростей и регистраций — только nginx, docker и node.js (опционально).


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

Современная загрузка скриптов

Reading time7 min
Reach and readers14K
Передать нужный код для каждого браузера – непростая задача.

В этой статье рассмотрим несколько вариантов, как эту задачу можно решить.



Передача современного кода современным браузером может очень сильно повысить производительность. Ваши JavaScript-пакеты смогут содержать более компактный или оптимизированный современный синтаксис и поддерживать старые браузеры.

Среди инструментов для разработчиков доминирует паттерн module/nomodule декларативной загрузки современного или legacy-кода, который предоставляет браузерам источники и позволяет решать, какие из них использовать:

<script type="module" src="/modern.js"></script>  
<script nomodule src="/legacy.js"></script> 

К сожалению, не всё так просто. Показанный выше подход на основе HTML инициирует перезагрузку скриптов в Edge и Safari.
Читать дальше →

Улучшите свой CSS с помощью этих 5 принципов

Reading time5 min
Reach and readers19K


Написание CSS — процесс достаточно простой и понятный, тогда почему для этого требуются еще какие-то принципы и best-practices?

По мере увеличения масштабов проекта и количества людей, работающего над ним, всё более и более явно начинают проявляться новые сложности, которые могут вызвать серьезные проблемы в будущем. Дублирование кода, сложные цепочки переопределения свойств, использование !important, оставшиеся и неиспользуемые CSS-свойства от удаленных HTML-элементов и так далее. Такой код сложнее читать и исправлять.

Написание CSS на профессиональном уровне сделает код более поддерживаемым, расширяемым, понятным и чистым. Давайте рассмотрим 5 простых и очень эффективным принципов, которые выведут ваш CSS на новый уровень
Читать дальше →

Мифы о доступности цветового контраста

Reading time9 min
Reach and readers19K
В сегодняшнее время растёт потребность дизайнеров в том, чтобы сделать интерфейсы доступными абсолютно для всех пользователей. Естественно, очень важно приспособить пользователей с ограниченными возможностями к пользованию такими интерфейсами, но в то же время рождается достаточно мифов касательно основ доступности цветового контраста и эти мифы увековечиваются дезинформированными людьми. Они часто повторяют и ретранслируют эти мифы, чтобы дискредитировать дизайн, не понимая, в каких ситуациях применяется тот или иной стандарт цветового контраста. Кроме того, они предполагают, что интерфейс является недоступным, когда для передачи информации используется цветовой контраст.

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


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

Часть вторая. Как проходить code review по версии Google

Reading time3 min
Reach and readers29K
Возможно вы читали первую часть статьи про код ревью со стороны ревьювера (кстати, мы уже успели ее обсудить в последнем выпуске подкаста "Цинковый прод").

Так как статья набрала много лайков, пишу обещанное продолжение про код ревью с другой стороны — со стороны автора изменений кода

Как обычно, будем говорить MR (Merge Request) вместо CL, потому что термин CL мало кто понимает.


Оригинал инструкции для авторов MR по версии Google можно посмотреть здесь, а я дам краткую выжимку.


Итак, поехали

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

Принципы документирования и локализации, или как получить хорошую локализацию минимальными затратами

Reading time14 min
Reach and readers4.6K
Всем привет!

Меня зовут Денисов Александр. Я работаю в компании Naumen и отвечаю за документирование и локализацию программного продукта Naumen Contact Center (NCC).

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

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

Введение в Git

Reading time17 min
Reach and readers170K

Как не нужно составлять согласие на обработку персональных данных

Reading time5 min
Reach and readers73K
И какие согласия не стоит подписывать.



Доброго времени суток, Хабр!

Эта статья родилась совершенно спонтанно из такой вот истории.

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

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

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

Лошадь сдохла – слезь: переход с tslint на eslint

Reading time7 min
Reach and readers43K
До недавнего времени во всех проектах фронта разработчики Dodo Pizza Engineering использовали tslint – полезный инструмент, который подсказывает, когда ты накосячил в коде допустил неточность, помогает поддерживать код в одном стиле и сам исправляет многие замечания. Но тут tslint взял и умер. Под катом я расскажу, почему так вышло, как перестать лить слёзы по умершему и перейти на инструмент eslint, а также покажу кое-что очень интимное.


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

Как проводить Code Review по версии Google

Reading time5 min
Reach and readers142K
Вопросы код-ревью меня интересуют очень давно. Много раз возникали те или иные проблемы то с качеством кода, то с климатом в коллективе. И действительно, code review — это если не единственное, то одно из самых главных мест для возникновения конфликтов в коллективе разработчиков.

И вот недавно при подготовке к очередному выпуску подкаста "Цинковый прод" я узнаю, что Google опубликовал свод правил по проведению Code Review, битком набитый ценными мыслями. Весь материал довольно объемный и не влезет в одну статью, поэтому я постараюсь выделить наиболее интересные (мне) мысли.


Итак, поехали

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

React + IndexDb + автообновление = почти AsyncRedux

Reading time18 min
Reach and readers12K
В данной заметке по шагам расскажу как приготовить IndexDB (база данных, которая встроена в любой современный браузер) для использования в проектах, написанных на ReactJS. В результате Вы сможете использовать данные из IndexDB так же удобно, как если бы они находились в Redux Store вашего приложения.

IndexDB — это документоориентированная СУБД, удобное средство для временного хранения относительно небольшого объёма (единицы и десятки мегабайт) структуированных данных на стороне браузера. К стандартной задаче, для которых мне приходится использовать IndexDB относится кэширование данных бизнес-справочников на стороне клиента (названия стран, городов, валют по коду и прочее). Скопировав их на сторону клиента потом можно лишь изредка загружать с сервера обновления этих справочников (либо целиком — они же небольшие) и не делать это при каждом открытии окна браузера.
Читать дальше →

Использование законов гештальт-психологии в дизайне пользовательского интерфейса

Reading time3 min
Reach and readers18K
Гештальт — это немецкое слово, означающее понятие «форма». Гештальтпсихология была основана немецкими психологами Максом Вертхаймером, Вольфгангом Колером и Куртом Коффкой и ориентирована на то, как люди интерпретируют мир. Вертхаймер, Колер и Коффка установили несколько фундаментальных принципов, также известных как «законы организации восприятия». Эти Принципы описывают то, как мы воспринимаем мир.

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


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

Метрики производительности для исследования невероятно быстрых веб-приложений

Reading time10 min
Reach and readers13K
Есть одно высказывание: «Что ты не можешь измерить, то ты не можешь улучшить». Автор статьи, перевод которой мы сегодня публикуем, работает в компании Superhuman. Он говорит, что эта компания занимается разработкой самого быстрого в мире почтового клиента. Здесь речь пойдёт о том, что такое «быстро», и о том, как создавать инструменты для измерения производительности невероятно быстрых веб-приложений.


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

Как запускается сервер

Reading time9 min
Reach and readers77K

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

Заметки верстальщика: Полезные расширения Google Chrome в 2019 году

Reading time4 min
Reach and readers55K

В моем браузере установлено около 30 расширений, которые упрощают жизнь и работу в интернете. В этой статье я хочу поделиться 10 актуальными расширениями Google Chrome для верстальщика, которые постоянно использую при разработке сайтов.

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

[Не] используйте CDN

Reading time10 min
Reach and readers24K
Практически в любой статье или инструменте для оптимизации скорости сайтов есть скромный пункт «используйте CDN». Вообще, CDN – это content delivery network или сеть доставки контента. Мы в компании «Метод Лаб» часто встречаемся с вопросами клиентов по этой теме, некоторые самостоятельно включают себе CDN. Цель этой статьи разобраться, что может дать CDN с точки зрения скорости загрузки сайта, какие проблемы могут возникать и в каких случаях использование CDN оправдано.

image

Обведённые на картинке задержки вызваны использованием CDN.
Читать дальше →

40 лучших инструментов и ресурсов Laravel

Reading time16 min
Reach and readers33K
image
Привет, Хабр! Представляю вашему вниманию подборку, которая является переводом моей оригинальной статьи.

Если есть идеи что добавить в подборку — буду рад пообщаться в комментах. Наслаждайтесь!
Читать дальше →

Оптимизация загрузки JavaScript-кода в Wikipedia

Reading time5 min
Reach and readers7.7K
Автор материала, перевод которого мы сегодня публикуем, говорит, что он, в середине сентября 2019, наконец-то завершил проект, которым занимался уже год. Целью этого проекта было сокращение размеров манифеста, необходимого для инициализации асинхронного JavaScript-конвейера Wikipedia. А именно, размер манифеста составлял 36 Кб. Его нужно было уместить в менее чем 28 Кб, что соответствует двум 14-килобайтным фрагментам последовательности интернет-пакетов.

Результатом этого проекта стала ежедневная экономия 4.3 терабайт трафика.


Сначала размер манифеста превышал 36 Кб, а после оптимизации его размер стал меньше 28 Кб

На графике показано постепенное уменьшение размеров манифеста. Речь идёт о сжатых данных (то есть это — чистая нагрузка на сеть, которую создаёт передача этих данных с сервера в браузер).
Читать дальше →

Время высокой точности: как работать с долями секунды в MySQL и PHP

Reading time16 min
Reach and readers20K


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


В этой статье я расскажу про способы использования времени с дробными частями секунды в MySQL и PHP. Она задумывалась как туториал, поэтому материал рассчитан на широкий круг читателей и местами повторяет документацию. Основную ценность должно представлять то, что я собрал в одном тексте всё, что нужно знать для работы с таким временем в MySQL, PHP и фреймворке Yii, а также добавил описания неочевидных проблем, с которыми можно столкнуться.


Я буду использовать термин «время высокой точности». В документации MySQL вы увидите термин “fractional seconds”, но его дословный перевод звучит странно, а другого устоявшегося перевода я не нашёл.

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity