Pull to refresh
125
0
Дмитрий Андриянов @dima117

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

Send message

Страх и ненависть локализации в больших проектах. Доклад Яндекса

Reading time16 min
Views4.6K
Если вы думаете, что локализация — это просто (нужно только вынести все тексты из кода приложения и перевести их), то в большом проекте всё иначе. Если над ним работают десятки разработчиков и ежедневно релизится новая функциональность, то с каждым релизом появляются новые текстовые блоки и меняются старые. Переведенные фрагменты смешиваются с новыми, а новые — это коктейль текстов из разных продуктовых задач. Так рождается хаос, который пожирает сначала разработчиков, а потом и пользователей.



В докладе я рассказал, как мы организовали локализацию в проекте с десятками тысяч фрагментов текста и командой более чем из 40 человек. В конце поста есть видео с рассказом.
Читать дальше →

Телефон для коня и оркестр без пианиста. Как придумать спортивные задачи по фронтенду

Reading time8 min
Views7.2K

Привет! Меня зовут Дмитрий Андриянов, я работаю разработчиком интерфейсов в Яндексе. В прошлом году я участвовал в подготовке нашего онлайн-соревнования по фронтенду.



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

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

ThinkingHome.Migrator — версионная миграция схемы базы данных на платформе .NET Core

Reading time6 min
Views6.1K

Привет! Сегодня я выпустил новую версию ThinkingHome.Migrator — инструмента для версионной миграции схемы базы данных под платформу .NET Core.


Пакеты опубликованы в NuGet, написана подробная документация. Вы уже можете пользоваться новеньким мигратором, а я расскажу, как он появился, почему у него номер версии 3.0.0 (хотя это первый релиз) и зачем он нужен, когда есть EF Migrations и FluentMigrator.

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

.NET Core 2.1 Global Tools

Reading time7 min
Views19K

Пару недель назад вышел .NET Core 2.1 RC1. Это первая версия SDK, где есть фича под названием "Глобальные утилиты .NET Core" (".NET Core Global Tools"). Она дает простой способ создания кросс-платформенных консольных утилит.



Мы познакомимся с основами использования .NET Core Global Tools и кратко посмотрим, что внутри. А еще вы можете скачать .NET Core 2.1 SDK и попробовать написать собственный пример.

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

Как настроить Travis CI для проекта .NET Core + PostgreSQL

Reading time4 min
Views9K

Я расскажу о том, как настроить автоматический запуск модульных тестов в сервисе Travis CI для .NET Core проекта, в котором используется PostgreSQL.


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


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

.NET Core: номера версий и global.json

Reading time5 min
Views27K

Уверен, большинство людей, читающих это, знают, что Microsoft недавно анонсировала ASP.NET Core и .NET Core 2.0 Preview 1 на Microsoft Build 2017.



У этой статьи нет цели — дать введение в ASP.NET Core. Вместо этого мы рассмотрим установку .NET Core 2.0 Preview 1 на ваш компьютер таким образом, чтобы это не мешало параллельно работать над другими проектами под ASP.NET Core 1.0/1.1. Т.е. мы установим несколько версий .NET Core на одном компьютере.


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

Умный дом на .NET — релиз ThinkingHome 3.0

Reading time4 min
Views20K

Привет! Сегодня я наконец-то могу поделиться с вами результатами своей работы на протяжении последних двух лет! Вчера вечером я выпустил новую версию 3.0 системы управления умным домом ThinkingHome.



ThinkingHome — это программа (.NET Windows service), с помощью которой вы можете организовать на своем компьютере управляющий центр умного дома. Это центр, который дружит между собой "железки" с разными интерфейсами от разных производителей, позволяет автоматизировать работу с ними (писать скрипты на JavaScript) и управлять всем этим хозяйством через веб-интерфейс.


Под катом более подробное описание системы, список изменений в новой версии и небольшое объявление для тех, кто ненавидит Windows :)

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

Кнопочные выключатели nooLite — первые впечатления

Reading time4 min
Views20K
Я вас приветствую!

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

Те, кто ходил в прошлом и позапрошлом году на электро-выставки с участием Ноотехники, могли видеть на их стенде прототип настенного радиопульта с нажимаемыми (не сенсорными) кнопками. Кнопочные пульты лишены недостатков своих сенсорных собратьев, но имеют новый большой недостаток — не понятно, когда начнется их производство.

