» Материалы за Февраль 2017 года » Страница 3

 

«Мочим» объекты с помощью Cuckoo

Автор: admin от 28-02-2017, 11:25, посмотрело: 167

«Мочим» объекты с помощью Cuckoo

Пост написан по мотивам статьи Mocking in Swift with Cuckoo by Godfrey Nolan


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


Документация


Прочитав документацию на гитхабе мне, к сожалению, не удалось "завести" Cuckoo в моем проекте. Через CocoaPods этот фреймворк был установлен, но вот с Run-скриптом возникли проблемы: предложенный пример не создавал файл GeneratedMocks.swift в папке с тестами, и я бы и не разобрался почему, если бы не нашел через гугл статью, которую упомянул в начале поста.


Итак, пройдем все этапы вместе и...

Категория: Веб-разработка, Game Development, iOS

 

Zabbix: LLD-мониторинг железа под Windows на PowerShell

Автор: admin от 28-02-2017, 11:25, посмотрело: 615

Пришло время и мне собрать свой велосипед для мониторинга физического состояния Windows-железок. Готового решения или хоть более или менее работающего найти не удавалось с момента моего знакомства с Zabbix, а это более 3 лет. А тем более, чтобы оно было… элегантно что ли. Лично мне даже в таких вещах хочется видеть стройность и максимальную функциональность. Именно поэтому далее рассматривается только LLD и PowerShell. Ну и конечно же только бесплатное ПО.

Итак, мониторинг чего будет производиться:

  • S.M.A.R.T. дисков (информация, общее состояние и отдельные показатели)

  • Температуры, напряжение, обороты кулеров (на ваш выбор)


А выглядеть это все будет примерно так:

Zabbix: LLD-мониторинг железа под Windows на PowerShell

Категория: Системное администрирование, Windows

 

Настройка репликации между PostgreSQL и PipelineDB

Автор: admin от 28-02-2017, 10:35, посмотрело: 222

Данная статья может быть интересна тем, кто уже имеет поверхностное представление о видах и проблематике репликации внутри кластера PostgreSQL, а так же тем, кто решил использовать стриминговую СУБД PipelineDB в качестве реплики в подобном кластере.

PipelineDB — одна из реализаций ныне набирающих популярность стриминговых СУБД. О преимуществах стриминговых СУБД в различных кейсах Вы можете без труда прочитать сегодня на множестве ресурсов. Очень просто принцип их работы визуализирован на сайте www.pipelinedb.com в разделе “How It Works”.

Конкретно PipelineDB это форк PostgreSQL с дополнительной функциональностью, позволяющей хранить только агрегированные данные, рассчитывая дельту из поступающего стрима (отсюда и название этого типа СУБД) на лету. Эти данные хранятся в специальных объектах PipelineDB, называемых continuous views. Сам же стрим в простейшем случае формируется из обычных таблиц, хранимых в этой же БД. Использование данного инструмента позволяет нам избавиться от необходимости создания и поддержки ETL-слоя при подготовке данных для систем отчетности, и может сэкономить Вам кучу времени и нервов. Но я полагаю, что раз Вы это читаете, то Вы уже что-то знаете об этом в объеме достаточном для появления интереса к описываемым здесь событиям.

Мы рассмотрим кейс, в котором на продуктовой среде у нас уже работает СУБД PostgreSQL версии 9.4+, а нам нужно получить ее риалтайм (ну или практически риалтайм) реплику для того, чтобы разгрузить основную базу от множественных и тяжелых SELECT-запросов, получаемых от, например, систем отчетности, DWH или наших витрин данных. И после изучения вопроса Вы можете решить, что именно стриминговая СУБД очень хорошо подходит для такой задачи.

Категория: Админитстрирование » Системное администрирование

 

Третья конференция JavaScript-разработчиков в Одессе «JS Lab» ищет спикеров

Автор: admin от 28-02-2017, 09:10, посмотрело: 557

Третья конференция JavaScript-разработчиков в Одессе «JS Lab» ищет спикеров

Хабр, привет! 25 марта в Одессе я буду проводить ежегодную конференцию javascript-разработчиков — JS Lab. Сейчас мы запустили обновленный сайт и я занимаюсь формированием программы. В ближайшие дни на сайт мы добавим первых спикеров, а если вы хотите стать одним из них, пишите мне на почту (d.spodarets@flyelephant.net) или заполняйте форму здесь.

В отличие от прошлых лет, в этом году, мы отбираем 2 типа докладов — 12 докладов по 45 мин и 8 блиц-докладов по 10 мин. Традиционно будет два потока.

Следите за новостями в фейсбуке. https://habrahabr.ru/post/322748/?utm_source=habrahabr&utm_medium=rss&utm_campaign=interesting#habracut

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

 

Трансляция запросов в SQL с использованием LinqToSql в тестах

Автор: admin от 28-02-2017, 08:15, посмотрело: 182

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

В продукте примерно 700 000 строк кода со всеми кастомизациями, и на это всё мы имеем около 7 000 тестов, и их количество постоянно растёт. За счет них мы не боимся совершать большие рефакторинги, затрагивающие многие части системы. Но, к сожалению, тесты не панацея. Каких-то тестов может не быть, какие-то тесты могут оказаться слишком дорогими, а какие-то ситуации не воспроизводятся в тестовой среде.

Практически каждая транзакция в нашей системе связана с работой с MS SQL с использованием LinqToSql. Да, технология старенькая, но мигрировать с неё нам довольно сложно, и по бизнесу она нас вполне устраивает. Более того, как я уже писал раньше, у нас даже есть свой форк LinqToSql, где мы чуть-чуть чиним его баги и добавляем кое-какой функциональности.

Для того, чтобы делать запросы к БД, используя LinqToSql, нужно использовать интерфейс IQueryable. В момент получения Enumerator’а или выполнения Execute у QueryProvider’а построенное дерево выражений с помощью Extension-методов к IQueryable транслируется в SQL, который и выполняется на SQL Server.

Так как наша бизнес-логика сильно завязана на сущностях в базе данных, наши тесты много работают с базой данных. Однако в 95% тестов мы не используем реальную базу, так как это очень дорого по времени, а довольствуемся InMemoryDatabase. Она является частью нашей тестовой инфраструктуры, о которой можно написать отдельную статью, и на самом деле представляет из себя просто Dictionary для каждого существующего типа сущности. В тестах наш UnitOfWork прозрачно работает с такой базой, давая доступ к EnumerableQueryable, который просто получить из любого IEnumerable, вызвав у него AsQueryable().

Покажу пример теста для понимания происходящего:

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

 

Практики Continuous Delivery с Docker (обзор и видео)

Автор: admin от 28-02-2017, 08:15, посмотрело: 208

Свой блог мы начнём с публикаций, созданных по мотивам последних выступлений нашего технического директора distol (Дмитрия Столярова). Все они состоялись в 2016 году на различных профессиональных мероприятиях и были посвящены теме DevOps и Docker. Одно видео, со встречи Docker Moscow в офисе Badoo, мы уже публиковали на сайте. Новые будут сопровождаться статьями, передающими суть докладов. Итак…

31 мая на конференции RootConf 2016, проходившей в рамках фестиваля «Российские интернет-технологии» (РИТ++ 2016), секция «Непрерывное развертывание и деплой» открылась докладом «Лучшие практики Continuous Delivery с Docker». В нём были обобщены и систематизированы лучшие практики построения процесса Continuous Delivery (CD) с использованием Docker и других Open Source-продуктов. С этими решениями мы работаем в production, что позволяет опираться на практический опыт.

Практики Continuous Delivery с Docker (обзор и видео)

Если у вас есть возможность потратить час на видео с докладом, рекомендуем посмотреть его полностью. В ином случае — ниже представлена основная выжимка в текстовом виде.

Категория: Программирование, Системное администрирование

 

Зарубежные сервисы GPS мониторинга (часть 2)

Автор: admin от 28-02-2017, 08:10, посмотрело: 203

Зарубежные сервисы GPS мониторинга (часть 2)

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

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

 

Вышла новая версия Panda Systems Management

Автор: admin от 28-02-2017, 08:10, посмотрело: 207

Вышла новая версия Panda Systems Management

В феврале 2017 года вышла новая версия комплексного RMM-решения Panda Systems Management для централизованного и удаленного управления, контроля и обслуживания корпоративных сетей, устройств и ИТ-инфраструктуры. Представляем улучшения, реализованные в новой версии.

Категория: Системное администрирование, Сетевые технологии

 

EMC DPO: Как защитить свои товары от подделок

Автор: admin от 28-02-2017, 08:05, посмотрело: 216

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

Знакомо? Что делать и кто виноват?
Доверие к производителю часов у вас начинает резко падать.
А разве виноват произоводитель часов, что его продукцию подделывают? Спорный вопрос, мне кажется. Так или иначе, очевидно, что контрафакт причиняет огромные репутационные потери и убытки легальным производителям.

Решением может быть использование продукта EMC DPO и блокчейна Emercoin.

Категория: Веб-разработка, Linux, Ubuntu, Криптография

 

10 грехов в системах навигации сайтов / приложений

Автор: admin от 27-02-2017, 18:40, посмотрело: 196

Новый формат статьи: без текста, только схемы. Надеюсь, нарисовал понятно.

10 грехов в системах навигации сайтов / приложений

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