Добрый день, хотелось бы поделиться своим опытом. Я руководитель небольшого стартапа, в прошлом программист. Хотел бы рассказать о моем пути становления руководителем проекта(который продолжается конечно же), о проблемах с которыми пришлось столкнуться, ошибках, и позитивных моментах. Кому эта тема еще не набила оскомину — прошу под кат.
Михаил Евгеньевич @Kefir
User
Microsoft Moles Isolation Framework, копаем глубже
15 min
3.3KКак вы поняли из названия, речь пойдет о продукте от Microsoft Research – Microsoft Moles Isolation Framework. Я познакомился с ним впервые после прочтения поста хабраюзера alek_sys. Моль мне настолько понравилась, что я решил поделиться своим опытом её использования.
Для начала попробуем определиться, для каких целей предназначена Microsoft.Moles и чего мы можем с ней добиться:
Зачем?
Для начала попробуем определиться, для каких целей предназначена Microsoft.Moles и чего мы можем с ней добиться:
- Полная изоляция тестируемой логики от внешнего окружения.
- Возможность быстрого и просто создания юнит-тестов, при чём тестирование логики класса становится возможным даже при отсутсвии реализации классов, пользователем которых является тестируемый класс.
- Становится просто организовать наборы тестовых данных или моделировать состояние связанных обьектов для создания тестовых условий
- В разы сокращается время выполнения юнит-тестов, становится реальным частый запуск тестов
- Нарушение логики юнита не влечет за собой падение сотни-другой не предназначенных для его тестирования тестов
- Удобное тестирование методов со сложным workflow
+28
Генерирование изображений-заглушек
3 min
56KСегодня мне кинули ссылку на прикольный сервис для быстрого генерирования изображений-заглушек. Может пригодиться для html-верстки. На мой взгляд, это удобно тем, кто и так использует заглушки — экономит время при вёрстке, т.к. сами заглушки уже готовы. Можно цвета/размеры подбирать, меняя только числа/буквы в коде, не отвлекаясь на сам файл картинки — и сразу видеть эффект. И сами размеры видеть написанными, если нужно, чтоб к коду не возвращаться для проверки. Или вместо размеров можно текст добавить, чтоб всегда знать, для чего эта заглушка (типа «Бан(н)ер» или там «Лого», или «Фотография»).
На сервисе не нужна регистрация — и вообще на сайт можно не заходить, чтобы его использовать. Пишете сразу у себя в коде, например:
Update. Благодаря усилиям k0rv1n, найден вариант этого сервиса, только лучше :)
Во-первых, там поддерживается кириллица. Во-вторых, там даны ссылки на исходники для разных языков.
Автор dummyimage.com — тот же Russell Heimlich, что и у placehold.it. У placehold.it есть ещё один автор, но будем считать, что он делал дизайн (дизайн там правда круче, но видимо как раз из-за понтового шрифта Unicode и не выходил).
Примеры (см. под хабракатом) я поменял с placehold.it на dummyimage.com, раз уж он функциональнее…
На сервисе не нужна регистрация — и вообще на сайт можно не заходить, чтобы его использовать. Пишете сразу у себя в коде, например:
<img src="http://placehold.it/350x50" />и получаете:
Update. Благодаря усилиям k0rv1n, найден вариант этого сервиса, только лучше :)
Во-первых, там поддерживается кириллица. Во-вторых, там даны ссылки на исходники для разных языков.
Автор dummyimage.com — тот же Russell Heimlich, что и у placehold.it. У placehold.it есть ещё один автор, но будем считать, что он делал дизайн (дизайн там правда круче, но видимо как раз из-за понтового шрифта Unicode и не выходил).
Примеры (см. под хабракатом) я поменял с placehold.it на dummyimage.com, раз уж он функциональнее…
+265
Двухколоночная верстка текста
2 min
8.1KДанный топик — это не изложение азов на тему «Как сделать на своей странице две колонки с использованием div'ов и css». Передо мной стояла задача разбить монолитный текст на две колонки, подобно тому, как это делает MS Word. Стандартного тэга в css для этого не существует, поэтому пришлось немного потанцевать с бубном для решения поставленной задачи.
Ширина колонки с текстом очень сильно влияет на простоту восприятия информации пользователем. И поэтому, учитывая нынешнюю популярность широкоформатных мониторов, разбивка текста на колонки существенно увеличивает его «читабельность».
+36
Автоматизация сборки web-приложения на платформе .NET
7 min
8.5KДобрый день!
Я попробовал описать здесь свой опыт автоматизации сборки приложений .NET (в основном, речь идет о web-приложениях).
Т.к. получилось много букв пришлось разбить статью две на части. Сейчас выкладываю первую часть, если это будет нужно кому-то, выложу остальное. Не пинайте сильно.
+29
Целебное зелье для IE5+ или IE7.js
2 min
7.1KРазбирая код очередного проекта внутри тега
Только одно слово «IE9» меня пустило в замешательство. Первое что пришло мне в голову — это то, что при помощи этого .js кода браузеры под печальным клеймом Internet Explorer можно заставить работать используя свойства многообещающего IE9. Больше всего я ожидал что будут доступны свойства CSS3.0, но не тут-то было!
head
наткнулся на интересный код:<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta3)/IE9.js"></script>
<![endif]-->
Только одно слово «IE9» меня пустило в замешательство. Первое что пришло мне в голову — это то, что при помощи этого .js кода браузеры под печальным клеймом Internet Explorer можно заставить работать используя свойства многообещающего IE9. Больше всего я ожидал что будут доступны свойства CSS3.0, но не тут-то было!
+91
WebSocket & ASP.NET
8 min
13KВ этом топике я хочу рассказать, как организовать WebSocket соединение между браузером, поддерживающим WebSocket и ASP.NET приложением.
В статье описано, как организовать подключение и отослать сообщение подключенному клиенту. Так же, в конце статьи, есть ссылка на исходники рабочего приложения.
Статья и приложение просто пример того, как это все работает, и как можно связать ASP.NET и WebSockets, и вряд ли претендует на руководство по внедрению в текущем виде, однако хорошо демонстрирует основы и может быть доработано.
В статье описано, как организовать подключение и отослать сообщение подключенному клиенту. Так же, в конце статьи, есть ссылка на исходники рабочего приложения.
Статья и приложение просто пример того, как это все работает, и как можно связать ASP.NET и WebSockets, и вряд ли претендует на руководство по внедрению в текущем виде, однако хорошо демонстрирует основы и может быть доработано.
+27
Технологии виртуализации в менеджменте
7 min
6.5KКак правило, при создании или запуске нового продукта, стараются сперва провести его тестирование в условиях, близких к боевым. Так в работе системного администратора вместо развёртывания какой-либо системы на работающем сервере, вначале происходит обкатка на тестовом стенде, где выясняются особенности и нюансы работы системы, а также возможные варианты отката в первоначальное состояние. Но подобный вариант практически неосуществим, когда речь заходит об управлении бизнесом. Едва ли кто-то будет тратить деньги на создание предприятия, чтобы научится управлять таким тестовым предприятием, а потом, выяснив возможные проблемы, создавать предприятие, которое будет работать без сбоев. Да и времени это займёт на порядки больше, чем поднять тестовый сервер.
Однако первоначальный опыт и навыки управления компанией приобретать где-то нужно, причем желательно, чтобы без плачевных последствий. Одним из таких вариантов, так сказать, для «тренировки на кошках» является использование какого-либо бизнес симулятора. В данном топике хотелось бы кратко рассказать об одном из самых популярных бизнес симуляторов — симулятор на проекте Global Management Challenge, в котором нам удалось поучаствовать.
«Программа действий сопряжена с рисками и затратами, но они гораздо меньше долгосрочных рисков и затрат, к которым может привести удобное бездействие»
+21
Как выучить любой язык за 3 месяца?
6 min
99KПеревод статьи Тима Ферриса из его блога.
(Учебник Дзюдо Окано Исао, который я использовал для изучения японской грамматики)
Изучение языка не должно быть сложным.
Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.
(Учебник Дзюдо Окано Исао, который я использовал для изучения японской грамматики)
Изучение языка не должно быть сложным.
Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.
+165
Сотрудник — «раб», или сотрудник — «партнер»?
3 min
3.2KСтатья посвящена проблеме постановки четких целей персоналу и отслеживания их исполнения. Будет интересна руководителям всех уровней, особенно тем, чья работа связана с проектной деятельностью (множеством уникальных слабоформализуемых задач).
В качестве преамбулы — по моему опыту есть много причин по которым руководство недовольно персоналом (лень, низкий уровень подготовки, отсуствие стратегического мышления, нелояльность и т.д.). При этом 99% жалоб на руководство состоят лишь из упреков в неверной постановке задачи. Конечно же, часто этим нерадивые исполнители оправдывают собственную некомпетентность «переводя стрелки», но все-таки факт интересный. Хотите улучшить мнение сотрудников о вас? Учитесь четко ставить цели.
Целеполагание — наука не новая. Лично мне очень пригождается в жизни концепция S.M.A.R.T. и запоминается легко и слово красивое.
Расшифровок много, когда то собирал даже «коллекцию» из них. Самая простая из расшифровок —
Что за этими красивыми словами?
В качестве преамбулы — по моему опыту есть много причин по которым руководство недовольно персоналом (лень, низкий уровень подготовки, отсуствие стратегического мышления, нелояльность и т.д.). При этом 99% жалоб на руководство состоят лишь из упреков в неверной постановке задачи. Конечно же, часто этим нерадивые исполнители оправдывают собственную некомпетентность «переводя стрелки», но все-таки факт интересный. Хотите улучшить мнение сотрудников о вас? Учитесь четко ставить цели.
Целеполагание — наука не новая. Лично мне очень пригождается в жизни концепция S.M.A.R.T. и запоминается легко и слово красивое.
Расшифровок много, когда то собирал даже «коллекцию» из них. Самая простая из расшифровок —
Что за этими красивыми словами?
+18
+174
Underscore.js — библиотека, которая так хороша, что должна быть вне закона
3 min
49KКаждый, кому приходилось писать объемные куски осмысленного кода на javascript, рано или поздно понимал, что ему многого не хватает в этом языке или просто неудобны некоторые врожденные конструкции. Для сглаживания шероховатостей применяются jQuery, Prototype, MooTools etc. Кто-то уже мало представляет себе, как можно кодить без них. Сегодня я расскажу о еще одной маааленькой библиотечке, которая делает мир javascript-программиста еще прекраснее. Речь пойдет о Underscore.js
+149
Moles — Isolation Framework от Microsoft Research или как сделать юнит-тестирование удобнее
3 min
2KИногда случается, что стройную и продуманную систему юнит-тестов душит сильная связность компонентов — особенно этим грешит legacy код, изначально не предназначенный для тестирования. Рефакторинг, конечно, спасает — но не всегда можно рефакторить. Одной из проблем, возникающих при создании юнит-тестов может стать использование static методов или non-virtual методов, которые должны быть перегружены для успешного написания тестов. Поможет в этом проект от Microsoft Research — Moles.
+16
Удобные маркеры для гуглокарт jGmap
5 min
4.3KДанная статья является приквелом статьи о группировке маркеров, ведь как известно, для того чтобы группировать что-то ненужное, надо сначала отобразить что-то ненужное;)
Плагин позволяет отображать множество маркеров на карте с кастомными иконками и информационными окнами, группировать (опционально). Так же есть возможность указать целевой инпут, который будет использоваться для геокодирования, перетаскиванием маркера вручную корректировать результаты и отслеживать их изменение.
Плагин позволяет отображать множество маркеров на карте с кастомными иконками и информационными окнами, группировать (опционально). Так же есть возможность указать целевой инпут, который будет использоваться для геокодирования, перетаскиванием маркера вручную корректировать результаты и отслеживать их изменение.
+45
Хватит усложнять
2 min
4.7KTranslation
Теперь, когда я научился смотреть на вещи через призму упрощения, я вижу, что другие делают те же ошибки, что и я когда-то.
И я бы хотел им сказать — да и себе такому, каким был раньше — перестаньте все усложнять!
Я не буду в этой статье критиковать других. Просто расскажу, что раньше делал неправильно.
Самые большие проблемы проявляются, когда вы пытаетесь заставить себя заняться чем-то новым. Например, начать бегать. Или стать огранизованным и продуктивным. Или начать вести блог, или избавиться от кредитов, или даже просто что-то упростить.
Я раньше всегда все усложнял, настолько, что вспоминая об этом уже и не знаю, плакать мне или смеяться. Но жизнь — это постоянное обучение, и эти ошибки, совершенные в прошлом, позволили мне стать тем, кто я есть. Даже сейчас я постоянно делаю кучу ошибок.
Пример 1.
И я бы хотел им сказать — да и себе такому, каким был раньше — перестаньте все усложнять!
Я не буду в этой статье критиковать других. Просто расскажу, что раньше делал неправильно.
Самые большие проблемы проявляются, когда вы пытаетесь заставить себя заняться чем-то новым. Например, начать бегать. Или стать огранизованным и продуктивным. Или начать вести блог, или избавиться от кредитов, или даже просто что-то упростить.
Я раньше всегда все усложнял, настолько, что вспоминая об этом уже и не знаю, плакать мне или смеяться. Но жизнь — это постоянное обучение, и эти ошибки, совершенные в прошлом, позволили мне стать тем, кто я есть. Даже сейчас я постоянно делаю кучу ошибок.
Пример 1.
+62
Адизес. Две книги по менеджменту изменений, которые обязательно нужно прочитать
3 min
13KЭтот пост будет (я надеюсь) интересен:
1) работникам, которые интересуются, в каком направлении развивается их фирма
2) руководителям разных уровней и собственникам компаний
Если вы работаете с 9-00 до 17-30, с нетерпением ждете выходных и вам все равно, что делать, лишь бы деньги платили, то этот пост вам не нужен, не тратьте на него свое время.
Месяц назад в моей жизни появился Адизес. В тот день наши разработчики вернулся с конференции Software People 2010. В одном из докладов, сделанных Асхатом Уразбаевым, упоминалась методология Адизеса и был дан жизненный цикл фирмы от возникновения до смерти. Мои товарищ SeregaP, руководитель разработки нашей фирмы, тут же купил книгу “Управление жизненным циклом корпорации”.
1) работникам, которые интересуются, в каком направлении развивается их фирма
2) руководителям разных уровней и собственникам компаний
Если вы работаете с 9-00 до 17-30, с нетерпением ждете выходных и вам все равно, что делать, лишь бы деньги платили, то этот пост вам не нужен, не тратьте на него свое время.
Почему эти книги меня зацепили и как там получилось
Месяц назад в моей жизни появился Адизес. В тот день наши разработчики вернулся с конференции Software People 2010. В одном из докладов, сделанных Асхатом Уразбаевым, упоминалась методология Адизеса и был дан жизненный цикл фирмы от возникновения до смерти. Мои товарищ SeregaP, руководитель разработки нашей фирмы, тут же купил книгу “Управление жизненным циклом корпорации”.
+32
FAQ для стартаперов по правовым вопросам
1 min
594Юридическая компания MLG Consulting совместно с адвокатом Мариной Деревянко (Адвокатская Палата Санкт-Петербурга (СПбГКА) объявляет о создании правового FAQ для стартаперов.
Вопросы можно оставлять в комментариях, отправлять по электронной почте info@mlgconsult.ru или задавать через твиттер @mlgconsulting до 10 июля 2010 г. Вы можете задать любой вопрос о создании ИТ-бизнеса, авторских правах, привлечении инвестиций и любой другой вопрос из области ИТ-предпринимательства.
Ответы выйдут в качестве бесплатной брошюры и будут размещены на сайте юридической компании MLG Consulting и ресурсах Марины Деревянко. Помимо этого, будут даны комментарии к заданным в данном посте вопросам.
Вопросы можно оставлять в комментариях, отправлять по электронной почте info@mlgconsult.ru или задавать через твиттер @mlgconsulting до 10 июля 2010 г. Вы можете задать любой вопрос о создании ИТ-бизнеса, авторских правах, привлечении инвестиций и любой другой вопрос из области ИТ-предпринимательства.
Ответы выйдут в качестве бесплатной брошюры и будут размещены на сайте юридической компании MLG Consulting и ресурсах Марины Деревянко. Помимо этого, будут даны комментарии к заданным в данном посте вопросам.
+45
Как фрилансеру распознать нежелательного заказчика?
3 min
5.2KЯ более 4 лет работаю фрилансером и имею опыт общения с различными заказчиками, опыт разработки различных проектов. Свой опыт я постарался обобщить, создав небольшую памятку, а вернее «стоп-лист», которым теперь пользуюсь для раннего отсева заказчиков, работа с которыми не приносит ни радости, ни выгоды. Мне он помогает экономить время и нервы. Надеюсь, он будет полезен и вам, если вы фрилансер. Он также может быть полезен начинающим заказчикам. Публикую его здесь с небольшими комментариями к каждому пункту.
«Стоп-лист» содержит негативные признаки заказчика. Пожалуйста, обратите внимание, что совпадение 1-2 пунктов может оказаться случайностью. При совпадении 3 и более пунктов я отказываюсь работать с заказчиком.
«Стоп-лист» содержит негативные признаки заказчика. Пожалуйста, обратите внимание, что совпадение 1-2 пунктов может оказаться случайностью. При совпадении 3 и более пунктов я отказываюсь работать с заказчиком.
+112
Память наше все!
4 min
17KПамять наше всё!
Я думаю ни для кого не секрет, что память для человека это все. Все что мы делали, делаем, и хотим сделать – все хранится в памяти и без нее это все стало бы невозможным. И если память у нас плохая, то и делаем мы все из рук вон плохо. А у меня память не из лучших, и это постоянно сказывается на моей жизни.
+112
Google Maps Javascript API V3 и управление маркерами
3 min
29KДело было глубокой осенью. Мне поручили разработку раздела, основной задачей которого является указание местоположения объектов фильтрации и поиска на карте. Что стало заметно сразу же — даже при отображении 10 объектов на карте, можно уменьшить зум до такого, при котором они просто сливаются. Если их будет 100 — появятся жутковатые наложения и тени. Не комильфо!
Решение очевидное, маркеры нужно группировать. В процессе поиска наткнулся на хабростатью, в которой рассмотрены различные способы группировки большого количества маркеров на карте. Нас вполне устраивали «костыли 1-2», то есть группировка маркеров на клиентской стороне, однако… если бы они подошли, не писал бы я сейчас статью ;)
Поиск решения
Решение очевидное, маркеры нужно группировать. В процессе поиска наткнулся на хабростатью, в которой рассмотрены различные способы группировки большого количества маркеров на карте. Нас вполне устраивали «костыли 1-2», то есть группировка маркеров на клиентской стороне, однако… если бы они подошли, не писал бы я сейчас статью ;)
+45
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity