Все мы знаем, что во время Второй мировой войны произошло большое количество битв за города. Будапешт, Вена, Берлин, наконец, а также менее крупные, такие как Бреслау или Познань. Мы часто связываем бои в городах с очень тяжелыми потерями, а после известных событий новогоднего штурма Грозного вообще стало казаться, что бои в городе – это какая-то ужасающая мясорубка для наступающей стороны. Разумеется, если бы все бои проходили с таким низким уровнем подготовки и организации, то и говорить было бы не о чем, однако во время Второй Мировой войны многое происходило по сильно другому сценарию. Давайте же рассмотрим этот вопрос подробнее. Причем рассмотрим мы не один узкий вопрос, а сразу несколько.
Strategy Design Pattern
Всем привет, друзья. Меня зовут Alex, я профессиональный разработчик и создатель программных продуктов в веб индустрии. Много лет изучаю языки, делюсь опытом с другими.
Сегодня хочу с вами поговорить про шаблон проектирования Стратегия (Strategy). Постараюсь донести до вас принципы и суть шаблона без воды, и покажу как его применять на практике.
Стратегия своими руками
Сила, воля, плюс характер — молодец!
В. Высоцкий
Никогда не писал статей для Хабра, даже комментариев. И на тематические порталы не выкладывал ничего лет 5.
Но недавно прочитал на Хабре материал об отсутствии стратегий у компаний и не смог пройти мимо — опросы под статьёй показывают, что проблема волнует многих. Решил поделиться своим опытом и объяснить, почему важно понимать не только куда идти, но и каким маршрутом. К тому же я имею отношение к стратегии самого Хабра (статью, на которую я откликаюсь, можно прочитать здесь).
Архитектура кода программного обеспечения: декорируем стратегией. Рассказ в 10 эпизодах, основанный на реальных событиях
Разработка корпоративных приложений со сложной бизнес-логикой всегда несет за собой немалые затраты. Причём львиная доля затрат приходится не на саму разработку, а на поддержку кода приложения: добавление нового функционала, поиск и исправление допущенных ошибок, рефакторинг и т.п. Мне как разработчику ПО всегда хотелось найти “серебряную пулю” для вопросов, возникающих при конструировании кода приложений, как написать потенциально сложное приложение, чтобы его было поддерживать как можно легче и дешевле. В этой статье хочу поделиться практическими знаниями о проектировании архитектуры кода программного обеспечения, полученными из опыта.
Краеугольный камень анализа. Часть 2
В этой части я раскрою путь для построения модели верхнего уровня.
Кейс: как digital-стратегия сломала отдел продаж производителю ограждений
Реклама продукта без проработанного плана равносильна лотерее или игре в рулетку: деньги отдали и параметры выбрали, но результатов не получили. Посетители в клиентов не конвертируются, повторных продаж мало, а конкуренция по запросам настолько высокая, что деньги с баланса улетают моментально.
Wild Horizon. А вы точно издатель?
Поиски издателя. Ищем, ищем, но только набиваем шишки.
Стратегия тестирования REST API: что именно вам нужно тестировать?
Слой API любого приложения - один из важнейших программных компонентов системы. Это канал, который соединяет клиента с сервером (или один микросервис с другим), управляет бизнес-процессами и представляет сервисы, которые приносят пользу пользователям.
Общедоступный API, ориентированный на клиента, который делают открытым для конечных пользователей, сам по себе становится продуктом. Если он сломается, это подвергнет риску не только одно приложение, но и целую цепочку бизнес-процессов, построенных вокруг него.
Становится понятно, что важность тестирования API очевидна. Некоторые методологии и ресурсы помогают нам узнать КАК тестировать API - вы можете использовать ручное тестирование, автоматическое тестирование, тестовые среды, инструменты, библиотеки и фреймворки. Однако, независимо от того, чем вы будете пользоваться - Postman, supertest, pytest, JMeter, mocha, Jasmine, RestAssured или любыми другими инструментами - прежде чем открывать любой инструмент тестирования, вам необходимо определить, что тестировать...
Применение ООП на практике
Чаще всего задачу можно решить интуитивно понятным процедурным способом. Однако самый простой вариант не всегда самый лучший. Предлагаю посмотреть на примере реальной задачи, как можно сделать решение объектно-ориентированным, и какую пользу это может принести.
Яндекс.Директ. Общие рекомендации по стратегиям в зависимости от рекламных бюджетов
Для многих затраты на рекламу – это расходы, не укладывающиеся в логику высокого начальства (читай – вторичны), соответственно – не то, что приносит прибыль и обеспечивает работой сотрудников и уж точно не то, что дает компании надежду на стабильное будущее. Такое начальство витает в облаках и не хочет или не может видеть очевидных, на первый взгляд, вещей.
Реклама в эпоху жесточайшей конкуренции – это то, без чего развитие любой коммерческой организации попросту невозможно.
Рекламные стартапы объединяются для отпора Google и Microsoft
Гориллы Google и Microsoft продолжают создавать, и внедрять, новые технологии в рекламу с присущей им скоростью, продавая самих себя в собственных супермаркетах. Агенства, бренды, строго говоря — все, идут к ним за размещением собственных рекламных предложений. Удивительно? Едва ли.
Но, как это обычно бывает, группа компаний учредила консорциум для сопротивления подобной консолидации. А так же для того, чтобы делиться информацией между собой, выработать и принять нормы и стандартные процедуры для сотрудничества как с клиентами, так и друг с другом.
Давайте попытаемся прагматично обсудить ситуацию с Nokia и MS
В этом топике хочу рассмотреть внешние и и внутренние факторы так или иначе связанны с объявленным партнерством. Сразу хочу оговориться что, я не пытаюсь стать правдой в первой инстанции. Лишь хочу обсудить всю ситуацию с объективной точки зрения. Меня интересуют два основных вопроса: новая маркетинговая стратегия и сравнение WP7 и его основного конкурента Android. Возможно ответ на них я найду в комментариях. Под катом много букв
Направо пойдешь — коня потеряешь, налево пойдешь…
Я размышлял о последних тактических действиях Twitter'а на поле собственного API и отношениях с Ubermedia и TweetDeck, в течение нескольких месяцев до сегодняшнего момента, и ничего не складывается в целостную картину. Мне кажется, что стратегия компании может увести ее дорогой, заканчивающейся тем, что самое большое потенциальное достижение будет упущено.
Если Twitter так и продолжит идти дорогой медиа-компании, без включения в план развития собственный же API, это может привести не только к тому, что большая часть экосистемы просто уйдет в другое место. В первую очередь, это лишит компанию отличной возможности заработать на инфраструктуре. А такого рода ошибки, как мы знаем, могут закончится тем, что бизнес просто перестанет существовать.
В конце концов, Кремниевая Долина, буквально, засыпана обгорелыми останками кораблекрушения некогда великих медиа-компаний, которые провалились в создании и поддержании «third-party» экосистемы: AOL, Friendster, MySpace, Yahoo – это лишь некоторые. Очень сложно поддерживать лидерство в качестве онлайн медиа-компании без экосистемы сторонних приложений, ускоряющих распространение технологии, инновацию как таковую, и увеличивающих время ее использования.
Ось зла: что на самом деле имел в виду Джордж Буш-младший или звёздные войны в мире ИТ – «второе пришествие Apple»
9 наиболее важных пунктов при продаже
Как только я начинаю строить бизнес, я хочу его продать. Я уже продал 4 компании и инвестировал деньги в десятки других, которые находятся на разных этапах продажи. Это не очень благородно, скорее наоборот, но каждый строит такое выражение лица, как будто он на первом свидании. Однако позже, в процессе этих свиданий, вы начинаете понимать кто будет бить своих детей, а кто нет. Поэтому очень важно всегда держать в голове следующие девять пунктов и следить за процессом, чтобы вас не избили вместе с вашим чадом, или, что еще хуже, убили или лишили вашего детища.
Говоря «процесс» я имею ввиду абсолютно все, что вам нужно сделать с момента основания собственного бизнеса до того момента, когда вы получаете наличные за свою долю в нем. Любые действия стремятся именно к этому финальному моменту.
1. Готовьтесь за год вперед. Основательно готовьтесь ко встрече с каждым, кому вы хотите продать свой бизнес. Начинайте разговаривать с ними уже сейчас. Первая компания которую я продал (в 1998) начала вести переговоры со всеми рекламными агентствами за год до фактической продажи. Я не был готов (всмысле, я бы продал ее сразу, но она была слишком мала), поэтому я держал каждого потенциального покупателя в курсе ежемесячными рассылками. И завтраками или обедами каждые три месяца, просто для того чтобы рассказывать новости о бизнесе, в общем. К тому моменту, когда я был окончательно готов продать компанию, мы получили 4 или 5 срочных предложений. Наконец, мы продали ее компании, с которой я даже не контактировал ранее, но она слышала о нас потому что все остальные обсуждали это.
Стратегия восстановления поврежденной таблицы в MySQL
Исходные данные:
- имеем сервер БД с MySQL на борту;
- поврежденную таблицу логов(статистики) чего угодно, что постоянно заполняется и может например не использоваться какое-то время;
- суточный бекап;
- бинарные логи с последнего суточного(полного) бекапа.
Задача:
- сервер должен быть доступен для работы;
- новые данные должны попадать в таблицу;
- восстановить целостность данных.
Ожидаемый результат:
данные в поврежденной таблицы восстановлены без останова базы дынных;
таблица содержит все данные включая текущие.
Империя на ухабах
Прошло всего несколько лет с того момента, как Cisco расширяла свой бизнес в новые рынки, сжигая миллиарды долларов на слияниях и поглощениях, съев такие компании, как WebEx, Tandberg и Flip. Теперь движение резко сменило направление — что же случилось?
Слишком большой успех
Нынешнее положение Cisco — это классическая история, когда кто-то становится жертвой собственного успеха. В момент апогея пузыря дот-комов, Cisco по капитализации обошла Microsoft и стала самой дорогой компанией в мире. В конце-концов, это неудивительно, ведь Cisco продавала оборудование, за счет которого существовала всемирная сеть. Некоторый успех был достигнут и в области корпоративных VOIP продуктов, куда расширяла свое влияние компания, но к этой теме мы вернемся снова чуть ниже.
Взрыв пузыря сказался и на бизнесе Cisco. Всего через год после того, как капитализация компании превысила оную Microsoft, Cisco уволила 11% собственной рабочей силы. Проблема была двухсторонняя: во-первых, компания владела почти целым рынком, поэтому если рынок начинал падать, то же самое происходило и с Cisco; во-вторых, инвесторы хотели роста, а рынок корпоративного сетевого железа казался уже огромным, фактически — он вырос до максимальных размеров. По случаю, в марте 2007, Cisco прикупила WebEx и тогда же появилось первое сообщение о том, что гигант уже владеет долей от 70% до 90% на рынке свитчей и роутеров, но инвесторам, как это часто бывает, было мало и они требовали еще большего роста.
Простая стратегия игры 2048
Студентам физфака тоже было весело, поэтому мы придумали простую эвристическую выигрышную (по крайней мере, нам удалось набрать 2048 в 9 из 10 раз) стратегию этой игры.
Занумеруем идущие подряд столбцы (можно и строки, но в дальнейшем я буду говорить о столбцах) от 1 до 4 (последовательно слева направо или справа налево). Основополагающим принципом стратегии является расположение чисел, при котором мы полностью заполняем 1ый столбец наибольшими доступными числами. При этом, во 2ом столбце числа в среднем меньше, чем в 1ом, а в 3ем меньше, чем во 2ом. Причем, только на последних этапах игры в 3ем столбце возможно появление чисел среднего номинала (где-то до 32).
Из этого принципа следует, что при выборе хода предпочтение мы должны отдать такому, который увеличивает числа первых столбцов. Таким образом, мы всегда сохраняем градиент заполнения чисел и соответственно не отклоняемся от вышеизложенного принципа.
Например, используя в качестве 1ого столбца левый, мы никогда не будем использовать клавишу →, чтобы не отклоняться от принципа.
Существенный тонкий нюанс: при заполнении выбранных столбцов нужно избегать ситуации, когда новое появившееся число может полностью заполнить столбец так, что нам придется сделать ход →, что полностью сведет на нет возможность продолжать играть по нашей стратегии.
Для наглядности прилагается картинка и видео:
Как Минковский во Flappy Bird играл
Многие пробовали играть во Flappy Bird. Редко кому удается пролететь за 50 труб, очень немногие долетают до сотни-двух. Некоторые пробовали создать бота, в том числе на хабре. Удивительно, но даже у самого успешного бота, которого можно найти на просторах интернета, результаты не очень-то впечатляют – что-то около 160 очков. Возникает вопрос, а можно ли вообще играть во Flappy Bird бесконечно долго? Или всегда с некоторой, пусть и небольшой, вероятностью может встретиться последовательность препятствий, которую даже опытный игрок/идеальный бот не сможет преодолеть?
И тут на помощь приходит математика. Давайте найдем выигрышную стратегию для Flappy Bird.
Динамика развития ситуации: как все было в 2008 году
Как и обещали вчера в статье «Загрузка: система, экспорт проблем вниз, кризис и стратегия поведения», продолжаем разговор.
Вчера мы рассказали о том какие, с нашей точки зрения, модели поведения свойственны в кризисных ситуациях бизнесу и государству. А еще, хочется выделить это отдельно и повторить: нас с вами, это касается в первую очередь.
Сотрудники интеллектуального труда (как определили всех ИТ-шников и инженеров товарищи Питер Друкер и Филипп Котлер) и представители стремящегося к нулю по количеству народонаселения среднего класса — цель номер 1 для всех, в руках у кого рычаги информационного воздействия: деньги есть, работать умеем и можем, осталось вырубить возможность адекватно анализировать ситуацию и можно и дальше “впаривать кредиты” и “формировать точку зрения”.
Мировой кризис!!111 А-а-а-а-а! Всё пропало! Надо срочно менять рубли и гривны на доллары. Закупать гречку, соль, спички и буржуйку. Не время, не время сейчас думать о чем-то еще, когда в мире господствуют геополитические войны, лихорадка Эбола и ИГИЛ! При этом, как-то всегда стороной обходится такая простая мысль, что:
Моделируемый кризис мировой экономики — не означает автоматически кризис каждого конкретного человека