Скрестить ежа (Marathon) с ужом (Spring Cloud). Эпизод 1

Автор: admin от Сегодня, 15:10, посмотрело: 0

При переходе к распределённым системам с большим количеством инстансов сервисов в полный рост встают проблемы их обнаружения (service discovery) и балансировки запросов (load balancing) между ними. Как правило, для их решения используются такие специализированные инструменты как Consul, Eureka или старый добрый Zookeeper, в сочетании с Nginx, HAProxy и некоторым мостом между ними (см. registrator).


Основная проблема в подобном подходе это большое количество интеграций, и, как следствие, точек где что-то может пойти не так. Ведь помимо вышеупомянутых решений наверняка будет использоваться локальный маленький PaaS (например Mesosphere Marathon или Kubernetes). Последние, к слову, уже хранят необходимую конфигурацию об окружении (ведь через них идёт весь деплоймент). И встаёт вопрос, а можем ли мы отказаться от специализированных инструментов для service discovery и переиспользовать тот же Marathon для этой задачи?


Краткий ответ — можем. Если интересно как — читайте дальше.

Категория: Программирование

 

Моя модернизация Byndyusoft.Infrastructure | DDD + CQRS + WebApi

Автор: admin от Сегодня, 15:05, посмотрело: 0

Всем привет! Я часто ищу в просторах интернета «идеальную архитектуру» и несколько месяцев назад наткнулся на интересную реализацию и хотел бы поделится немного дополнив его.

-> Ссылка на реализацию

Немного модернизации и я получил вполне универсальный рабочий шаблон.

Для всех, кто не знаком с DDD можно начать с wiki.

В конце мы получим связку с DDD + CQRS + Entity Framework + OData + WebApi + Log4Net + Castle Windsor + Kendo UI.

Категория: Программирование

 

PyMC3 — MCMC и не только

Автор: admin от Сегодня, 15:05, посмотрело: 0

PyMC3 — МСМС и не только


PyMC3 — MCMC и не только
Привет, Хабрахабр!


В этом посте уже упоминался PyMC3. Там можно почитать про основы MCMC-сэмплирования. Здесь я расскажу про вариационный вывод (ADVI), про то, зачем все это нужно и покажу на довольно простых примерах из галереи PyMC3, чем это может быть полезно. Одним из таких примеров будет байесовская нейронная сеть для задачи классификации, но это в самом конце. Кому интересно — добро пожаловать!

Категория: Программирование

 

Weblancer закручивает гайки и идет по пути FL.ru

Автор: admin от Сегодня, 14:35, посмотрело: 3

Weblancer закручивает гайки и идет по пути FL.ru Свежие новости для всех фрилансеров, которые пользуются Weblancer! Видимо администрация не любит сообщать плохие вести, что ж, возьму эту ношу на себя.

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

2.2. Фрилансер принимает на себя следующие обязательства:
2.2.4. Приступать к выполнению задания только после принятия в список Выбранных Исполнителей.

Категория: Программирование

 

Как я пишу код

Автор: admin от Сегодня, 13:05, посмотрело: 11

Мне нравится думать, что я пишу хороший код. Ну или, что я хотя бы пишу больше хорошего кода, чем плохого.

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

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

Код, использующий неявное поведение, может быть основан на каком-нибудь недокументированном, но уже реализованном функционале. Например, в мире написана целая куча НЕВЕРНОГО кода, который полагается на то, что функция файловой системы, возвращающая список директорий, вернёт их в отсортированном по алфавиту порядке. Это и вправду часто работает именно так, но ровно до того момента, пока не ломается по «непонятным» причинам. А на самом деле просто никто никогда этой сортировки не гарантировал.

Категория: Программирование

 

DevExtreme: теперь на GitHub и с бесплатной лицензией

Автор: admin от Сегодня, 11:55, посмотрело: 14

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


DevExtreme: теперь на GitHub и с бесплатной лицензией


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


Вести разработку на GitHub — одно удовольствие. Механизм pull-реквестов с удобным code review — то, чего нам не хватало, пока мы жили во внутреннем Mercurial-репозитории. Теперь каждое изменение видят несколько пар глаз, что обеспечивает больший уровень прозрачности и позволяет процессам разработки плавно интегрироваться в методологии, принятые в команде (© SeOd).


В первые дни репозиторий выглядит пустовато, так как при импорте кода мы схлопнули историю коммитов. Но это продлится недолго! В дополнение к традиционным релизам, которые никуда не денутся, мы будем также оформлять Releases на GitHub и там же выпускать промежуточные pre-release и hotfix версии. Подписавшись на DevExpress/DevExtreme, например, с помощью сервиса Sibbell вы всегда будете в курсе наших последних новостей.

Категория: Программирование

 

Делаем рекламу в интернете – быстро или правильно?

Автор: admin от Сегодня, 09:05, посмотрело: 16

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

При этом около 50% всех логических выкладок основывается лишь на предположении участников проекта по поводу того, что же действительно нужно их клиентам.

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

Категория: Программирование » Веб-разработка

 

Загрузка данных из REST API

Автор: admin от Сегодня, 09:00, посмотрело: 30

Хочу поделиться ещё одним маленьким велосипедом — в первую очередь, чтобы получить бесценные советы. Дополнительные примеры можно посмотреть в исходниках фан-проекта на GitHub.

Категория: Программирование » Веб-разработка

 

Лямбда-исчисление на JavaScript

Автор: admin от Вчера, 20:25, посмотрело: 19

Привет! В этой статье я хочу в очередной раз взглянуть на лямбда-исчисление. Теоретическую сторону вопроса на хабре обсуждали уже множество раз, поэтому взглянем на то, как лямбда-исчисление может выглядеть на практике, например, на языке javascript (чтобы примеры можно было выполнять прямо в браузере).
Итак, основная идея: всё есть функция. Поэтому мы ограничим себя очень узким кругом возможностей языка: любое выражение будет либо анонимной функцией с одним аргументом (x => expr), либо вызовом функции (f (x)). То есть весь код будет выглядеть похожим образом:
id = x => x
double = f => x => f (f (x))

Поскольку результатом работы функций будут другие функции, нам понадобится способ интерпретировать результат. Это единственное место, в котором пригодятся нетривиальные возможности javascript.

Категория: Программирование

 

Всё по полочкам: веб-аналитика с Рамблер/топ-100, часть 1

Автор: admin от Вчера, 15:00, посмотрело: 19

Всё по полочкам: веб-аналитика с Рамблер/топ-100, часть 1

Часть первая, в которой мы рассказываем о перезапуске сервиса Рамблер/топ-100 и новом инструменте подробной иерархической аналитики «Разделы сайта».

Осенью 2016 года мы перезапустили Рамблер/топ-100 – сервис веб-аналитики и старейший каталог сайтов Рунета. С тех пор мы добавили еще несколько дополнительных возможностей, о которых хотим рассказать. Эту весну Топ-100 встретил под флагом тематической аналитики по российскому Интернету.

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

Принимаясь за работу над новой версией Топ-100, мы обратились за консультацией к нашим коллегам: аналитикам, маркетологам и менеджерам. Они, как целевая аудитория сервиса, своими предложениями и замечаниями помогли сделать Топ-100 полезней и лучше. Люди этих профессий – наши самые активные и требовательные пользователи, поэтому в состав требований к MVP (Minimum viable product) вошли два важных момента: сохранение всех возможностей прошлой версии сервиса и добавление инструментов, нужных для собственных аналитических задач RAMBLER&Co.

Категория: Программирование » Веб-разработка

 
Назад Вперед