Так вот… кажется, этот недостаток скоро будет устранен! Сейчас уже выпущена небольшая экспериментальная партия, а в апреле, как сказали в Ноотехнике, начнется их серийное производство!



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

Узнать подробности

Программируем свой дом на .NET

Reading time14 min
Views9.6K
Недавно я писал сюда статью о проекте системы управления умным домом, в разработке которого я участвую. Это .NET Windows Service, который может управлять домом по сценариям и через веб-интерфейс. В октябре как раз был релиз версии 2.0.

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

Этот демо-плагин собирает информацию с датчиков температуры/влажности nooLite и отображает полученную информацию в веб-интерфейсе. Результат выглядит примерно так:

график изменения температуры за последние двое суток


текущая температура в комнатах (точнее, последние значения, полученные с датчиков)


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

Начать обучение

Мой умный дом на .NET, версия 2.0

Reading time4 min
Views12K
Добрый вечер!

Предлагаю вашему вниманию проект, над которым я работаю последние полтора года. Это программный продукт (если быть точным, .NET Windows Service), с помощью которого вы можете организовать на своем компьютере управляющий центр «умного дома». Хотя это всего лишь мое хобби (моя основная работа — веб-разработчик на .NET), многие люди, которым я показывал мой проект, высоко его оценили. Я пишу эту статью, чтобы попробовать заинтересовать вас.


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

nooLite: новые датчик температуры PT112 и USB-приемник RX2132

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

Итак:

1. Начато производство датчиков температуры PT112 (только температуры, без возможности измерения влажности).



Датчик точно такой же, как датчик температуры/влажности PT111, но может измерять только температуру. Его достоинство — более низкая стоимость — $21.7. Думаю, многим людям не нужно измерение влажности и они будут рады новой модели датчика.

2. Начато производство новой модели USB-приемника nooLite RX2164 с возможностью принимать информацию от датчиков



Характеристики — такие же, как у RX1164, цена — такая же. Более того, будет возможность бесплатно обменять купленный ранее адаптер RX1164 на новую модель!

Ссылки на подробную информацию

Мой web-интерфейс управления умной квартирой

Reading time2 min
Views44K
Привет!

Последние 1.5 года я работаю над очень интересным проектом — это система управления домом по сценариям. Она позволяет навешивать произвольную логику (сценарии) на различные события в доме (срабатывание датчиков, нажатия кнопок, события от внешних сервисов, например, получнеие email или сообщения в twitter). Система имеет модульную архитектуру, весь функционал находится в плагинах. Если нужно добавить новый тип события или новые команды «домашнего API», нужно просто добавить плагин для этого.

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



UI теперь — модульное одностраничное приложение. Плагины могут описывать свой UI в виде html/js/css файлов, расположенных в ресурсах DLL. Клиентская часть UI основана на backbone.js и marionette.js, модули загружаются через require.js. В целом получилось довольно удобно для авторов плагинов — даже не имея глубоких знаний java script, можно, смотря в примеры, описать полноценный UI, который будет автоматически подключен в интерфейс управления домом.

А теперь - слайды!

Начато производство беспроводных датчиков nooLite PM111 и PT111

Reading time2 min
Views45K
На этой неделе свершилось то, чего долго ждали многие энтузиасты домашней автоматизации — белорусская компания "Ноотехника" начала производство беспроводных датчиков nooLite: датчика движения PM111 и датчика температуры/влажности PT111.


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

Ethernet-шлюз nooLite PR1132 — управление светом со смартфона и планшета

Reading time6 min
Views37K
Неоднократно на хабре писали про систему nooLite, позволяющую управлять освещением и электроприборами по радио. Недавно белорусская компания «Ноотехника» — производитель системы nooLite — начала выпуск нового устройства — Ethernet-шлюза nooLite, позволяющего управлять светом с любого смартфона или планшета.
Итак, встречайте! Ethernet-шлюз PR1132:



Девайс работает в локальной сети (например, его можно подключить к роутеру, который раздает интернет по квартире). Управление светом происходит через веб-интерфейс (т.е. через браузер) или через HTTP API.
Читать дальше →

Перевод книги The Art of Unit Testing

Reading time2 min
Views49K
Всем привет!
Недавно я участвовал в попытке организации модульного тестирования в команде разработчиков. Как оказалось, для этого мне очень не хватает знаний и опыта. Т.к. у всех моих знакомых опыта примерно столько же, я решил начать восполнять пробел с прочтения книги The Art of Unit Testing (тыц тыц) — сложилось впечатление, что это «классика жанра» (ну, если даже php программисты ее рекомендуют).



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

Все отменяется. Я плохо искал, есть русская версия: www.ozon.ru/context/detail/id/26230428
Извините за беспокойство.

Я только-что залил книгу на notabenoid.com (это сервис коллективного перевода) и предлагаю всем желающим присоединиться к переводу. На хабре много людей, думаю, получится клево и относительно быстро.
Welcome!


Пусть пост повисит немного (вдруг кто-то из него узнает об отличной книге), потом скрою.
Читать дальше →

Мой умный дом на .NET

Reading time2 min
Views25K
В последнее время на хабре много статей про умный дом. В основном все они касаются взаимодействия с домашними устройствами. Для автоматического принятия решений используют MajorDoMo, Ninja Blocks или собственные велосипеды.

Уже около года я пишу yet another home automation систему управления домом по сценариям. Т.е. она позволяет навешивать произвольную логику на различные домашние события. Предлагаю ее на ваш строгий суд.
Описание и дистрибутив
Читать дальше →

Автоматизация сборки .NET приложений — часть 2

Reading time5 min
Views12K


Три года назад я писал статью про автоматизацию сборки .NET приложений. Планировалось, что она будет из двух частей. Первая часть — основы использования NAnt и примеры выполнения базовых задач (компиляция проекта, сборка сайта ASP.NET). Во второй части хотел рассказать о более продвинутых задачах типа трансформации конфигов, запуска модульных тестов и т.п.

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

Сейчас я хотел бы предложить вашему вниманию вторую часть, но немного на другую тему, чем планировалось изначально. Я расскажу о написании собственных тасков для NAnt, а также сделаю небольшой обзор библиотеки с тасками, которую я писал для себя последние 4 года.

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

Управление светом через браузер

Reading time4 min
Views10K
Мы написали веб-приложение для управления освещением при помощи системы NooLite.

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

Демо (вместо включения/выключения света в демо-режиме выдается текстовое сообщение о выполнении действий).

Мы использовали ASP.NET MVC на стороне сервера, JQuery Mobile на клиенте (собственно, в первую очередь интересно было управлять освещением именно с телефона). СУБД не требуется (настройки хранятся в конфигурационном файле). Для отправки команд с компьютера на управляющие блоки используется USB-адаптер PC118.

Скачать приложение можно здесь. Там же можно отдельно скачать .NET библиотеку, реализующую API для управления системой NooLite. Исходный код всего этого на Google Code.

Под катом находится инструкция по установке и настройке «с нуля».
Читать дальше →

Что вы хотели бы узнать о системе радиоуправления освещением NooLite?

Reading time1 min
Views41K
imageЯ думаю, система NooLite (о ней уже писали на хабре) — очень клевый проект: она дает недоступные ранее возможности, имеет низкую стоимость, ее очень легко подключить и использовать. Такие выключатели стоят у меня дома и это очень удобно. Но, на мой взгляд, о системе NooLite знают мало людей (в основном, гики), хотя подключить/использовать ее не сложнее обычного проводного выключателя и с этим справится практически любой человек.
Читать дальше →

Верстка like Metro UI

Reading time1 min
Views37K
В последнее время появилось довольно много инструментов для создания сайтов в духе Metro UI. К сожалению, лично у меня, использовать что-то из этого в реальных проектах не получилось: либо страдает качество и приходится вставлять «костыли», либо с качеством все нормально, но нет стилей для нужных компонентов приложения (например, нигде нет стилей для datepicker-а).



Я попробовал написать свое с блэкджеком и шлюхами. Сначала это был просто набор стилей для компонентов, которые были нужны мне в первую очередь. Cейчас все становится похожим на довольно большой CSS framework.

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

Стили в архиве и документация лежат здесь: milk.ecm7.ru, есть .LESS и CSS версии.

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity