Как стать автором
Обновить
32
0

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

Отправить сообщение

Введение в WSGI-серверы: Часть первая

Время на прочтение5 мин
Количество просмотров138K
Данная статья является переводом статьи Кевина Голдберга «An Introduction to Python WSGI Servers: Part 1» blog.appdynamics.com/engineering/an-introduction-to-python-wsgi-servers-part-1 с небольшими дополнениями от переводчика

image

Краткая история серверов WSGI Python


WSGI-серверы появились потому, что веб-серверы в то время не умели взаимодействовать с приложениями, написанными на языке Python. WSGI (произносится как «whiz-gee» с твердым «g») был разработан Филиппом Дж. Эби (вместе с Ян Бикинг и др.) В начале 2000-х годов. Модуль Apache, известный как mod_python, разработанный Григорием Трубецким в конце 90-х годов, на тот момент обрабатывал большую часть Python-приложений. Однако mod_python не был официальной спецификацией. Он был просто создан, чтобы разработчики могли запускать код Python на сервере. К сожалению, такой подход был небезопасным и разработчики начали искать новое решение.

WSGI(Web-Server Gateway Interface) является потомком CGI(Common Gateway Interface). Когда веб начал развиваться, CGI разрастался из-за поддержки огромного количества языков и из-за отсутствия других решений. Однако, такое решение было медленным и ограниченным. WSGI был разработан как интерфейс для маршрутизации запросов от веб-серверов(Apache, Nginx и т.д.) на веб-приложения.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии7

Что умеет Dialogflow?

Время на прочтение11 мин
Количество просмотров36K


26 ноября в Москве прошла третья в своей истории Conversations – конференция по разговорному искусственному интеллекту для разработчиков и бизнеса, на которой был представлен новый доклад компании «Аэроклуб ИТ». В прошлый раз речь шла об одном из наших исследовательских проектов, теперь же рассказ был сосредоточен вокруг инструмента, который мы применяем для чат-ботов. Сперва я планировал просто написать статью по мотивам доклада, но получился целый tutorial, так что под катом вас ждёт довольно подробное описание некоторых возможностей Dialogflow, и даже попадутся неочевидные «хаки».
Читать дальше →
Всего голосов 8: ↑7 и ↓1+11
Комментарии1

Обучение детей программированию

Время на прочтение6 мин
Количество просмотров17K

Здравствуйте. Меня зовут Михаил Капелько. Занимаюсь профессиональной разработкой ПО более 10 лет. Из них последние годы связаны с iOS. В свободное время разрабатываю игры и средства для их создания.


Обзор


Сегодня хочу рассказать о своём опыте обучения детей программированию, в частности мы рассмотрим:


  • организацию процесса обучения
  • программу обучения
  • игру на память
  • инструмент программирования
  • уроки
  • результаты и планы
Всего голосов 28: ↑25 и ↓3+22
Комментарии32

Используем Web Bluetooth API для подключения пульсометра и разрабатываем приложение используя Vue.js

Время на прочтение12 мин
Количество просмотров25K

Продолжаем обсуждать темы затронутые на You Gonna Love Frontend конференции. Эта статья вдохновлённая докладом Michaela Lehr. Видео с конференции будут доступны уже на этой недели, пока есть слайды. (Видео уже доступно)


Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии2

BLE стек от TI. Разработка пользовательских приложений

Время на прочтение5 мин
Количество просмотров39K
Привет, Хабр!

После написания предыдущего материала про BLE розетку я познакомился со многими
людьми, которыми интересна тема использования BLE в собственных разработках, но есть определенные
сложности в использовании С-программирования с BLE стеком для СС2541. Использование
внутреннего контроллера дает много преимуществ, в частности: прошивка по воздуху, экономия
на внешнем контроллере, сокращение числа точек пайки…
Я решил разбить материал на две части. Первая – это подготовка к работе, программирование и
отладка. Вторая – создание собственного BLE профиля.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии8

Хакаем CAN шину авто. Мобильное приложение вместо панели приборов

Время на прочтение7 мин
Количество просмотров113K

Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.

По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.

Как телефон взаимодействует с автомобилем
Всего голосов 109: ↑109 и ↓0+109
Комментарии123

6 самых распространённых ошибок разработчиков при написании HTML и CSS

Время на прочтение3 мин
Количество просмотров20K
Привет, Хабр! Представляю вашему вниманию перевод статьи «The 6 most common mistakes developers when writing HTML and CSS» автора Stas Melnikov.

Использование атрибута placeholder вместо элемента label


Часто разработчики используют атрибут placeholder вместо элемента label. Но в этом случае пользователи скринридера (программы чтения с экрана) не могут заполнять поля, потому что скринридер не может прочитать текст из атрибута placeholder.

<input type="email" placeholder="Enter your email">

Поэтому я рекомендую использовать элемент label для поля имени и атрибут placeholder для примера данных, которые пользователь должен заполнить.

<label>
  <span>Enter your email</span>
  <input type="email" placeholder="e.g. example@gmail.com">
</label>

Использование элемента img для разметки декоративной графики


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

<a href="https://twitter.com" class="social">
  <img class="social__icon" src="twitter.svg" alt>
  <span class="social__name">Twitter</span>
</a>

Но иконка социальной сети — это декоративная иконка, которая помогает пользователям быстрее понять смысл элемента, не читая текст. Если мы удаляем значок, мы не теряем значение элемента, поэтому мы можем использовать для него свойство background-image.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+20
Комментарии13

Клуб анонимных Дедов Морозов 2019-2020 на Хабрахабре

Время на прочтение1 мин
Количество просмотров16K


Тихо и незаметно в 8-й раз начался очередной сезон Хабра-АДМ.

Успейте до 4 декабря оставить свой почтовый адрес и станьте частью новогоднего волшебства. В день Икс ЭВМ назначит вам адрес, по которому нужно выслать подарок. Точно также ваш адрес попадет кому-то другому, и наверняка вы тоже получите что-нибудь взамен.
Читать дальше →
Всего голосов 86: ↑82 и ↓4+78
Комментарии250

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g

Время на прочтение4 мин
Количество просмотров19K

Так случилось, что чуть меньше года назад, моя дочь заболела сахарным диабетом 1 типа (инсулинозависимый). После месяца использования «ручек», мы перешли на помпу Medtronic 640g с поддержкой НМГ. Под катом расскажу, как я делал мониторинг глюкозы, используя данные с помпы. Осторожно, траффик.
Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии51

Собираем по немножко от сервисов Google и Redmine на своем сервере

Время на прочтение4 мин
Количество просмотров19K
Последнее время во всех коллективах где мне доводилось работать я так или иначе продвигал систему управления проектами, так как без нее начинался полный бардак, который мне терпеть ни будучи исполнителем, ни будучи руководителем мне не хотелось. Основным кандидатом для наведения порядка почти всегда становился Redmine, но чем дольше я им пользовался (как со стороны пользователя, так и со стороны администратора), тем больше хотелось перейти на что-то другое. Да, как багтрекер она работает замечательно, но как только хочешь получить что-то большее, например, хотя бы личные/общие календари — начинается возня. А если уж надо переехать на другой сервер… Даже и вспоминать не хочется — каждый раз какие-то «танцы».

В то же время я довольно плотно привязался к сервисам компании Google, таким как Docs, Calendar, Gmail… И если с последним более менее все понятно, то, например, аналог первого хотелось иметь локально: когда корпоративная почта не в Google Apps, который к тому же теперь всегда платный, пользоваться уже не так удобно, да и доступ к локальным ресурсам защищеннее и быстрее.

И тут после довольно активных поисков мне попадается Feng Office, который на хабре, к сожалению, почти обделен вниманием: упоминания встречаются лишь в нескольких вопросах и без особых подробностей. Подумалось — сделалось: под катом то что из этого получилось (включая пару десятков скриншотов, правда не очень тяжелых)
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии4

ioBroker — открытая система автоматизации (обзор)

Время на прочтение7 мин
Количество просмотров17K

(Статья восстановлена специально для блога ioBroker)


У многих, кто интересуется домашней автоматизацией ("Умный дом"), на слуху известные открытые системы автоматизации, на которых можно построить управление: OpenHab, MajorDoMo, Home Assistant, Domoticz, HomeBridge. Но если немного расширить диапазон наблюдения, то можно обнаружить множество программных систем, которые могут предложить схожий функционал, а местами даже больший. Сегодня, расскажу об одной из них — ioBroker. Расскажу обзорно, без погружения в подробности реализации, т.к. каждый элемент потребует отдельной статьи (если потребуется — будет статья).


Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

По вашему запросу найдено: реализация нечеткого поиска

Время на прочтение8 мин
Количество просмотров11K
Все мы совершаем ошибки: в данном случае речь идет о поисковых запросах. Количество сайтов для продажи товаров и услуг растет наряду с потребностями пользователей, однако не всегда они могут найти то, что ищут – только потому, что неправильно вводят название необходимого товара. Решение данной проблемы достигается путем реализации нечеткого поиска, то есть использования алгоритма поиска наиболее близких значений с учетом возможных ошибок или опечаток пользователя. Область применения такого поиска достаточно широка – нам же удалось поработать над поиском для крупного интернет-магазина в фудритейл-сегменте.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Парсинг сайтов-магазинов. Личный опыт и немного how-to

Время на прочтение3 мин
Количество просмотров190K
Разделим парсинг (скраппинг) сайтов на две подзадачи.
  1. Собственно сам парсинг – поиск данных, которые нам интересны на страницах.
  2. Осмысливание полученных данных.

Рассмотрим эти задачки подробнее
Всего голосов 59: ↑46 и ↓13+33
Комментарии70

Программируем проходной выключатель. MicroPython на esp8266 (sonoff) с OTA. Часть 1

Время на прочтение9 мин
Количество просмотров17K

Всем привет.


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


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

Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии22

Вышел обновлённый Raspberry Pi 3 Model B+

Время на прочтение1 мин
Количество просмотров65K
Сегодня линейка одного из самых популярных одноплатных компьютеров пополнилась обновленной моделью — Raspberry Pi 3 Model B+:

image

Изменения относительно Raspberry Pi 3 небольшие, самые значимые (на мой взгляд) выделил жирным:

— Обновленный SoC Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit @ 1.4GHz
— Встроенный Wi-Fi 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac
— Bluetooth 4.2, BLE
Gigabit Ethernet (снова через USB 2.0, обещают до 300 МБит/сек)
— Поддержка Power-over-Ethernet support (с помошью отдельного модуля PoE HAT)



Формфактор и цена (35$) остались прежними.

Источники: раз и два.

update: добавил опросы:
Всего голосов 29: ↑26 и ↓3+23
Комментарии72

Python для ребёнка: выбор самоучителя

Время на прочтение8 мин
Количество просмотров122K
Python для ребёнка: выбор книги для самостоятельного изучения языка в 2018 году

Мой сын заинтересовался программированием на Python, и у меня появился вопрос – есть ли сегодня возможность купить книгу для ребёнка в качестве самоучителя? Самоучители для взрослых детям не подходят – мотивации продираться самостоятельно через учебники программирования и у взрослых не всегда хватает, а у ребёнка скучное «академическое» изложение вообще может убить весь интерес к предмету на пятой странице.

К счастью, на момент написания статьи (конец 2018 года) выбор оказался весьма широк – есть как переводные, так и отечественные книги, нацеленные на детскую и подростковую аудиторию. В ходе поиска, отсеяв книги по Python 2, я смог найти 10 свежих книг по Python 3 для детей, изучил каждую их них вживую в офлайн-магазинах, и результатами своих изысканий хочу поделиться с вами в статье под катом.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии54

Вотериус: Передача показаний воды на телефон по Wi-Fi (4 года от батареек)

Время на прочтение6 мин
Количество просмотров93K


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

Мой путь оказался непростым и витиеватым. Но в результате получилось устройство, передающее показания воды по Wi-Fi на телефон. Простое и понятное в использовании и настройке хоть школьнику, хоть гуманитарию пенсионеру. А знакомым со словом «Ардуино» — ещё и несложное для изготовления. Девайс способен работать от батареек четыре года (дольше, чем длились отношения с вашей бывшей). Это ещё и первый открытый проект с такими характеристиками. Заводские аналоги я выписал, их мало, да и ладно с ними.

Итак, у нас есть немного денег и большое, но честное желание упростить себе жизнь, не нарушая Уголовный Кодекс. И чтобы никаких этих ваших 220В, серверов и кучи кнопок! Показания смотрим на смартфоне в приложении Blynk или аналогичном сервисе.

Теперь устройтесь в кресле поудобнее, съешьте ещё этих мягких французских булочек да выпейте чаю. Смотрите красивые фотографии и слушайте мой рассказ о том, что надо учитывать при создании автономных устройств. Но сначала краткое описание Вотериуса.
Читать дальше →
Всего голосов 127: ↑126 и ↓1+125
Комментарии205

Где и как изучать машинное обучение?

Время на прочтение2 мин
Количество просмотров76K

Всем привет!


Ни для кого не секрет, что интерес к машинному обучению и искусственному интеллекту растет в лучшем случае по экспоненте. Тем временем мой Яндекс Диск превратился в огромную свалку пейперс, а закладки в Google Chrome превратились в список, длина которого стремится к бесконечности с каждым днем. Таким образом, дабы упростить жизнь себе и вам, решил структурировать информацию и дать множество ссылок на интересные ресурсы, которые изучал я и которые рекомендую изучать вам, если вы только вначале пути (буду пополнять список постоянно).

Путь для развития новичка я вижу примерно так:

Untitled_presentation
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии19

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность