• Domain-Driven Design: тактическое проектирование. Часть 2



      Здравствуйте, уважаемые хабрапользователи! В предыдущей статье мы рассмотрели стратегическое моделирование с помощью подхода DDD. В ней было показано, как выделять концептуальные границы, в рамках которых решаются отдельные задачи предметной области – ограниченные контексты.

      Для реализации конкретного ограниченного контекста используется ряд более низкоуровневых тактических шаблонов, которые имеют технический характер, то есть эти шаблоны используются для решения технических задач. Такими шаблонами являются: сущность, объект-значение, службы предметной области, события, модули, агрегаты, фабрики и хранилища. Именно о них пойдет речь в этой статье.
      Читать дальше →
    • Domain-Driven Design: стратегическое проектирование. Часть 1



        Здравствуйте, хабрапользователи! В этой статье речь пойдет о предметно-ориентированном проектировании программного обеспечения с использованием, в первую очередь, стратегических шаблонов. Вторую часть – про тактическое проектирование – читайте здесь.

        Данный подход использовал Вон Вернон в своей книге «Реализация методов предметно-ориентированного проектирования». Цель написания этой книги: дать возможность разработчикам совершить полет на самолете DDD (в детстве автор зачастую путешествовал со своей семьей на небольших самолетах). Вид с высоты дает более широкое представление о проблемах моделирования, не давая застрять в различных технических деталях. Наблюдая ландшафт DDD таким способом, можно осознать преимущества как стратегического, так и технического проектирования. Подробнее – под катом!
        Читать дальше →
      • B1 Basis Band: часы-биорегистратор. Геймификация здорового образа жизни (первый обзор на русском)

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

          .

          Гаджет B1 Basis Band, один из номинантов выставки CES-2012, — это первый портативный биорегистратор, следящий за здоровьем с помощью датчиков, измеряющих сердечный ритм человека, влажность кожи, движение, температуру. Они следят за временем, потраченным на сон, считают количество сожжённых калорий. Данные через USB и bluetooth передаются на компьютер или мобильный телефон и заносятся в онлайн-профиль. В дальнейшем будем этот биорегистратор называть часами для простоты. Тем более, он еще и правда часы.

          B1 Basis band продолжает линейку Fitbit, Jawbone, Nike Fuelband, дополняя привычное совершенно новыми функциями, которых еще ни в одних портативных устройствах не было. Стоит ли покупка потраченных денег?

          Читать дальше →
        • Google Chromecast

            24 июля компания Google наряду с новой версией Android 4.3 представила и новое необычное устройство Google Chromecast. Если анонс Android 4.3 ожидался уже давно, то появление Chromecast оказалось приятным сюрпризом. Удивительно, но в Google смогли не допустить утечек о новом устройстве практически до самого анонса. Кроме того, в полной тайне им удалось не только изготовить, но и отгрузить в магазины большие партии этих устройств. Chromecast появился в магазине Google Play практически одновременно с анонсом. Я же решил купить его в онлайн-магазине Amazon. Там оно появилось после полудня (по тихоокеанскому времени) и я оказался среди первых покупателей. На следующий день, 25 июля Amazon выслал покупку и еще через день, 26 июля, я стал обладателем Google Chromecast.
            Что же представляет собой Google Chromecast? Это небольшое устройство (донгл, свисток и т.д.), подключаемое к HDMI входу ТВ или ресивера и способное воспроизводить контент (видео, музыку, фотографии). Chromecast не имеет своего интерфейса или внешних элементов управления (за исключением кнопки сброса). Для контроля необходимо наличие в одной сети с донглом Android, iOS устройства или браузера Chrome (Windows или Mac), так же Chromebook Pixel. Мака или Хромбука дома нет, так что все эксперименты проводились с Samsung Galaxy SIII, Apple iPod, Chrome for Windows и телевизором Panasonic TC-P55GT30.

            В продолжении под катом много фотографий.
            Читать дальше →
          • Сингулярность действительно близко

              image

              Привет. Меня зовут Марк и я перевожу адаптирую и интерпретирую книгу Р. Курцвейла «The Singularity Is Near». Если вам не знаком Курцвейл и вы первый раз услышали про Сингулярность — посмотрите что об этом думают другие:

              «Рэй Курцвейл дает самые точные прогнозы искусственного интеллекта и будущего, из каких–либо мне известных. Его книга интригующе рассказывает о ближайшем будущем, в котором информационные технологии продвинутся так далеко и так быстро, что это позволит человечеству выйти за рамки биологических ограничений и изменить наш вид так, как мы пока еще не можем себе представить»

              Билл Гейтс

              «Любой человек может понять главную идею Курцвейла: технологии человечества развиваются так же, как растет снежный ком, что означает фантастические перспективы в ближайшем будущем. Это понятно всем. Но для более любознательных есть интересные детали и подробности….»

              The New York Times

              «Волнующий и чрезвычайно глубокий взгляд на человечество как вид. Курцвейл является блестящим ученым и футуристом…»

              The New York Sun

              Это настольная книга любого «истинно верующего» технократа, трансгуманиста и футурофила, если в двух словах. Именно эта книга считается лучшей работой Курцвейла и одной из лучших книг, описывающих ближайшее будущее человечества как биологического вида.
              Читать дальше →
            • Устройство очков виртуальной реальности Oculus Rift

                Летом 2012 года проект Окьюлус Рифт собрал более 2,4 млн. долларов на «Кикстартере», при этом первый миллион был получен всего за 36 часов. Очки виртуальной реальности официально пока не были выпущены, и сейчас (с сентября 2012 года) пользователям доступен лишь вариант для разработчиков с более скромными, чем у будущей полноценной версии, характеристиками. Но и урезанная модель для разработчиков пользуется огромным спросом, изобретатель устройства даже был вынужден заметить, что желающим следует ожидать Окьюлуса 2.0 в 2014 году.

                Очки виртуальной реальности обладают горизонтальным углом обзора в 90° и диагональным углом обзора в 110°. Датчик перемещения модели для разработчиков работает с частотой 1000 герц, у прототипа же был 250-герцевый сенсор.

                На сайте iFixit была опубликована подробная инструкция по разбору очков с указанием технических деталей и особенностей эксплуатации. Устройство получило оценку ремонтопригодности в 9 баллов из 10, где большее значение соотвествует большей простоте разборки и сборки. Перед собственно использованием очки нужно настроить под конкретного пользователя. В комплекте к Окьюлусу идёт комплект из трёх наборов линз.


                Читать дальше →
              • Читать книги на английском и учить язык легче с помощью WordMemo

                  Я хочу рассказать о некоммерческом сервисе wordmemo.ru, а также о связанной с ним программе WordMemo для устройств с ОС Android. Наш сервис предназначен для людей, которые хотят читать англоязычные тексты (например, художественную литературу). Сам я отношусь к тем людям, которым легко прочитать небольшие фрагменты “технической литеатуры”, а абзац из классики — невозможно. В основе сервиса, который мне очень помогает в этом деле, лежит «читалка» с возможностью смотреть переводы слов, выписывать их значения, и — самое важное! — тренажёрами, позволяющими эффективно заучивать выписанные слова. К примеру, для каждого незнакомого слова сохраняются контексты, в которых оно встречалось.
                  Главная идея сервиса состоит в том, что учить слова лучше всего не взятыми по отдельности, как в словарях, а в составе реальных предложений. Что-то вроде англо-русского разговорника и учебника, который вы создаете сами!
                  Читать дальше →
                • Amazon выпустил новые высокотехнологичные планшеты Fire и читалки Kindle по сумасшедше низким ценам

                    Сегодня, 6 сентября на специальной пресс-конференции компания Amazon объявила о выпуске новых версий планшета Kindle Fire и читалки Kindle. Нас ждёт целая волна инноваций по доступным ценам.

                    image

                    Вперёд!
                    Читать дальше →
                  • Сервисы автопостинга для ВКонтакте

                      Хабрапривет всем! С недавнего времени я веду свое сообщество ВКонтакте — Music Zone. Долгое время всё было гладко, я постил ~2 записей в день, однако однажды отправившись в другой город по делам (интернета там конечно же нету), я задумался об автопостинге. Немного погуглив, я нашёл несколько сервисов, позволяющих это реализовать.
                      Читать дальше →
                    • Поиск работы за рубежом

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

                        Итак, вы задумались о поиске новой работы.
                        Читать дальше →
                      • Как значительно повысить конверсию сайта с помощью крошечных фраз: Микрокопия. Часть 1



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

                        Прежде чем переходить к статье, предлагаем Вам подумать над следующим вопросом. Какие средства лучше всего использовать для повышения конверсии сайта — что первое приходит вам на ум?
                        В статье о создании эффективного призыва к действию говорится о том, что клиенты Visual Website Optimizer чаще всего для повышения конверсии тестируют:
                        • кнопки призыва к действию – CTA (30%);
                        • заголовки (20%);
                        • оформление (10%);
                        • текст (8%).
                        Но что если эта одержимость заголовками и CTA-кнопками уже неактуальна?
                        Читать дальше →
                        • +13
                        • 17.6k
                        • 8
                      • Call-центр просто и дешево

                          image

                          Недавно к нам обратился заказчик с просьбой помочь в организации небольшого Call-центр на 10 операторов. Ну конечно одно из главных требований – «подешевле».
                          Было предложено несколько решений, остановились на следующем, базирующемся полностью на VoIP технологии:
                          • 4 городских аналоговых линии принимаются голосовым шлюзом D-Link DVG-6004S
                          • в роли IP АТС и сервера с CRM-системой выступает сетевой накопитель D-Link DNS-325
                          • у старшего оператора IP-телефон D-Link DPH-400S с гарнитурой Plantronics HW111N
                          • у остальных операторов софтфон CounterPath X-Lite с гарнитурой Plantronics Blackwire C210
                          • сеть обслуживается коммутатором D-Link DES-1210-28
                          Читать дальше →
                        • Нечеткий динамический текстовый поиск? Не так уж и страшно

                            Владимир Румянцев - приключения Питерского... кота
                            Существует устойчивое мнение, что нечеткий поиск в динамике (онлайн)
                            малодоступен в силу своей невероятной сложности.
                            Далее мы будем развеивать это досадное заблуждение и покажем,
                            что построить свою собственную поисковую систему со сносной производительностью
                            на не таких уж и маленьких данных доступно каждому.
                            Читать дальше →
                          • PHP RUtils — небольшая библиотека для обработки русского текста

                              В работе на языке Python я частенько использую библиотеку Pytils для работы с русским текстом, и мне очень не хватало этой библиотеки при работе на PHP. Возможно, я искал плохо, но все, что я находил, не предоставляло подобных возможностей либо не слишком отвечало моим понятиям о чистом коде.

                              И вот, однажды я решил портировать библиотеку на PHP, и теперь хочу поделиться ею с народом и очень надеюсь на помощь в ее улучшении: буду рад советам, баг-репортам и особенно pull-реквестам. Библиотека находится на GitHub'е: github.com/Andre-487/php_rutils

                              UPD от 26.10.2013: теперь библиотека так же доступна через Composer: packagist.org/packages/andre_487/php_rutils
                              Так же хочу сказать спасибо всем, кто помог улучшить библиотеку и довести ее до стабильного релиза.

                              Возможности библиотеки


                              PHP RUtils — порт Pytils на PHP. Это утилиты для работы с русским текстом. Утилиты разделены на следующие модули (классы):

                              • Numeral — работа с числами: склонение существительных в зависимости от количества, числа прописью, суммы денег в рублях и копейках прописью.
                              • Dt — работа с датами: расширение формата дат PHP русскими именами месяцев, дней недели; временные периоды (например, 24 976 дней назад).
                              • Translit — транслитерация, подготовка строк для использования в URL'ях, именах файлов.
                              • Typo — небольшой набор правил типографики простого текста.

                              Примеры кода и подробности
                            • HTML Purifier. Расширяем возможности


                                Буквально пару абзацев я уделю внимание особенностям взаимодействия этой библиотеки с фреймворком Yii, остальное же в полной мере универсально и будет интересно всем, кто использует или планирует использовать эту библиотеку.

                                Если вы уже хорошо знакомы с Purifier, то можете смело начинать читать отсюда

                                Немного о HTML Purifier

                                Если вы не слышали о такой прекрасной библиотеке (а поиск на Хабре говорит о не такой уж большой популярности) как HTML Purifier, то советую обязательно к ней присмотреться, особенно если ваши пользователи генерируют контент в html формате. Это может быть рядовой пользователь, модератор или даже администратор.
                                Что же делает эта библиотека?
                                Согласно конфигурации она очищает любой html код от всех вредоносных, невалидных, запрещенных (вашей конфигурацией) частей кода, в том числе отдельные атрибуты.
                                Читать далее
                              • Полезные хаки и сниппеты для .htaccess



                                Это перевод очень интересной лично для меня статьи, которым я хочу поделиться с уважаемым хабрасообществом. Некоторые из приведенных рецептов я уже встречал на Хабре, но разрозненно и далеко не все из нижеприведенного.

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

                                Если же вам нужны базовые сведения о предназначении данного файла, то вы можете получить из нашей статьи введение в .htaccess (перевод данной статьи не делал, так как там основы, их достаточно в русскоязычном сегменте Сети, но если будет проявлен интерес, то можно и ее перевести для полноты картины — прим. переводчика), в которой достаточно подробно раскрыты все аспекты его применения.
                                Узнать больше
                              • EyeDoc — пока от монитора не ослеп



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

                                  Конечно, тема поднималась на хабре не раз и авторы статей действительно давали дельные советы, которые могли бы помочь защитить зрение пользователям ПК. Однако, в большинстве случаев, все они сводились к тому, что основное средство спасения — тот остров посреди океана — это упражнения для глаз в разных количествах и разных видов. Но давайте подойдем сейчас к другу/коллеге/соседу и спросим, стал ли он пользоваться этими упражнениями и насколько регулярно их выполняет? Лично я не уверен ни в положительном ответе, ни в систематическом выполнении этих упражнений.

                                  Я не смог смириться с тем, что и дальше буду терять зрение, поэтому принял решение пойти другим путем. О том, что я пробовал, чего добился и что для себя решил, я поведаю ниже, раскладывая все по полочкам и в хронологическом порядке.
                                  Читать дальше →
                                • Загрузка файлов в AngularJS

                                    Давно писал модуль для загрузки файлов и всё он был не идеальным. И тут подумал, если сейчас не опубликую, то никогда не опубликую, идеал-то не достижим!

                                    При составлении АПИ руководствовался принципом — как можно проще. Поэтому сначала несколько мыслей о загрузке файлов:

                                    Загрузка только методом POST. Как показала практика, сам по себе файл почти никогда не бывает отдельной сущностью и всегда привязан к каким-то другим данным в базе, поэтому создавать запись вместе с загрузкой файла — плохая идея. Правильно: сначала создать запись, потом отдельным запросом добавить туда файл. Такой подход снимает кучу вопросов, связанных с отменой загрузки, параллельным редактированием описания файла и проч. Так же, создавая запись предварительно, мы можем получить в ответ данные о количестве свободного места на сервере и использовать их для валидации на клиенте.

                                    Загрузка каждого файла отдельным запросом. На любом хостинге существует ограничение на максимальный размер POST-запроса (напр., 10 МБ). Если мы грузим одновременно 10 файлов, значит их вес в сумме не должен превышать 10МБ. В 99% случаев проще пожертвовать производительностью и не иметь проблем с такими ограничениями.

                                    Никаких отложенных загрузок. Файл должен загружаться сразу после добавления (не в 2000 году, чай, живем), поэтому никаких методов работы с очередью — выбрал файл, выбрал еще 5 штук, удалил один, нажал «отправить» — не будет. Зато будет отмена загрузки.

                                    Не стоит разделять загрузку файлов по кнопке и перетаскиванием. В моем случае любая область, помеченная директивой позволяет перетаскивать на нее файлы, а если это инпут с типом file, то еще и в проводнике можно выбрать. Очень удобно знать, что на кнопку можно перетаскивать, когда потянул в браузер 10 файлов, а дизайнер забыл подсветить поле перетаскивания, и гадаешь перетащатся ли они или откроются в новом окне.
                                    Читать дальше →
                                  • 20 вещей, которые я должен был знать в 20 лет

                                    • Translation
                                    1. Мир пытается оставить тебя тупым. Начиная от банковских платежей и процентов и заканчивая чудо-диетами — из необразованных людей легче вытрясти деньги и ими проще управлять. Занимайтесь самообразованием столько, сколько можете — для того, чтобы быть богатым, независимым и счастливым.
                                    Читать дальше →
                                  • Адаптивные email'ы

                                    • Tutorial
                                    image


                                    Сегодня пользователи все чаще читают электронные письма на мобильных устройствах. Каково бывает просмотр большого HTML-email'а на телефоне? Приходится много масштабировать и скроллить, в целом читать становится очень неудобно. Поэтому и письма электронной почты следует делать адаптивными.
                                    Читать дальше →