• Делаем адаптивный HTML, добавляя одну строку в CSS

    • Перевод
    image

    В этой статье я расскажу вам, как использовать CSS Grid для создания супер классной сетки изображений, которая варьирует количество столбцов в зависимости от ширины экрана.

    И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
    Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

    Рассмотрим все подробнее.
    Читать дальше →
  • RFC для слабаков или история одного расследования

      Преамбула: в один из дней мы решили подключить к нашему сайту CDN, для того, чтобы радовать пользователей более быстрой загрузкой страниц. После некоторых поисков выбор пал на Highwinds, т.к. они заявляли, что поддерживают весь нужный функционал и с ними удалось договориться на очень вкусную цену. После успешного перевода сайта на работу через Highwinds мы решили— а почему бы не переключить на них и наше REST API для мобильных приложений. И тут начались интересности.
      Читать дальше →
    • JUnit тесты для логирования

      Логирование относится к сквозной функциональности — разбросанной по коду и, как правило, редко покрываемой юнит-тестами. Слабое покрытие тестами, очевидно, связано с тем что вывод в лог не всегда достаточно важен и воспринимается скорее как вспомогательная функция а не цель работы метода, к тому же тестировать сквозную функциональность бывает достаточно сложно.
      Но когда корректность вывода в лог становится критичной или же чувство прекрасного требует от нас полного покрытия кода тестами — без тестирования логгеров становится не обойтись.
      Читать дальше →
      • +10
      • 2,4k
      • 4
    • Встраиваем In-App purchase в своё приложение

        image Во второй части статьи про свою новогоднюю игрушку я расскажу про внутри игровые покупки. Я совсем не люблю рекламу в приложениях, по этому вопрос встраивания рекламы в своё приложение, для меня отпал сразу. Мой опыт выкладывания в Gooogle Play платных игр говорит о том, что резко падает количество желающих эту игру скачать, по этому вариант продажи игры, тоже отпал. И так как я не стремлюсь заработать на игре состояние, а делаю это больше в своё удовольствие, то решил что пусть пользователи сами решают, платить что-нибудь или нет.
        Читать дальше →
      • Защищенность переменных в Kotlin на примере Java

          Совсем недавно у меня состоялся разговор с коллегой по поводу новых языков программирования. После того, как разговор зашел о Kotlin, мой друг обронил фразу «Там нулл нельзя передавать, если не указал, что переменная может быть nullable». Эта фраза сильно озадачила меня — а действительно ли, так важны киллер фичи Котлина в сравнении с уже известными языковыми возможностями Явы? Размышления на этот вопрос вылились в целый комплекс примеров, в рамках которых я хочу показать (в первую очередь самому себе, наверно), зачем же нужны все эти новые языковые возможности.

          Самая скучная часть разработки на уже обкатанном языке — рутинные задачи. Например, показ картинок. Абсолютно рядовая задача, которая в любом проекте обрастает рядом условностей.
          Читать дальше →
        • Утренний дозор, или вступайте в радио-робингуды

            Я всегда считал себя везучим. Так редко бывая в Москве, я все же поймал сигнал, который переносит всех во Внуково. Но не всё коту масленица. Последние два раза я не попал на этот праздник РЭБ и РР (радио-электронной борьбы и радио-разведки), пришлось уехать в Питер ни с чем. Это понятно, что после белой полосы всегда приходит черная, но мне хочется взять ситуацию под контроль с вашей помощью.

            Читать дальше →
          • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

            Подробнее
            Реклама
          • Scrum внедрили, agile — забыли

              Недавно мне посчастливилось начать работу с одной относительно немаленькой компанией (~100 человек), где, как выразился наниматель, “по-отдельности все хорошие специалисты, а вместе работать не получается”. Ну, думаю, я как раз специализируюсь на создании команд, дай, думаю, помогу чем смогу. Пообщались на собеседовании на тему общего понимания цели компании, об условиях, в которых возможна успешная совместная работа, о максимальном использовании компетенций сотрудников и о вовлечении в общее дело. Казалось бы, мысли у нас с нанимателем сходятся, но сам держу ухо востро — знаю о негативной репутации компании у потенциальных соискателей в городе. Ну что же, тем интереснее будет задача!

              image
              Читать дальше →
            • Грязные трюки и оперативка

              • Перевод
              image

              Проблемы с ограничениями памяти давно в прошлом?

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

              Мы собрали примеры из игровой индустрии (разных годов и платформ), о почти незаконных способах ужимания уровней, текстур и целых игр в требуемые объёмы. Может быть, эти способы не очень красивы, но они позволили разработчикам выпустить игры, и никто до сих пор ни о чём не догадался.
              Читать дальше →
            • Preview документов в программе на Python

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


                Почему-то естественным решением подобных задач обычно считают запуск MSWord с именем файла в командной строке. Но этот способ, мягко говоря, не слишком безопасен — в doc-е могут быть макросы, или это может быть вообще не doc, а специально приготовленный взломщиком файл. Поэтому лучше использовать специальный объект просмотра, реализованный в Офисе. Он более защищен, так как ничего другого, кроме просмотра документа, делать не умеет.

                А если мы не будем ограничиваться одним форматом doc, тогда в качестве бонуса получим возможность просмотра вложенных документов в других форматах, для которых в Windows зарегистрированы стандартные просмотрщики.

                Забегая вперед — всё получилось с помощью PyWin32. Правда, неожиданно в процессе пришлось скомпилировать свой пакет для поддержки нужного COM-интерфейса, но обошлось без жертв.
                Читать дальше →
                • +12
                • 4,6k
                • 6
              • Как подружить Skype и прокси

                • Tutorial


                Всем добра, хабровчане! В статье расскажу как победить этот долбаный Skype и заставить его работать с Squid, но применимо к любому http(s) прокси. Будем использовать последний скайп. На данный момент это 7.40 и конечно, с упором на то, что очередной апдейт ничего не сломает, а если и сломает то надо будет чуток докрутить, а не откатывать версию. Сразу скажу, по сути описанный метод — это хак, т.к. актуальный скайп со сквидом работать не умеет, ну или мне не удалось победить, да и в интернете я не нашел решения, которое бы для меня взлетело. В общем, обо всём по-порядку и
                добро пожаловать
              Самое читаемое