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

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

Send message

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

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



В докладе я рассказал, как мы организовали локализацию в проекте с десятками тысяч фрагментов текста и командой более чем из 40 человек. В конце поста есть видео с рассказом.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 11

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

Reading time 8 min
Views 7.1K

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



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

Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Comments 9

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

Reading time 6 min
Views 5.9K

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


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

Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Comments 24

.NET Core 2.1 Global Tools

Reading time 7 min
Views 18K

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



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

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

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

Reading time 4 min
Views 8.8K

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


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


Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 8

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

Reading time 5 min
Views 26K

Уверен, большинство людей, читающих это, знают, что 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 на одном компьютере.


Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 13

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

Reading time 4 min
Views 20K

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



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


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

Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Comments 42

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

Reading time 4 min
Views 20K
Я вас приветствую!

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

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

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



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

Узнать подробности
Total votes 20: ↑17 and ↓3 +14
Comments 102

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

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

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

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

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


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


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

Начать обучение
Total votes 17: ↑13 and ↓4 +9
Comments 4

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

Reading time 4 min
Views 12K
Добрый вечер!

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


Читать дальше →
Total votes 30: ↑26 and ↓4 +22
Comments 31

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

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

Итак:

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



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

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



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

Ссылки на подробную информацию
Total votes 20: ↑14 and ↓6 +8
Comments 7

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

Reading time 2 min
Views 44K
Привет!

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

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



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

А теперь - слайды!
Total votes 43: ↑37 and ↓6 +31
Comments 41

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

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


Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Comments 37

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

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



Девайс работает в локальной сети (например, его можно подключить к роутеру, который раздает интернет по квартире). Управление светом происходит через веб-интерфейс (т.е. через браузер) или через HTTP API.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 52

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

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



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

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

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


Пусть пост повисит немного (вдруг кто-то из него узнает об отличной книге), потом скрою.
Читать дальше →
Total votes 38: ↑33 and ↓5 +28
Comments 23

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

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

Уже около года я пишу yet another home automation систему управления домом по сценариям. Т.е. она позволяет навешивать произвольную логику на различные домашние события. Предлагаю ее на ваш строгий суд.
Описание и дистрибутив
Читать дальше →
Total votes 45: ↑25 and ↓20 +5
Comments 21

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

Reading time 5 min
Views 11K


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

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

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

Читать дальше →
Total votes 15: ↑10 and ↓5 +5
Comments 1

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

Reading time 4 min
Views 9.8K
Мы написали веб-приложение для управления освещением при помощи системы NooLite.

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

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

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

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

Под катом находится инструкция по установке и настройке «с нуля».
Читать дальше →
Total votes 38: ↑28 and ↓10 +18
Comments 22

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

Reading time 1 min
Views 41K
imageЯ думаю, система NooLite (о ней уже писали на хабре) — очень клевый проект: она дает недоступные ранее возможности, имеет низкую стоимость, ее очень легко подключить и использовать. Такие выключатели стоят у меня дома и это очень удобно. Но, на мой взгляд, о системе NooLite знают мало людей (в основном, гики), хотя подключить/использовать ее не сложнее обычного проводного выключателя и с этим справится практически любой человек.
Читать дальше →
Total votes 26: ↑15 and ↓11 +4
Comments 77

Верстка like Metro UI

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



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

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

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

Читать дальше →
Total votes 56: ↑47 and ↓9 +38
Comments 76
1

Information

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