Pull to refresh
1
Олег Сорока @oleg40aread⁠-⁠only

User

Send message

Знакомство с NDepend

Reading time4 min
Views9.3K
Проблема связанности в архитектуре приложений в последнее время получила очень много огласки, и породила большое количество фреймворков DI-характера и приложений для статического разбора и «умного рефакторинга». Об одном таком приложении под названием NDepend я и хочу рассказать.

Читать дальше →

Компьютер сгенерировал эффективные, но непонятные человеку алгоритмы ускорения TCP

Reading time2 min
Views118K
TCP (Transmission Control Protocol) — основной протокол интернета. Одна из его главных задач — бороться с перегрузками в сети (network congestion), когда возникают заторы из пакетов. Регулирование осуществляется путём взаимной подстройки скорости отправки запросов, причём для этого существует множество хитрых методов. Например, в Linux используется алгоритм под названием TCP Cubic, а под Windows — Compound TCP. Кроме них, существуют ещё TCP Tahoe, Reno, NewReno, Vegas, FAST, BIC и др.

Специалисты из Массачусетского технологического института разработали программу Remy, которая методом проб и ошибок пыталась улучшить существующие алгоритмы подавления заторов TCP. Результат превзошёл все ожидания. Эффективность алгоритмов RemyCC превзошла и TCP Cubic, и Compound TCP, и остальных «конкурентов» в различных сетевых условиях. Проблема только в том, что учёные не совсем понимают, за счёт чего именно Remy удалось показать такой феноменальный результат.


Читать дальше →

Как подписать свой первый скрипт за 48 часов

Reading time3 min
Views39K

Проблема


Когда задача, требующая решения, небольшая, совсем не хочется писать для её решения отдельную утилиту, особенно, если ты — .NET-программист.
Скрипт? Однозначно, да, но ставить на боевую машину под управлением Windows сторонний интерпретатор совсем уж не по-христиански. Так почему бы не воспользоваться Windows Powershell? Готов сразу честно признаться: практически никакого опыта с ним не было, но уж больно заманчиво выглядел.
Скрипт, решающий задачу, был готов через 15 минут, если не учесть одно «но». Скриптом пока назвать это было сложно, потому что это был набор инструкций, непригодный для выполнения в виде скрипта. Непригодный, с точки зрения PowerShell.
Читать дальше →

Инструменты DevOps-инженера: Librarian

Reading time4 min
Views12K
Данная статья предназначена для тех, кто использует или планирует начать использовать систему управления конфигурацией Opscode Chef.

Основная задача внедрения любой системы управления конфигурацией, будь то Chef, Puppet или что-то еще, — повторяемо воспроизводить и обновлять окружение всех сред, использующихся при разработке ПО (dev, CI, QA, stage, production). Отсюда следует, что само описание конфигурации необходимо однозначно хранить и обновлять. К сожалению, возможности по версионированию, которые есть в Chef, достаточно ограничены. Поэтому в связке с Chef в последнее время стали активно использовать Librarian. Но перед тем, как рассказать о нем, поговорим немного о кукбуках.
Читать дальше →

Цена сложности

Reading time3 min
Views29K
Мне всегда сложно было объяснить даже самому себе термин «технический долг». Никогда не было понятно, кто, кому, за что и сколько должен. И, если это долг, то как его выплачивать и можно ли выплатить полностью? А можно ли сделать так, чтобы должны были мне?
Читать дальше →

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

Reading time10 min
Views73K
Suck on my chocolate salty balls (c) ChefДавайте каждый попробует ответить на вопрос: как установить apache на сервер? Этот вопрос порождает ещё десяток: какая ОС стоит на сервере, какую версию ставить, где лежат конфиги по-умолчанию и т.д. и т.п.

А теперь давайте попробуем ответить на вопрос: как установить apache на 1000 серверов? Тут, при стандартном подходе, вопросов возникнет ровно в 1000 раз больше. Часть из вас наверняка подумали, что можно написать скрипт на shell/perl/python/ruby, который будет обходить все сервера и устанавливать apache, другая часть подумала о distributed shell'ах (PDsh, dsh, etc), кто-то же подумал монтировать rootfs серверов по NFS.

В ряде случаев выше предложенные варианты решений удовлетворительны, но на практике я нигде не видел полностью гомогенных систем (зачастую, внутри компании можно встретить не только разные версии ОС, но и различные дистрибутивы. Также в России/СНГ очень распространена каша из FreeBSD/Linux в ядре проектов), так что вряд ли за адекватное время будет возможно написать скрипт, который установит и настроит apache на зоопарке в 1000 машин под CentOS, Debian, Ubuntu, FreeBSD всевозможных версий.

По моим наблюдениям, очень мало IT подразделений, даже очень крупных компаниий, используют в своей работе SCM (Software Configuration Management). В этом посте я постараюсь описать все преимущества использования Chef в IT инфраструктуре на простых примерах и больших масштабах.

Если же, после столь короткого вступления, вы не прониклись идеей Chef, да и времени читать длинный технический пост у вас нет, то рекомендую вам пролистать до конца и посмотреть как используем Chef мы, Engine Yard, 37signals и подумать, можете ли вы переложить на него часть своей работы.
Читать дальше →

Порталы по трудоустройству: неожиданный маркетинговый инструмент

Reading time4 min
Views19K
Сегодня я решил поговорить о довольно нестандартной теме. Несколько раз в своей практике я сталкивался с тем, что порталы по поиску работы (HH, Superjob и другие) могут служить очень полезным инструментов в маркетинговой деятельности совсем не по прямому назначению – поиску работы или сотрудников.

Бесплатно (или совсем недорого) мы можем получить доступ к огромным базам данных по компаниям или людям, которые могут являться нашими потенциальными клиентами, подрядчиками, конкурентами. Что полезного можно извлечь из этих данных для себя? Попробую перечислить несколько приемов, которые могут оказаться полезными в работе.

Индекс упоминаемости вашего сервиса: резюме/вакансии


Если вы продвигаете на рынок какой-то стартап/сервис, который люди используют для рабочих процессов (особенно b2b), то одной из метрик, отражающих эффективность распространения вашего продукта, может быть количество упоминаний его в БД вакансий и резюме (за определенный период).

Требование (или пожелание) по знанию вашего продукта в описании вакансий – очень полезная метрика, которая показывает, насколько ваш продукт популярен среди вашей ЦА и какова его динамика. График количества таких упоминаний может служить одним из KPI маркетинга (хотя, конечно, и не основным).

То же самое и относится к упоминанию вашего сервиса в резюме сотрудников. Если ваш продукт настолько хорош, что соискатель указывает его в своей анкете – значит, владение им считается одним из конкурентных преимуществ. Эта метрика может служить хорошим KPI для продуктов, одни из элементов стратегии которых – продвижение сервисов «снизу», ориентация не только на лиц, принимающих решения, но и на рядовых сотрудников.
Читать дальше →

Как мы обеспечиваем отказоустойчивость работы инфраструктуры наших клиентов

Reading time4 min
Views18K
Добрый день, уважаемые Хабраюзеры.

В данном посте я хотел бы рассказать подробнее о том, как мы обеспечиваем отказоустойчивость работы инфраструктуры наших клиентов.
Для примера взят стандартный офис (ПК, IP-телефония, WiFi) с разбивкой на подсистемы: ClientCloud, ClientLan, ClientPhone, ClientWiFi
Подсистема ClientLan предназначена для организации доступа ПК к другим подсистемам.
Подсистема ClientPhone предназначена для организации доступа IP-телефонов к подсистеме ClientCloud (IP-АТС).
Подсистема ClientWiFi предназначена для организации гостевого доступа мобильного оборудования (ноутбуки, коммуникаторы, планшетные компьютеры) к сети Интернет.
Доступ с подсистемы ClientWiFi ко всем подсистемам (ClientCloud, ClientLan, ClientPhone) запрещен настройками коммутатора.



Читать дальше →

Насколько сложно изменить бизнес модель спустя 2 года? История перезапуска стартапа

Reading time3 min
Views5.1K


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

Тестирование проекта Ext.Js на Selenium

Reading time5 min
Views13K
Есть три вещи, которые можно делать бесконечно:
1. Наблюдать, как горит огонь
2. Наблюдать, как бежит вода
3. И наблюдать, как кто-то работает

В нашем случае, наблюдать за тем, как крутятся наши over 9000 тестов. Особенно красиво смотрятся Selenium тесты. Выглядит, как будто бешеный тушканчик с вечным двигателем внутри сел тестировать систему.

Не знаю как вас, но меня это затягивает:


Остаток статьи я расскажу маленькую success-story о том, как мы организовали наше тестирование на Selenium
Подробности

Введение в Windows Server AppFabric. Сервис Caching Services

Reading time7 min
Views15K

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

Принимая это во внимание, одним из способов улучшить платформу является предложение лучшей инфраструктуры приложений на ней. И именно это является целью Windows Server AppFabric. Предлагая набор расширений для Windows Server, Microsoft стремится упростить для разработчиков создание быстрых, более масштабируемых и более управляемых приложений.

Первый выпуск Windows Server AppFabric содержит две части (сегодня доступна версия 1.1 со множеством нововведений. — Прим. пер.):
  • Сервис AppFabric Caching Services, который позволяет ускорить доступ к часто используемым данным приложений
  • Сервис AppFabric Hosting Services, который позволяет упросить запуск и управление сервисами созданными на базе WCF и особенно созданными на базе Windows Workflow Foundation

Windows Server AppFabric предлагает расширения для роли Application Server и эти расширения бесплатны для использования вместе или раздельно. В этом введении рассматриваются обе части AppFabric.
Читать дальше →

8 фактов, которые вы, возможно, не знали о C#

Reading time7 min
Views195K
Вот несколько необычных фактов о языке C#, о которых знают лишь немногие разработчики.

1. Индексаторы могут использовать params параметры


Мы все знаем, как обычно выглядят индексаторы x = something["a"], а так же код необходимый для его реализации:

public string this[string key]
 {
   get { return internalDictionary[key]; }
 }

Но знали ли вы, что для доступа к элементам вы можете использовать params параметры x = something["a", "b", "c", "d"]?
Просто напишите ваш индексатор следующим образом:
Читать дальше →

Как работают браузеры: принципы работы современных веб-браузеров

Reading time2 min
Views190K
Просматривая одно из обучающих видео "Школы разработки интерфейсов" Яндекса, наткнулся на ссылку на офигенный труд израильской веб-программистки Тали Гарсиэль (Tali Garsiel) "How browsers work" (Как работают браузеры).

Она в течение нескольких лет отслеживала всю издаваемую информацию о внутреннем устройстве браузеров, изучала исходный код WebKit и Gecko и, в конце концов, собрала все воедино. Вот что пишет сама Тали:
Когда на 90% компьютеров был установлен IE, приходилось мириться с тем, что это загадочный «черный ящик», однако теперь, когда более половины пользователей выбирает браузеры с открытым исходным кодом, пришло время разобраться, что скрывается у них внутри, в миллионах строк программного кода на C++...
Пролистав, я был поражен — отличная работа. Внутреннее устройство браузеров, алгоритмы разбора — все хорошо иллюстрировано, доступно и понятно. И без излишних подробностей, страниц на 30-40. Как раз то, что нужно. Решил — это надо обязательно перевести. Покопался еще немного — оказалось перевод уже как 1,5 года есть!

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

Под катом содержание перевода, чтобы решить стоит ли читать.
Читать дальше →

Bare-Metal Deployment — или как обеспечивается эластичность облака в System Center 2012 SP1 Virtual Machine Manager

Reading time6 min
Views15K
Всем огненного понедельника, коллеги и энтузиасты!

Сегодня, 29 апреля, понедельник — до праздников осталось совсем немного — и почему бы немного не пополнить багаж знаний перед долгожданным отдыхом (ну в формате лайт — без жестких и заумных нравоучений). На этот раз хотелось бы немного поговорить про то, как устроена функции Bare-Metal развертывания гипервизоров на сервера — или, другими словами — как обеспечить автоматизацию эластичности вашего частного облака на базе System Center 2012 SP1.



Более подробно под катом.

Читать дальше →

«А что если», Event Sourcing

Reading time4 min
Views71K
Наверное, про Event Sourcing слышал каждый, кто хоть раз пересекался с темой CQRS и DDD. Это подход хранения данных, при котором вместо конечного результата храниться череда записей о событиях происшедших с некоторой сущностью. На сайте Мартина Фаулера есть подробное описание, а мы же остановимся на фундаменте, основных «печенюшках», а также проблемах в его применении.
Читать дальше →

Как провести двухдневную онлайн-конференцию для разработчиков за $10?

Reading time7 min
Views12K
DotNetConf Logo

Мы только что завершили проведение конференции DotNetConf – нашей онлайн конференции сообщества разработчиков, которые любит платформу .NET и открытые проекты.

Все доклады конференции уже доступны по ссылке на официальном сайте.

Платформа конференции


Довольно забавно называть “платформой” наше ПО, на котором работала конференция, это звучит слишком “энтерпрайзно” и официально. В прошлом мы провели конференции aspConf и mvcConf с помощью спонсоров, которые оплачивали необходимые расходы. Мы использовали мощности Channel 9, студию и вещали видео из Сиэтла или через Live Meeting.

Однако, в этом году нам захотелось провести конференцию как можно проще, дешевле и более распределенно. Мы хотели пригласить спикеров из любой временной зоны. Насколько это было дешево? Примерно в $10. Точный счет будет подсчитан позднее, нам просто хотелось поднять мощности, провести мероприятие и затем отказаться от полученных ресурсов.
Читать дальше →

Летающий телефон — 2. Стэдикам для телефона

Reading time9 min
Views96K
Прошло достаточно много времени с момента написания статьи “Летающий телефон”. Поэтому, пора заглянуть вдаль и вновь немного полетать на телефоне и модернизированном дроне, а также пореже искать на телефоне.



Первоначально собирался написать статью о последних разработках, но на горизонте появился Внимание! Конкурс! про 920-ю модель. Так как именно эта модель участвовала во всех съемках, то решил написать о результатах работы встроенной камеры и выводы из небольшого опыта эксплуатации в конкурсной статье. Подготовил ее с уклоном в сторону телефона и 12 апреля в 2:00 отправил на премодерацию. Но в день Космонавтики она не появилась, также как и на следующий день тоже. Оказалось, я не один такой. Организатор конкурса на вопрос о сроках премодерации не ответил. Замечания по статье тоже не получил — никакой обратной связи. По правилам конкурса, заявки можно подавать до 20 апреля включительно, с 21 апреля начинается определение победителей. Значит, в любом случае, предмодерация не может продолжаться более суток, тем более, количество статей, участвующих в конкурсе невелико.
После 48 часов ожидания можно сделать вывод, что статья не прошла премодерацию. Желающие ознакомиться с конкурсным вариантом могут сделать это в этом документе, а немного переделанная статья, где убраны выводы про телефон, предлагается вниманию.


Наблюдательные люди наверняка обратили внимание на наличие всеми любимой синей изоленты на корпусе телефона и это неспроста.
Читать дальше →

Альфа-версия SyncApp от BitTorrent будет доступна для публичного использования к концу апреля

Reading time1 min
Views7.8K
Небольшое вступление для тех, кто еще не знает: SyncApp от BitTorrent — это система синхронизации данных между разными компьютерами. В отличие от DropBox и других аналогов, у нее отсутствует серверная часть, что позволяет вам полностью контролировать приватность ваших данных. Для передачи данных используется протокол BitTorrent.

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

Перевод текста письма под катом.
Читать дальше →

Как мы делали Яндекс.Диск: серверная сторона, WebDAV и Erlang

Reading time5 min
Views51K
На прошлой неделе Яндекс.Диску исполнился год, и за этот год сервисом успели воспользоваться уже больше 8 000 000 пользователей.

А сейчас мы продолжаем рассказывать о том, сколько усилий понадобилось, чтобы всё это стало возможным. Недавно мы писали о том, как и почему команда Яндекс.Диска выбрала WebDAV для синхронизации десктоп-клиентов с сервером и начала работу над прототипом клиента Яндекс.Диска. Сегодня, как и обещали, — о том, как всё работает с серверной стороны.

Диск спасает файлы — не Шойгу

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

Аудит Active Directory средствами Powershell с оповещением об изменениях. Часть 1

Reading time7 min
Views61K

Начну серию публикаций по мониторингу Active Directory.
В данных статьях я приведу самые основные проблемы и пути их решения. На основе этих данных функционал легко расширяется до тех требований, которые Вам необходимы.
Учитывая, что сейчас для всех ОС, начиная с Windows Server 2003 R2 и Windows XP SP3 доступен Powershell. Думаю, что данная статья окажется полезным подспорьем, т.к. не требует от администратора введения никаких дополнительных средств, т.е. по сути – мониторинг штатными средствами.
Читать дальше →

Information

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

Specialization

Chief information officer (CIO)
Lead