Pull to refresh
-19
@dkameleonread⁠-⁠only

User

Send message

Белый Куб на страже чистоты воздуха, часть 1

Reading time14 min
Views134K
Устройство для мониторинга параметров домашней среды с передачей данных по Wi-Fi.

image

В статье описывается устройство для измерения, индикации на встроенном дисплее и передачи в сеть по Wi-Fi параметров окружающей среды:

• уровень СО2 (углекислый газ)
• уровень СО (угарный газ)
• содержание паров этилового спирта (С2Н5ОН)
• уровень горючих газов (LPG)
• уровень аммиака (NH3)
• содержание водорода(H2)
• значения атмосферного давления
• влажности и температуры воздуха
• уровня освещенности
• уровня магнитного поля по трем осям
• уровня гравитации по трем осям
• уровня ускорений по трем осям
• температуры произвольного количества цифровых датчиков температуры типа DS18B20.
Читать дальше →
Total votes 93: ↑87 and ↓6+81
Comments134

Компактный монитор домашнего воздуха (CO2, температура, влажность, давление) с Wi-Fi и мобильным интерфейсом

Reading time10 min
Views79K

image


Про измерение CO2 и его важность на Geektimes было уже немало публикаций (ссылки в конце статьи). Здесь же хочу описать проект компактного монитора уровня CO2, а также температуры, влажности и давления с Wi-Fi, обновлением прошивки по воздуху и интерфейсом в мобильном приложении. Сердца системы модуль на базе esp8266, сенсор CO2 MH-Z19 и фреймворк esp8266-arduino. И так, включим устройство в USB-розетку:

Читать дальше →
Total votes 78: ↑78 and ↓0+78
Comments144

PR для стартапа: какие сайты обязательно должны написать про вашу компанию

Reading time4 min
Views10K
Известный маркетолог Эндрю Чен в одном из эссе писал, что есть всего несколько каналов для масштабирования роста аудитории:

  • Платный трафик
  • Прямые продажи
  • Виральность
  • SEO


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

Чтобы поисковики поняли, что ваш сайт хороший и на него стоит отправлять посетителей, вам нужен качественный продукт и много хороших ссылок с других сайтов. Времена покупных ссылок постепенно уходят, линкбилдинг становится намного более трудоемким занятием, тесно срастается с PR, каждая ссылка требует творческого подхода.
Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments8

33 способа ускорить ваш фронтенд в 2017 году

Reading time20 min
Views85K

enter image description here


Вы уже используете прогрессивную загрузку? А как насчёт технологий Tree Shaking и разбиения кода в React и Angular? Вы настроили сжатие Brotli или Zopfli, OCSP stapling и HPACK-сжатие? А как у вас обстоят дела с оптимизацией ресурсов и клиентской части, со вложенностью CSS? Не говоря уже о IPv6, HTTP/2 и сервис-воркерах.

Читать дальше →
Total votes 87: ↑84 and ↓3+81
Comments39

Полезные устройства для дома: WiFi-розетка своими руками

Reading time3 min
Views36K

Привет Geektimes! В статье хочу представить инструкцию по созданию WiFi-розетки.


Началось всё с того, что осенью наткнулся на WiFi-розетки в магазинах, подумал, что вроде ничего сложного, потом ознакомился с ESP8266 и понял, что готов сделать розетку сам.


Розетка будет состоять из:


  • Корпус;
  • ESP8266 12E с платой развязки питания;
  • Питание для ESP8266 от 220 Вольт;
  • Плата контроля 220 Вольт;
  • Контрольная панель (кнопка, led, порт RJ45 для прошивки).

Прототип:


Читать дальше →
Total votes 32: ↑22 and ↓10+12
Comments86

Улучшения Chrome и Firefox ускорили перезагрузку страниц на 28-50%

Reading time4 min
Views16K

Традиционная модель валидации ресурсов

Разработчики из Google вчера объявили о результатах совместного с Facebook и Mozilla проекта оптимизации браузера по образцу Firefox. После оптимизации значительно ускорилась повторная загрузка страниц в мобильной и десктопной версиях Chrome. По данным Google, в последней версии Chrome перезагрузка страниц ускоряется в среднем на 28%.

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

Пришло время улучшить браузеры и сайты.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments34

Чек-лист вёрстки

Reading time7 min
Views81K

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

Читать дальше →
Total votes 92: ↑87 and ↓5+82
Comments47

А ваша служба является RESTful? Все что необходимо/обязательно знать про веб службы и REST

Reading time18 min
Views147K

Введение


Вот не люблю я изобретать велосипед и статью я бы эту не написал, но пришлось. Про REST сказано уже довольно много. Многие поставщики веб служб готовы клясться, что их службы являются RESTful. Во время собеседования вы точно услышите хотя бы несколько вопросов про REST, независимо от того это собеседования для бэкенд, мобайл или фронтенд разработчика. Я вот помню как-то во время одного собеседования меня задали такой вопрос: «Вот вы написали в своем резюме, что знайте REST․ Ответьте пожалуйста, какой HTTP код вы получите, если при запросе к RESTful сервису ресурс не найден?». Ответ 404 был принят единогласно. Если честно, я так и не понял, как этот вопрос помог понять знаю ли я REST или нет, но одно могу уверенно сказать: REST понимают далеко не все. Вот некоторые вопросы, которые мучали меня долгое время:

  1. Зачем REST стал таким трендовым? Это архитектура была же предложена еще в 2000 году?
  2. Что я получу если моя служба будет RESTful?
  3. Как определить является ли служба RESTful или нет?
  4. Как правильно должны создаваться URL REST служб?
  5. Какие http методы и коды должны быть использованы в RESTful службе?

Если вы не можете дать исчерпывающего ответа хотя бы на один из этих вопросов, то продолжайте чтение. Если вы можете однозначно ответить на все эти вопросы, можете привести формат правильного URL, считайте, что GET, POST, PUT, DELETE обязательно должны соответствовать CRUD операциям с ресурсами, то вам обязательно надо продолжать чтение.
Читать дальше →
Total votes 43: ↑37 and ↓6+31
Comments125

AngularJS vs Angular 2: ключевые различия

Reading time6 min
Views85K
Мы в команде Web Development компании Itransition уже имеем хороший опыт разработки на Angular 2 и хотим им поделиться.

Эта статья ориентирована на тех крутых ребят, которые разрабатывают на Angular и подумывают перейти на вторую его версию.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments80

Чистый javascript. Объекты и структуры данных. Асинхронность. Обработка ошибок

Reading time4 min
Views22K
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments10

PKI (Public Key Infrastructure) с помощью JavaScript? Теперь это возможно с помощью библиотек PKIjs и ASN1js

Reading time5 min
Views12K
Представляю вашему вниманию две библиотеки, реализующие практически полный спектр требуемого функционала для организации инфраструктуры PKI: PKIjs и вспомогательную библиотеку ASN1js. Библиотеки свободны доступны и распространяются по лицензии, позволяющей использовать их код без особых ограничений, даже в коммерческих продуктах. Полный код данных библиотек доступен на GitHub: PKIjs + ASN1js.

