Как стать автором
Обновить
11
0
Макс @maxvodo

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

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

Действительно прозрачное использование WCF

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

Мотивация


Для desktop-мира wcf остаётся самым распространенным способом организации клиент-серверного взаимодействия в .net как для локальных, так и для глобальных сетей. Он гибок в настройке, прост в использовании и прозрачен.

По крайней мере, так должно быть. На практике добавление нового сервиса — это рутина. Нужно не забыть прописать конфигурацию на сервере, сделать то же самое на клиенте, нужно написать или сгенерировать proxy-класс. Поддерживать конфиги неудобно. Если сервис изменился, то нужно вносить изменения в proxy-класс. А ещё не забыть про регистрации в IoC-контейнере. И добавление новых хостов для новых сервисов. И еще хочется простой асинхронности. По отдельности всё просто, но даже для статьи я дописывал этот список уже трижды, и не уверен, что не упустил чего-нибудь.

Время автоматизировать. Простейший сценарий от создания решения до вызова wcf-сервиса выглядит так:
  1. Install-Package Rikrop.Core.Wcf.Unity
  2. Пишем ServiceContract и их реализации
  3. На сервере и клиенте добавляем одну строку регистрации в IoC (конфиги править не надо)
  4. Поднимаем хосты с двух строк
    var assembly = Assembly.GetExecutingAssembly();
    _serviceHostManager.StartServices(assembly);
    
  5. На клиенте резолвим IServiceExecutor<TService>. Эта обёртка служит для вызова методов сервиса и скрывает работу с каналом.
  6. Можно пользоваться
    var articles = await _myServiceExecutor.Execute(service => service.GetArticles());
    

Как пользоваться и что внутри
Всего голосов 16: ↑15 и ↓1+14
Комментарии11

Создание окружения для веб-разработки на основе Docker

Время на прочтение5 мин
Количество просмотров61K
Под катом расскажу как я усовершенствовал автоматическое создание и разворачивание окружения для веб-разработки на основе Docker, Fig, DNSMasq и nsenter. По сути, это разворачивание LAMP сервера и запись о нем в DNSMasq, но приоритетами являются незасоренность хост-машины ненужным софтом типа web-, db-серверов на хост машине и минимальное количество команд для запуска
Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии59

ZeptoLab начал строить корпоративный университет

Время на прочтение6 мин
Количество просмотров17K
Предновогодний привет всем читающим нас хабражителям!

2014 год был для нас насыщенным и во многом сложным, но при этом — еще и самым инновационным и поучительным.

Бюджеты на обучение в наше нелегкое время, к сожалению, страдают чаще других в корпоративной среде, но нам приятно быть исключением из этого правила: у каждого сотрудника Зептолаб всегда был и есть бюджет на обучение порядка 90000 руб. в год.
Из этого бюджета зептолабовцы могут посещать конференции, ходить на тренинги и курсы как внутри, так и вне компании, а также обучаться онлайн. На конференциях наши ребята часто выступают в роли спикеров:



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

В этом году перед нами стояла задачка системно подойти к проработке самых необходимых навыков у сотрудников компании. Для начала их стоило выделить — это мы сделали стандартно, методом оценки персонала и индивидуальными беседами с руководителями отделов.
После того, как стали понятны «пробелы» в знаниях, которые есть не у одного-двух сотрудников, а у целых отделов, мы взялись за дело по-полной. Индивидуальные нюансы в основном прорабатывались на внешних курсах и тренингах, а над теми, что оказались глобальнее, работали внутри компании все вместе.

Естественно, вышесказанное касается как проработки профессиональных навыков, так и так называемых soft skills: например, все те, кому было важно научиться доходчиво доносить свою мысль до коллег и подчиненных, прошли курс ораторского мастерства.

На какой-либо индивидуальный внешний курс или тренинг от Зептолаб можно попасть двумя путями:
Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии11

Метод «Кнута-Пряника-Покера»

Время на прочтение8 мин
Количество просмотров104K
Покер на рабочем месте


За более чем десять лет моих активных поисков и применения GTD/PM-методик в своей, без малого, десятилетней практике фрилансера и предпринимателя, до меня наконец дошло — серебряной пули нет. Многие знали об этом всегда, мне же понадобились годы. Когда для тебя одновременное количество проектов измеряется не одним десятком. Когда ты прокрастинатор настолько, что даже прокрастинируя этой статьей от работы умудряешься прокрастинировать прокрастинацию чтением писем Лейбница и готов прокрастинировать рекурсивно. Когда ты перфекционист шестого разряда и программист-романтик, то до последнего надеешься, что есть универсальное лекарство. Но его нет…

Было бы счастье, да… многолетние поиски философского камня принесли и свои плоды. У меня накопился большой сундук различных подходов, которыми я хочу поделиться.

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии28

Учебник AngularJS: Всеобъемлющее руководство, часть 1

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

Содержание


1 Введение в AngularJS
2 Engineering concepts in JavaScript frameworks
3 Modules
4 Understanding $scope
5 Controllers
6 Services and Factories
7 Templating with the Angular core
8 Directives (Core)
9 Directives (Custom)
10 Filters (Core)
11 Filters (Custom)
12 Dynamic routing with $routeProvider
13 Form Validation
14 Server communication with $http and $resource

1 Введение в AngularJS


Angular – MVW-фреймворк для разработки качественных клиентских веб-приложений на JavaScript. Он создан и поддерживается в Google и предлагает взглянуть на будущее веба, на то, какие новые возможности и стандарты он готовит для нас.

MVW означает Model-View-Whatever (модель – вид – что угодно), то есть гибкость в выборе шаблонов проектирования при разработке приложений. Мы можем выбрать модели MVC (Model-View-Controller) или MVVM (Model-View-ViewModel).

Этот обучающий материал задумывался как отправная точка для изучения AngularJS, его концепций и API, чтобы помочь вам создавать великолепные веб-приложения современным способом.
Читать дальше →
Всего голосов 44: ↑38 и ↓6+32
Комментарии29

Светильник декоративный бытовой СДБ-З «Евлампия»

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


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

И все это получилось из самой дешевой интерьерной лампы из ИКЕА, пары метров светодиодной ленты, Arduino и небольшой кучки модулей и компонентов.

Читать дальше →
Всего голосов 81: ↑79 и ↓2+77
Комментарии38

Как я создавал методику изучения C#

Время на прочтение11 мин
Количество просмотров72K
Я с детства люблю не только программировать, но и делиться своими навыками, знаниями, рассказывать про свои программки, объяснять, как они работают, как их создавать.

В этом я нашёл своё призвание — мотивировать к изучению программирования.

Я не ставлю своей целью «научить писать программы», потому что этому нельзя научить, этому можно только научиться самостоятельно. Моя цель — сделать этот процесс максимально интересным, увлекательным, захватывающим, организовать «тусовку», сообщество, в котором можно и хочется решать задачи, развивать свои навыки программирования. Общество, в котором можно видеть успехи коллег, чтобы было к чему стремиться, кого обгонять.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии26

Умей говорить «нет» и умей говорить «да»

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

Умей говорить «нет»


Старший разработчик Валера работает в роли тимлида на большом и важном проекте для большого и важного заказчика. За окном шумит жаркое лето, по пыльным улицам бегут по своим делам прохожие, голуби крутят пируэты в необъятном казахстанском небе. Жизнь прекрасна – пилотный запуск намечен на конец ноября, команда набрала хороший темп и идет по графику. И тут Валера боковым зрением замечает, как на иконке Скайпа появилась желтая точка – кто-то о нем вспомнил и написал сообщение. Это руководитель проекта: «Зайди ко мне…»
Читать дальше →
Всего голосов 193: ↑183 и ↓10+173
Комментарии34

Сводная таблица по поддержке C++ 11/14/17

Время на прочтение5 мин
Количество просмотров65K
Как любому C++ разработчику, следящему за новинками в отрасли и стандартами в частности, мне стало интересно, насколько полно вообще поддерживается стандарт C++ 11 (а также 1y и 1z) разными компиляторами? Да, существуют разные сводные таблицы, но чаще всего это сравнение двух компиляторов или двух версий одного компилятора, либо сводная таблица, но уже устаревшая, либо вообще неполный список. В общем, сел я да и сделал полную таблицу (на основе списка Clang-a и GCC) по четырем компиляторам: Clang, GNU C++, MSVC и Intel C++.
Таблица под катом
Всего голосов 73: ↑71 и ↓2+69
Комментарии46

NodeSchool, Node.js и один урок для самых маленьких

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




Сегодня я вам расскажу про одно очень интересное сообщество под названием NodeSchool. Данное сообщество продвигает обучение по платформе node.js
Читать дальше →
Всего голосов 29: ↑23 и ↓6+17
Комментарии6

Фитнес-браслет HealBe GoBe таки вышел в люди

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


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

Да, именно — не количество сожженных калорий (хотя и это тоже), а количество калорий, поступивших в организм. При этом было даже обещано показать процентное содержание жиров, белков и углеводов. Дата выхода браслета переносилась несколько раз, а стартап так и вообще подозревали в мошенничестве. Как оказалось, совершенно напрасно: вчера в офис Medgadgets поступил один такой фитнес-трекер, вполне реальное и работоспособное устройство. Фотографии под катом сделаны в офисе буквально сегодня утром.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии23

Тонкости nodejs. Часть II: Работа c ошибками

Время на прочтение5 мин
Количество просмотров19K
Обработка ошибок в JS – та еще головная боль. Не ошибусь, если скажу, что ошибки – самое слабое место всего языка. При чем проблема состоит из двух других: сложности отлова ошибки в асинхронном коде и плохо спроектированного объекта Error. И если первой проблеме посвящено множество статей, то о второй многие незаслуженно забывают. В этом материале я постараюсь восполнить недостаток и рассмотреть объект Error более пристально.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии15

Eskimo — Node.js бойлерплэйт для создания прототипов

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

Эскимо — новый Node.js бойлерплэйт для быстрого прототайпинга (MVP).

Даже если интернет заполнен разными бойлерплэйтами и фрэймворками, на нынешний день отсутствует современный, модульный и минимальный бойлерплэйт для запуска прототипов (специально для строительства rapid minimal product-ов «RMVP's»). Проект создается с малого, одним человеком, но потом, под влиянием вкладчиков, он растет до непредсказуемых размеров. Поиск в Google и GitHub про Nodejs бойлерплэйт и Nodejs фрэймворк дает сотни результатов.

Но многие из этих запускателей проектов не имеют автоматизации для развертывания и тестирования продуктов. Некоторые игнорируют практику фронт-энда и не используют Bower, Bootstrap, Font Awesome, S3/CloudFront, clustering и LESS. И ни один бойлерплэйт или фрэймворк не внедрили инъекцию зависимостей с помощью электролита, за исключением Эскимо и проектов Джареда Хэнсона.
Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии8

Солнечная система на graphics2d.js

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

Доброго {{timeOfDay}}


Как-то затихла тема canvas-а на Хабре…

Давайте вспомним солнечную систему на нём (начало, LibCanvas, Fabric.js) и напишем ещё одну версию? Теперь на graphics2d.js.


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

Пошаговый обзор: единое MultiCAD.NET приложение в nanoCAD, AutoCAD, ZWCAD

Время на прочтение3 мин
Количество просмотров13K
image
Одной из важных особенностей приложений, написанных на MultiCAD.NET API, является их кросс-САПР-платформенность. Проще говоря, приложения, написанные однажды, могут работать в любой из поддерживаемых САПР без перекомпиляции.

MultiCAD.NET является «родным» API для nanoCAD, приложения могут быть загружены с помощью стандартных команд APPLOAD или NETLOAD. В AutoCAD или ZWCAD необходимо предварительно загрузить MultiCAD Object Enabler, затем MultiCAD.NET приложения загружаются командой NETLOAD.

Под катом пошаговое руководство, в котором мы продемонстрируем процесс загрузки MultiCAD.NET приложения в nanoCAD, AutoCAD и ZWCAD, создадим с его помощью чертеж и отредактируем его во всех трех системах.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии4

Popcorn Time на русском

Время на прочтение2 мин
Количество просмотров141K
На Хабре не раз уже рассматривался Popcorn Time (тут, тут, тут и тут).

У этого проекта есть один небольшой недостаток. Фильмов в русской озвучке там нет. Я попробовал решить эту проблему.


Читать дальше →
Всего голосов 94: ↑76 и ↓18+58
Комментарии139

О том, как я уехал преподавать в Эстонию

Время на прочтение9 мин
Количество просмотров16K
image
[Вид старого города с высоты полета квадрокоптера]

Немного о себе: Работал в Санкт-Петербурге в Политехническом университете. Преподавал компьютерные сети, в основном, в рамках сетевой академии Cisco, имею статусы CCNA R&S, CCNA Security, CCNP R&S, так же являюсь Instructor Trainer’ом для соответствующих курсов.
Читать дальше →
Всего голосов 51: ↑47 и ↓4+43
Комментарии41

Использование Accept Header для версионирования API

Время на прочтение4 мин
Количество просмотров17K
Я исследовал различные варианты дя версионирования REST API. Большинство источников, которые я нашел, говорят практически одно и тоже. Для версионирования любого ресурса в интернете вы не должны изменять URL-адрес. Веб не версионный, и изменение URLа говорит клиенту, что есть больше чем 1 ресурс. Но на самом-то деле не существует нескольких ресурсов, это просто разные представления одного и того же. Конечно, бывают случаи, когда необходимо изменить URL, например, когда измененяется функциональность. В данном конкретном случае причиной изменения служит тот факт, что это больше не один и тот же ресурс.

Но с другой стороны, и, возможно, даже более важной, вы всегда должны стараться убедиться, что изменения будут обратно совместимы. Нужно очень хорошо проектировать архитектуру, чтобы использующие ваше API клиенты не меняли свой код. Хорошо продуманное API может спасти вас от большой, очень большой головной боли.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии20

Продвинутое использование объектов в JavaScript

Время на прочтение15 мин
Количество просмотров50K
Этот пост выходит за рамки повседневного использования объектов в JavaScript. Основы работы с объектами по большей части так же просты, как использование JSON-нотации. Тем не менее, JavaScript дает возможность использовать тонкий инструментарий, с помощью которого можно создавать объекты некоторыми интересными и полезными способами и который теперь доступен в последних версиях современных браузеров.
Читать дальше →
Всего голосов 60: ↑56 и ↓4+52
Комментарии29

Работа с COM портом в web-проекте

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

Пролог


Один из клиентов нашего web-проекта захотел использовать для поиска заказов в системе сканер штрихкодов. Но, к сожалению, полностью отказался от идеи работы с ними в режиме имитации клавиатуры — только эмуляция COM-порта.
Вариантов решения было не особенно много:
  • отдельное нативное приложение, которое бы отправляло запрос на наш сервер, а сервер бы отдавал команду в браузер
  • работа с COM портом непосредственно из браузера

К счастью, есть способ решения проблемы вторым путём.

Читать дальше →
Всего голосов 52: ↑51 и ↓1+50
Комментарии31

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность