• CodeRush for Roslyn: Part 1 — полезные фичи для разработки через тестирование

      Мы выпускаем новый продукт — CodeRush for Roslyn (далее CRR). Уже более 10 лет у нас есть другой продукт, который называется просто CodeRush, или CodeRush Classic (сокращенно CRC). Главное отличие CRR от CRC в том, что Roslyn-версия использует парсинг и языковые сервисы встроенные в Visual Studio. CRR полностью написан с нуля, поэтому он быстрый, легкий и уже содержит всё необходимое для эффективной работы.

      В этой статье я расскажу о поддержке тестовых фреймворков в CRR. Почти во всех примерах будет использован проект github.com/dewe/Money. Этот проект использует NUnit Framework, но мы так же поддерживаем xUnit, MSpec и MS Test Framework. Все рассмотренные ниже практики работают одинаково вне зависимости от того, какой тестовый фреймворк вы используете.
      Читать дальше →
    • Опасный target="_blank"

        Большинство создают внешние ссылки через target="_blank" и не знают одного интересного нюанса — страница, на которую мы попадем таким образом, получит частичный контроль над ссылающейся на нее страницей через js свойство window.opener.

        Через window.opener.location мы сможем сделать редирект на, к примеру, фишинговую страницу. Это своего рода tabnabbing, только более продвинутый. Так как жертва меньше всего ожидает подмены страницы, в открытой ранее, доверенной вкладке браузера.
        Читать дальше →
      • Регистрация безналоговой компании в Эстонии

        «Платить налоги – обязанность, платить мало налогов – искусство! » (с)

        Хочу поделиться опытом успешной регистрации компании в Эстонии. Я приведу короткую характеристику юрисдикции, расскажу про подводные камни, которые существуют, и поделюсь полученным опытом.

        Задача стояла следующая — найти юрисдикцию, в которой не нужно платить налог на прибыль, при этом клиентам из США, Канады и ЕС удобно было с ней работать. Реальный офис открывать в этой стране задачи не стояло.

        Основная деятельность компании — разработка ПО (классическая аутсорс компания со штатом ~20 девелоперов).
        Читать дальше →
      • PMM Summer School: Как пройти школу маркетинга софтверных продуктов и остаться гиком?

          image

          Недавно в Санкт-Петербурге закончилась летняя школа по маркетингу софтверных продуктов (PMM summer school) от JetBrains, о которой уже упоминали здесь и здесь. Чернила еще не высохли, лекции еще не забылись, а организаторы еще не выспались, но спешу поделиться впечатлениями о маркетинге, продуктах, школе PMM и JetBrains. Холивар про маркетинг неисчерпаем, поэтому добро пожаловать под <cut/>!
          Читать дальше →
          • +10
          • 4,2k
          • 1
        • DDoS атака в обход Qrator. Как защититься?

            Есть сервисы, защищающие нас от DDoS атак. Они работают по принципу прокси: в DNS прописывается их IP, они фильтруют трафик и проксируют на ваш сервер. Все они настоятельно рекомендуют прятать свой IP и в публичном доступе давать только IP прокси-защитника. Вполне здравый подход, достаточный для успешной защиты. А я расскажу на чем можно проколоться и как от этого защитится.
            Читать дальше →
          • Как правильно переходить границу: кроссплатформенность в мобильном приложении

              image
              Сегодня все больше приложений создается сразу для нескольких мобильных платформ, а приложения, созданные изначально для одной платформы, активно портируются на другие. Теоретически можно полностью писать приложение «с нуля» для каждой платформы (т.е. фактически «кроссплатформенной» оказывается только идея приложения). Но это означает, что трудозатраты на его разработку и развитие будут расти пропорционально количеству поддерживаемых платформ. Если же многоплатформенность изначально заложить в архитектуру приложения, то эти затраты (плюс, в особенности, затраты на поддержку) могут существенно сократиться. Вы разрабатываете общий кроссплатформенный код один раз — значит используете его на текущих (и будущих) платформах. Но в этом случае сразу возникает несколько взаимосвязанных вопросов:

              • Должна ли быть граница между общим (кроссплатформенным) и нативным (специфичным для данной платформы) кодом?
              • Если да, то где и как провести эту границу?
              • Как сделать так, чтобы кроссплатформенный код было удобно использовать на всех платформах, как на тех, что надо поддержать сейчас, так и на тех, чья поддержка, вероятно, может потребоваться в будущем?

              Конечно, ответы на эти вопросы зависят от конкретного приложения, предъявляемых к нему требований и накладываемых ограничений, поэтому универсальный ответ найти, по всей видимости, невозможно. В этой статье мы расскажем, как мы искали свои ответы на эти вопросы в процессе разработки мобильного клиента Parallels Access для iOS и Android, какие архитектурные решения были приняты и что в итоге получилось.

              Хочу сразу предупредить, что букв в этом посте много, но дробить тему на куски не хотелось. Поэтому запаситесь терпением.
              Читать дальше →
              • +24
              • 13,8k
              • 1
            • Организация и использование сегментации в больших мобильных приложениях

                Однажды, ваше мобильное приложение становится достаточно большим и им ежедневно пользуются десять тысяч — сто тысяч — миллион, не важно, в общем очень много живых и разных людей. Что это значит для вас, как для разработчика?

                Да, теперь стало гораздо страшнее нажимать кнопку «Submit», ведь если вы чего-то недоглядели — в отличии от веб-приложений не получится посидеть ночь, обложившись банками ред-булла и пиццами и все исправить — ревью на мобильных платформах занимает время, а если говорить про iOS — аж целую неделю. Неделя — более чем достаточный срок для того, чтобы лояльный ранее пользователь перестал открывать ваше приложение.

                А еще, что не менее важно, это значит, что наступило время, когда «мне нравится, как выглядит этот экран» — уже недостаточное оправдание для того, чтобы этот экран действительно присутствовал в приложении.



                В этой статье я постараюсь рассказать о том, что мы делаем, чтобы огромное продакшн-приложение продолжало оставаться таковым.
                Читать дальше →
                • +11
                • 7,3k
                • 3
              • Как защитить интересы сторон в договоре на создание ПО

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

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

                После определения формы договора на разработку ПО стороны, как правило, волнуют три вопроса:
                1) Как оформить заказ на разработку ПО в упрощенном порядке?
                2) Какие права на ПО переходят заказчику и сохраняются у разработчика?
                3) Как документально оформить передачу заказчику прав на ПО?

                Ниже мы рассмотрим данные вопросы подробнее.
                Читать дальше →
                • +14
                • 3,9k
                • 6
              • 86 бесплатных площадок для продвижения стартапов на международном рынке

                • Перевод


                Мы дополнили и адаптировали оригинальную подборку, выбрав исключительно бесплатные ресурсы для продвижения стартапов на международном рынке. Помимо этого мы переработали первоначальную классификацию, ввели ранжирование по потенциальному охвату аудитории (для площадок с обозначенным охватом) и распределили соответствующие ресурсы в тематические категории.
                Читать дальше →
                • +31
                • 89,3k
                • 9
              • Больше возможностей с новой версией продуктов DevExpress 14.2

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


                  Читать дальше →
                • Автоматизированная установка WordPress на VPS с помощью Ansible

                  Добрый день, Хабр.

                  Не так давно я начал разбираться с замечательным инструментом для любого DevOps — Ansible. Сегодня хочу представить на ваш взыскательный суд небольшую вводную статью по использованию этого, во многом прекрасного, инструмента. Итак, начнем.

                  Что такое Ansible


                  Ansible — это инструмент для автоматизации задач системного администратора и не только. Если своими словами — это та штука, которая позволяет автоматически настраивать сервера пачками.

                  Кто-то скажет, что он не нужен, т.к. есть Chef, Puppet, etc. Я с этими людьми абсолютно соглашусь. Если вы можете использовать эти инструменты — отлично. Я же пишу эту статью для тех, кто хочет немного понять как работает Ansible и как с его помощью можно многое автоматизировать.

                  Если вы до этого не сталкивались с Ansible вообще, то советую почитать статью компании Селектел. Отличная статья.

                  Максимум автоматизации


                  Давайте определимся, что нам нужно, чтоб запустить Wordpress на VPS сервере с установленной Ubuntu:
                  • Nginx
                  • Mysql
                  • PHP5
                  • Memcached для использования W3Total Cache плагина
                  • Wordpress

                  Вот в таком порядке мы и будем писать роли для настройки сервера.
                  Читать дальше →
                  • +3
                  • 12,7k
                  • 3
                • «Дыры» стартапов: самые распространенные проблемы молодых компаний, которые мешают их развитию

                    Каждый месяц Фонд развития интернет-инициатив проводит мероприятия для предпринимателей под названием «Бизнес-секреты». На этих встречах лидеры стартап-индустрии делятся со слушателями секретами увеличения прибыли проекта и дают советы по его продвижению. Такие мероприятия для их участников не только полезны, но и бесплатны – достаточно только зарегистрироваться и прийти на встречу в наш мультимедийный конференц-зал Сити Холл в БЦ Silver City.

                    В октябре на одном из таких мероприятий Артем Азевич, руководитель трекинга ФРИИ, рассказал о «дырах» стартапов или «узких местах», которые необходимо заделывать, чтобы в разы улучшить их бизнес-показатели. Данный материал на основе выступления, дополненный кейсами проектов, рассказывает об этапах развития IT-стартапа на ранней стадии и о самых распространенных проблемах предпринимателей, которые не дают им начать зарабатывать. Почему это происходит?
                    Читать дальше →
                  • Как купить золото?

                      Пенсия для ITшника.
                      Тут нужно было бы писать «а что делать в старости?», «на государство недёжи никакой», «в наше время каждый должен...» и прочее бла-бла-бла и би-би-би. Но мне лень, потому — сразу к делу.

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

                      А еще?
                      А еще золото двигается в противофазе с рынком акций. То есть, когда в экономике тайфун — все инвесторы бегут в золото, как самый надежный актив. Ну и наоборот, естественно… Это делает золото идеальным инструментом для построения «портфеля простака».
                      Читать дальше →
                    • Аманда Палмер на TED: Про свободное распространение музыки и заработок

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

                        Тема выступления Аманды: искусство просить. Я в названии поста написал иначе, чтобы было понятнее, о чем вообще речь в ее выступлении. Речь доступна в оригинале на сайте TED'а, но там пока нет субтитров на русском. Но DIY — это не просто 3 буквы, это способ мышления, поэтому я на примере этого видео попробовал впервые, что такое адаптировать субтитрами видео на другой язык. Критика и комментарии — приветствуются.

                      • Что делать, если вам надоели рекламные СМС

                          В продолжение статей о том, что ФАС собирает дополнительную информацию о «коротких» номерах, хочу рассказать, как эта служба может помочь вам избавиться от нежелательной рекламы по СМС.

                          Согласно ч.1 ст.18 ФЗ «О рекламе», распространение рекламы по сетям электросвязи, в том числе посредством использования телефонной, факсимильной, подвижной радиотелефонной связи, допускается только при условии предварительного согласия абонента или адресата на получение рекламы.

                          Итак, отписавшись от всех рекламных рассылок своего оператора, я наивно полагал, что рекламные СМС меня больше не будут отвлекать. Но маркетологи различных компаний решили, что без рекламы мне скучно, и быстро исправили ситуацию. В итоге, год назад я практически каждую неделю получал несколько рекламных СМС, в основном это были сообщения от такси нашего города. Особую активность компании проявляли перед Новым годом.
                          Читать дальше →
                        • Не тратьте своё время на дерьмовую работу в стартапе

                            Под катом перевод огромной статьи, написанной Майклом Чёрчем и посвящённой стартапам. Статья вызвала необыкновенное бурление… мнений, скажем так, на разных сайтах и агрегаторах, поэтому я решил её перевести на русский и посмотреть на реакцию. Текст ОЧЕНЬ длинный, но также и очень интересный. И несколько пояснений перед чтением: в статье речь идёт об инженере в стартапе, именно с этой позиции всё рассматривать; некоторые финансово-экономические термины, возможно, не очень адекватно удались и я буду рад любым конструктивным поправкам.

                            То, о чём я хочу рассказать, справедливо для июля 2012 г. 15 лет назад необязательно было так же, и не факт, что будет справедливо через год. Но в данный момент это абсолютно верно для большинства людей в достаточной степени, так что я считаю обязанным высказаться. Нынешний мир ИК-стартапов (ИК=инвестиционный капитал / venture capital) — я его нежно называю ИК-стан — является, мягко говоря, тотально напрасной тратой времени для большинства вовлечённых людей.
                            Читать дальше →
                          • Коррекция духовности интернет-трафика

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

                              В мире IT не принято относиться всерьез к нематериальному, но всем известна шутка про сисадминов, настраивающих сервер при помощи нло или шаманского бубна. И очень многим, кто имел дело с достаточно большими и сложными системами, встречалась ситуация, когда некие явления невозможно объяснить в терминах физических процессов.

                              дальше - интереснее..
                            • Как найти работу в Германии


                                Для всех, кто просил описать как искать работу программистом в Германии, а так же для тех, кто в комментариях бездоказательно писал, что Германия далеко не лучшее место для работы, ну и для всех интересующихся написан этот пост.
                                Читать дальше →
                              • Как я нанимаю программистов

                                Захожу на гитхаб, ищу репозитории проектов, сходные по профилю с теми, для которых мы ищем программистов.
                                Просматриваю issues, выбираю подходящие — такие, для которых не потребуется слишком много времени (идеально — вечер) и для которых потребуется разобраться в самом проекте.

                                У каждого соискателя я спрашиваю ссылку на профиль на гитхабе (или других сервисах) или еще какие способы посмотреть на то, что соискатель делал. Если способа показать свой код у соискателя нет (или, например, на гитхабе только один репозиторий и тот с конфигами) — я кидаю ему ссылку на одну из issues и прошу отправить мне ссылку на pull request по завершении.

                                По pull request'у сразу видно как соискатель умеет разбираться в чужом коде и как он пишет код. Я не даю классических тестовых заданий — это убийство времени в никуда, этот код будет выброшен, он не поможет никому решить какую-либо задачу.
                                Читать дальше →
                              • Жизнь разработчика (в картинках)

                                  Взято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.

                                  Когда я показываю босу, что окончательно пофиксил баг



                                  Когда проджект-менеджер входит в офис



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