Дабы привлечь читателей прямо во введении приведу краткий список особенностей вышеупомянутых библиотек:
  1. Объектно-ориентированный код;
  2. Работа с HTML5 (ArrayBuffer, Promises, WebCrypto (используется «dev nightly build» Google Chrome));
  3. Возможность создавать, проверять, получать внутренние данные, изменять данные для следующих объектов:
    1. Сертификаты X.509
    2. Списки отзыва (CRL) X.509
    3. Запросы на сертификат (PKCS#10)
    4. OCSP запросы;
    5. Ответы OCSP сервера
    6. Time-stamping (TSP) запросы
    7. Ответы TSP сервера
    8. CMS Signed Data
    9. CMS Enveloped Data

  4. Реализация собственной «certificate chain validation engine» на JavaScript;
  5. … И многое другое! Смотрите под катом!


Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments18

Bitcoin in a nutshell — Cryptography

Reading time12 min
Views117K
Одна из причин, почему Bitcoin продолжает привлекать столько внимания — это его исключительная «математичность». Сатоши Накамото удалось создать систему, которая способна функционировать при полном отсутствии доверия между ее участниками. Все взаимодействия основаны на строгой математике, никакого человеческого фактора — вот в чем была революционность идеи, а не в одноранговой сети, как многие думают. Поэтому первую главу я решил посвятить именно математическим основам Bitcoin.

Ниже я постараюсь объяснить вам самые базовые вещи — эллиптические кривые, ECC, приватные / публичные ключи и так далее. По возможности я буду иллюстрировать свои слова примерами кода, преимущественно на Python 2.7, если что-то непонятно — спрашивайте в комментариях.

intro
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments10

Чистый javascript.Классы

Reading time8 min
Views38K
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments7

Неконтролируемые компоненты в React

Reading time2 min
Views18K

React. Продвинутые руководства. Часть Четвертая


Продолжение серии переводов раздела "Продвинутые руководства" (Advanced Guides) официальной документации библиотеки React.js.


Неконтролируемые компоненты в React


В большинстве случаев, мы рекомендуем использовать контролируемые компоненты для реализации форм. В контролируемом компоненте, данные формы обрабатываются компонентом React. Есть альтернативный вариант — это неконтролируемые компоненты, в которых данные формы обрабатываются самим DOM.

Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments0

Оптимизация производительности в React

Reading time8 min
Views27K

React. Продвинутые руководства. Часть Пятая


Продолжение серии переводов раздела "Продвинутые руководства" (Advanced Guides) официальной документации библиотеки React.js.


Оптимизация производительности в React


Внутренне, React использует несколько продвинутых техник, сводящих к минимуму количество дорогостоящих операций DOM, необходимых для обновления пользовательского интерфейса. Для большинства приложений, использующих React, быстродействие получаемого интерфейса достаточно без дополнительных действий для оптимизации производительности. Тем не менее, есть несколько способов, с помощью которых вы можете ускорить ваше приложение React.


Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments7

Ref-атрибуты и DOM в React

Reading time4 min
Views88K

React. Продвинутые руководства. Часть Третья


Продолжение серии переводов раздела "Продвинутые руководства" (Advanced Guides) официальной документации библиотеки React.js.


Ref-атрибуты и DOM в React


В типовом потоке данных React, свойства (props) — это единственный способ, с помощью которого родители взаимодействуют со своими потомками. Для модификации потомка, вам необходимо заново отобразить (произвести ререндеринг) его с новыми свойствами. Однако, в некоторых случаях, вам понадобится модифицировать потомка непосредственно, вне основного потока. Изменение потомка возможно в случаях если он является экземпляром компонента React или элементом DOM. Для обоих этих случаев React имеет особый способ изменения.

Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments24

Фишинг через автозаполнение в Chrome (демо)

Reading time15 min
Views35K

Давно известно, что функция автозаполнения в браузере — отличный вектор атаки. Браузер с легкостью отдает любому желающему сохраненную информацию для заполнения в форм, даже если этих форм не видно. А среди сохраненной информации в профиле автозаполнения могут быть и конфиденциальные данные. Например, домашний адрес пользователя или даже данные банковской карточки. Человек не всегда хочет делиться такой информацией, вводя просто адрес электронной почты в каком-нибудь списке рассылки. А придется поделиться, если у него браузер Chrome (в Firefox фичу обещают реализовать в ближайшее время, но пока не работает).
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments17

Lebab это как Babel, только наоборот

Reading time1 min
Views13K
Все мы любим вкусности, которые получили с ЕS6. Это были крохотные, но удивительные возможности, такие как поддержка классов, стрелочные функции, константы и т.д.

Современные браузеры поддерживают большинство этих синтаксических улучшений, однако для поддержки устаревших браузеров приходится использовать Babel. Хотя бывают ситуации, когда можно не волноваться о поддержке старых браузеров и начать жить.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments15

Замена delay() для неблокирующих задержек в Arduino IDE

Reading time3 min
Views55K
Первое, с чем сталкивается осваивающий Arduino новичок, это неприятное свойство функции delay() — блокирование выполнения программы. Множество примеров в интернете используют эту функцию, но практическое применение как-то намекает, что лучше без неё обойтись.

Как и положено начинающему, я изобрёл велосипед сделал свою реализацию неблокирующей задержки. Задача стояла так:

  • Обеспечить псевдомногозадачность, чтобы разные события происходили в своё время, со своими интервалами и не блокировали друг-друга.
  • Было удобно этим пользоваться.
  • Можно было оформить как библиотеку и легко включать в другие проекты без копипастов.

Подсмотрев, что большинство ардуинских библиотек сделаны с применением ООП, я тоже решил не выделываться и написал класс SmartDelay, который можно получить с гитхаба как zip для добавления в Arduino IDE или сделать git clone в ~/Arduino/libraries/

В результате получилось вот такое.
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments48

Information

Rating
Does not participate
Registered
Activity