• День и ночь в интернете, или открытое письмо веб-разработчикам

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

    Читать дальше →
  • Судьбы героев

      В конце есть краткое содержание.

      Герои – это такие сотрудники. Вы их наверняка видели. Возможно, и вы – герой.

      Уникальные. Сверхпродуктивные. Влюбленные в своё дело. Не просто способные, а реально делающие то, что другим только в мечтах является, и так, что остаётся только завидовать. Способные заменить собой с десяток других.

      Или по-другому. Неуправляемые. Нарушающие все мыслимые и немыслимые правила. Не укладывающиеся в сроки. Требующие к себе особого отношения. Выскочки. Непонятные, пугающие, выводящие из себя.

      Отношение к героям внутри компании – всегда разное, и зависит, в первую очередь, от точки обзора. Объединяет героев одно – трагическая судьба в компании. Примеров долгой и успешной карьеры – единицы, а случаев выдавливания из компании любыми способами – масса.
      Читать дальше →
    • Бархатная перчатка Microsoft

      • Перевод
      Культурный контекст
      Персонажи Люси и Чарли Браун — это отсылка к очень популярному на западе, в частности Америке, комиксу Peanuts (оттуда же известен белый пес Snoopy). Люси на протяжении многих лет психологически издевалась над Чарли: призывая его с разбегу пнуть мяч, каждый раз давая иллюзию, но она, в самый последний момент, этот мяч от него забирала.
      «Всю свою жизнь, Чарли Браун, всю свою жизнь.»
      обобщительная статья (англ.) об этой шутке из комикса

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

      Подход бархатной перчатки срабатывал у Microsoft каждый раз. Уже более 30 лет Microsoft-Люси утягивает мяч от разработчика Чарли Брауна. И контроль над GitHub мне абсолютно ясен. Но использовать Ната [Nat Friedman, GH CEO] в роли приманки, по-моему, чересчур.[1]​

      За Microsoft стоит удачная история овладевания и контроля над компьютерной платформой — с целью контроля над сферой разработки ПО. Та поддержка, которую они оказывали разработчикам на заре Windows, была легендарна. И реальна. Дело в том, что пока люди скучковывались в сообщество разработчиков Windows, изобретая попутно совсем новые категории программ, они и понятия не имели, что все их перспективы и с ними связанные мечты на самом деле принадлежали Microsoft. Конечно, поддержка и маркетинговая помощь от Microsoft были потрясающими. Но оглядываясь назад, мы были идиотами. Точнее, я — идиот №0055.
      Люси оттягивает мяч перед Чарли, тот промахивается и со всей скорости падает на землю
      Назад в будущее...
    • Про модель, логику, ООП, разработку и остальное

        Часто ли вы задумываетесь – почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение – как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так?
        Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
        Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
        Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.
        Читать дальше →
      • Назад в будущее – Декапсуляция

          image

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

          Затрагиваемые вопросы:
          • Влияние программной архитектуры на потребление памяти и производительность;
          • Различия при работе в 32 и 64 битных режимах;
          • Различия между указателями и индексами массива;
          • Влияние выравнивания данных внутри классов/структур;
          • Влияние кеша процессора на производительность;
          • Оценка стоимости поддержки ООП в языках высокого уровня;
          • Признание факта необходимости учитывать низкоуровневые особенности платформы даже при разработке на языках высокого уровня.

          Читать дальше →
        • Знакомство с внутренним устройством .NET Framework. Посмотрим, как CLR создаёт объекты

          • Перевод
          Вниманию читателей «Хабрахабра» представляется перевод статьи Хану Коммалапати и Тома Кристиана об внутреннем устройстве .NET. Существует альтернативный вариант перевода на сайте Microsoft.

          В статье рассматривается:

          • Системный домен (SystemDomain), Домен общего доступа (SharedDomain) и домен по умолчанию (DefaultDomain)
          • Представление объекта и другие особенности организации памяти
          • Представление таблицы методов
          • Распределение методов

          Используемые технологии: .NET Framework, C#

          Содержание


          1. Домены создаваемые начальным загрузчиком
          2. Системный домен
          3. Домен общего доступа (разделяемый)
          4. Дефолтный домен
          5. Загрузчик куч
          6. Основы типов
          7. Экземпляр объекта
          8. Таблица методов
          9. Размер базового экземпляра
          10. Таблица слотов метода
          11. Описатель метода
          12. Карта таблиц виртуальных методов интерфейсов и карта интерфейса
          13. Виртуальное распределение
          14. Статические переменные
          15. EEClass
          16. Заключение

          Читать дальше →
          • +22
          • 51,2k
          • 5
        • Доступна для скачивания ранняя версия ReSharper 9

            Как многие могли заметить, в мире .NET сейчас происходят значительные изменения. Появление Roslyn, C# 6, ASP.NET vNext, Visual Studio «14» и других технологий вдохновляют ReSharper на новые шаги в своем развитии и поддержке различных языков и платформ.

            В связи с этим мы приглашаем всех присоединиться к программе раннего доступа для ReSharper 9. В этом посте мы обсудим основные фичи новой версии.

            TL;DR в ReSharper 9 добавлена поддержка VS «14», C# 6 и регулярных выражений, улучшена поддержка JS/TS и глобальных изменений (bulk fixes), добавлен новый редактор для форматирования кода и новые возможности навигации, а также все наши .NET продукты переезжают на новую общую платформу.

            Если интересно...
          • Пишем Skype бота на C# с модульной архитектурой

            imagealert('Привет Хабр!');

            Давно уже засела мысль сделать эдакую тулзу-помощника, которая смогла бы мне и курсы валют вывести и погоду подсказать и анекдот затравить, да всё руки не доходили… ну вы же знаете как это бывает, верно? Кроме того, в моём бесконечном списке с забавными идеями, которые неплохо бы когда-нибудь реализовать — был пункт «бот для скайпа 4fun».

            Руки дошли. Речь пойдёт о написании простого модульного бота на C# с интеграцией в Skype. Что получилось в итоге, а также почему стоит выключать системник от сети перед тем как в него лезть отвёрткой — читайте под катом.
            Читать дальше →