• 9 анти-паттернов, о которых должен знать каждый программист

    • Перевод
    В программировании самокритика – это умение распознать контрпродуктивные решения в дизайне, коде, процессах и поведении. Знание о вредных шаблонах решений полезно для программиста. В этой статье я опишу анти-паттерны, которые я встречал на своём личном опыте время от времени.

    Некоторые из них напрямую или косвенно связаны с когнитивными искажениями человеческого сознания – в этих случаях я даю ссылки на соответствующие вики-статьи. Также интересен список известных когнитивных искажений.

    1 Преждевременная оптимизация


    В 97% случаев надо забыть об эффективности малых частей программы: преждевременная оптимизация – корень всех зол. Но в 3% случаев об оптимизации забывать не нужно.
    Дональд Кнут

    Хотя никогда зачастую лучше, чем прямо сейчас
    Тим Питерс, Зен языка Python


    Что это

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

    Почему плохо

    На практике сложно предсказать, где встретится узкое место. Попытки навести оптимизацию до получения эмпирических результатов приведут к усложнению кода и появлению ошибок, а пользы не принесут.

    Как избежать

    Сначала пишите чистый, читаемый, работающий код, используя известные и проверенные алгоритмы и инструменты. При необходимости используйте инструменты для профилирования для поиска узких мест. Полагайтесь на измерения, а не на догадки и предположения.
    Читать дальше →
  • Подробное руководство по App Store Optimization в 2015 году — Часть 1: Apple App Store

    • Перевод


    Нет необходимости говорить о том, что органические, бескорыстные загрузки приложения чрезвычайно важны. Прямое обнаружение приложения в App Store — один из важнейших факторов, который даёт 53% загрузок. Вывести свое приложение на первые места не так-то просто, приходится конкурировать примерно с полутора миллионами приложений в Apple App Store и Google Play Store. Для того, чтобы приложение попало в топ-10 по США, нужно примерно 100 тысяч скачиваний. Если учесть, что продвижение в этом регионе обходится примерно в 3.30$ на одну загрузку, бюджет на него составит около 330 000$.

    Как же конкурировать с брендами и разработчиками, рекламные бюджеты которых — сотни тысяч долларов США?

    Лучший вариант для вас — App Store Optimization. ASO позволяет сделать ваше приложение более заметным, увеличить количество загрузок, повысить лояльность аудитории и ваш доход. Собственно, ASO — это набор приёмов для повышения видимости мобильного приложения в каталоге приложений.
    Читать дальше →
    • +20
    • 26,8k
    • 8
  • Разговор с первыми клиентами

    • Перевод


    Сегодня хотим поделиться статьей от Белль Бет Купер (Belle Beth Cooper) – главный специалист по контенту в Buffer, сооснователь платформы аналитики Exist. Нам очень пригодились эти советы, надеемся, и вам будут полезны.

    Создание ценного продукта требует получения ценного фидбэка. Тот, с кем вы говорите с самого начала, влияет на исход всей партии.

    Несколько недель назад мы с ко-фаундером начали приватный бета-тест нашего второго продукта.
    Первый продукт Exist был в публичной бэте почти год. Мы сделали много ошибок, благодаря которым многому научились. На этот раз, мы знаем, что будем делать иначе, чтобы в этот раз наделать свежих ошибок: ) Вот несколько уроков, которыми я хотел бы поделиться.
    Читать дальше →
  • Usability — один плагин Redmine, предоставляющий массу полезных мелочей. Часть вторая



      Не так давно я написал статью про плагин, который позволяет здорово улучшить Redmine. На удивление, я получил массу писем с вопросами и благодарностями. Спасибо всем, кому понравился этот плагин. Все идеи и ошибки будут учтены или уже были учтены.

      А сейчас я хочу рассказать о том, что еще полезного появилось в этом плагине, про что я не рассказывал в прошлый раз.

      Продолжу перечислять преимущества, которые может предоставить плагин Usability, про предыдущие преимущества читайте в прошлой статье «Usability — один плагин Redmine, предоставляющий массу полезных мелочей».
      Читать дальше →
      • +9
      • 10,3k
      • 4
    • Иконификация контента

      • Перевод
      img

      В этой статье мы поговорим о концепции иконификации – размещения контента на странице и применении CSS для его трансформирования в упрощенное превью в виде значка. Давайте рассмотрим на примере. В этом демо показана иконификация на примере календаря. Чтобы развернуть месяц, нужно нажать на его значок.
      Читать дальше →
      • +14
      • 14,4k
      • 8
    • Три особенности JavaScript, о которых полезно знать каждому Java/C-разработчику

      • Перевод


      Иногда JavaScript может вводить разработчика в заблуждение, а иногда — доводить до белого каления из-за своей неполной консистентности. Есть в JavaScript некоторые вещи, которые только запутывают и сбивают с толку. Самые известные из них оператор with, неявные глобальные переменные и странное поведение при операции сравнения.

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

      • DOM, который многие ошибочно считают эквивалентом самого языка JavaScript, обладает очень неудачным API.
      • Когда переходишь на JavaScript с языков С и Java, то попадаешь в ловушку синтаксиса, который устроен не так, как в императивных языках. Это очень часто приводит к багам и сильно раздражает.

      В результате JavaScript обрёл довольно плохую репутацию, которой он, в общем-то, не заслуживает. И чаще всего это связано с тем, что многие разработчики переносят на JavaScript свой опыт работы на Java или С/С++. Здесь разобраны три наиболее трудных случая, демонстрирующих разницу в подходах между Java и JavaScript.
      Читать дальше →
    • 3 катастрофы отзывчивого дизайна и как их избежать

      • Перевод
      img

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

      В этой статье будет выделено 3 основные ошибки, которые допускают разработчики при работе с отзывчивым дизайном, и приведено несколько стратегий, как избежать этих ошибок.
      Читать дальше →
    • Загрузка и хранение фотографий в Web приложениях

        Почему это важно?


        На современных web сайтах объем картинок может составлять от 30% до 70% всего размера страницы. Например, объем изображений на Хабре обычно составляет несколько мегабайт.

        размер фоток на странице

        Большинство изображений в Web'e — это фотографии. Профильные фото в соц. сетях, альбом с телефона, профессиональные снимки и т.п. Правильная стратегия и инструменты для работы с фотографиями позволят сделать сайт быстрым для посетителей.
        Читать дальше →
      • Responsive design + Icon fonts = Adaptive icons

        • Tutorial
        Привет, Хабр!

        Сегодня поговорим об отзывчивых значках и парочке лайфхаков со шрифтовыми иконками.



        Предыстория. О трендах

        В последнее время все сильнее набирает обороты тренд «отзывчивого дизайна». Идея, заложенная в эту методологию, в режиме реального времени модифицируется, дополняется и обрастает новыми функциями. Я — не фанат трендов и моды как таковой, не сложилась у меня с ними взаимная любовь. Но в профессиональной сфере все иначе: здесь тренды правят бал, и выбросить их просто так не получается.
        Читать дальше →
      • Очень тонкая и гибкая беспроводная клавиатура



          Основанная выходцами из Кембриджа компания CSR собирается на выставке IFA 2013 показать прототип своей разработки — реально очень тонкую гибкую беспроводную клавиатуру. Её толщина заявлена создателями следующей — 0.49 мм.

          Такие необычно тонкие размеры гаджета стали возможны, благодаря использованию двух других инструментов. Основой электронной логики клавиатуры стала плата, напечатанная при помощи проводниковой струйной технологии (Conductive Inkjet Technology), которая покрыта специальным силиконом, производства компании Atmel, поддерживающим передачу multi-touch прикосновений. Соединение клавиатуры с гаджетом осуществляется при помощи основанной на Bluetooth оригинальной сверхэкономичной технологии CSR Bluetooth Smart.
          Узнать подробности
          • +9
          • 13,2k
          • 5
        • Абстракции в компьютерном покере

            image

            Компьютерный покер является весьма нетривиальной задачей в первую очередь из-за громадного количества игровых состояний, которое настолько велико, что мечтать о непосредственном решении этой игры не приходится. Единственным способом хоть как-то научить машину играть в покер является переход к абстракции — уменьшенной копии покера, в которой близкие в стратегическом смысле ситуации исходной игры объединены воедино. Именно вопросам абстракций в покере и посвящена данная заметка.
            Читать дальше →
          • 12 проектов получат 25000$ на развитие от создателя ВКонтакте Павла Дурова и Юрия Мильнера

            Вот уже третий год Павел Дуров отбирает проекты, достойные его внимания, а Юрий Мильнер дает каждому из них по 25000$. На этот раз количество профинансированных проектов достигло рекордной отметки — 12. Все проекты публиковались и обсуждались прямо ВКонтакте — vk.com/startfellows. Многим были даны ценные советы и оценки от участников группы и Дурова.

            Список проектов-лауреатов под катом.

            Читать дальше →
          • Демонстрация интерфейса Project Glass и раздача прототипов



              Компания Google объявила о расширении программы предзаказов Glass Explorer Program. Получить экземпляр раньше срока теперь могут все «креативные личности», проживающие в США. Нужно рассказать в Google+ и Twitter о том, каким способом вы хотели бы использовать футуристичный гаджет, вставить хэштег #ifihadglass и отправить в Google заявку объёмом не более 50 слов. Подробнее см. в FAQ и официальные условия.
              Читать дальше →
            • Расширение возможностей экрана блокировки в Android 4.2.x

                Многие владельцы планшетов линейки Nexus или других моделей под управлением Android 4.2.x, заметили что разработчики Google довольно мало внимания уделили экрану блокировки. В данном посте хочу рассказать про один очень полезный инструмент, который позволит использовать экран блокировки более эффективно. Речь пойдет о DashClock Widget (GooglePlay).


                Кому интересно — прошу под кат.
                Читать дальше →
              • Google впервые раскрыл данные о пользователях российским государственным органам

                  image

                  Как стало известно из отчета Google Transparency report за июль-декабь 2012 года, компания Google впервые раскрыла данные о своих пользователях по обращению российских государственных органов.

                  Всего за отчетный период компания получила от российских госорганов 97 запросов на раскрытие данных о 123 пользователях. Google полностью или частично удовлетворила 1% запросов. С января 2011 г. по июнь 2012 г. компания получила 158 запросов из России о 170 пользователях, и не удовлетворила ни одного из них. Стоит заметить, что ранее статистику по России Google не публиковала.
                  Читать дальше →
                • Компания Epson представила 0,48-дюймовый дисплей с разрешением 1024*768 пикселей



                    Сейчас многие производители выпускают свои гаджеты, оснащая их весьма качественными дисплеями. Это можно сказать практически о любой компании, которая производит и продает мобильные устройства, «таблетки», ноутбуки. К примеру, iPad может «похвастаться» дисплеем с 264 ppi (пикселов на дюйм), Google Nexus 10 оснащен дисплеем с 299 ppi. А что скажете о дисплее с 2667 ppi?

                    Читать дальше →
                  • Искусственный разум – принципиальная схема

                      image

                      В одном из предыдущих постов я доказывал, что создать искусственный разум (ИР) невозможно (здесь). Не отказываясь от прежнего мнения, хочу тем не менее рассмотреть вопрос о принципах работы того, что невозможно создать. По какому пути пойти человечеству, чтобы обмануть пускай не природу, но хотя бы самого себя – посчитать, что проблема создания ИР благополучно разрешена? На мой взгляд, по этому.
                      Оговорюсь, что все высказываемое ниже:
                      а) МНЕНИЕ,
                      б) мнение ЧАСТНОЕ,
                      в) частное мнение ДИЛЕТАНТА (специалиста в иной области, вышедшего на проблему ИР в ходе решения своих узкопрофессиональных задач).

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

                        Курсы этичного хакинга и тестирования на проникновение.


                        Если вы увлекаетесь информационной безопасностью и хотите усовершенствовать свои навыки в короткое время — предлагаем ознакомиться с обновленными программами обучения в области практической ИБ от Pentestit.

                        Разрабатывая уникальные по своему формату и методике обучения курсы этичного хакинга: «Zero Security: A» (начальная подготовка) и «Корпоративные лаборатории» (профессиональная подготовка), мы стараемся сделать обучение не только эффективными, но и удобными. Основное отличие программ обучения заключается в том, что первая рассчитана на базовую подготовку в области этичного хакинга, а вторая — на профессиональную подготовку не только этичного хакинга, но и построения эффективных систем ИБ. В любом случае, даже опытные специалисты, посетившие первую программу, открывают для себя что-то новое, не говоря уже о «Корпоративных лабораториях», включающих материал, по уровню сравнимый с докладами на профессиональных хакерских конференциях. Кроме этого, каждый набор пополняется новым материалом, что позволяет передать специалистам, проходящим обучения, наиболее актуальную на момент обучения информацию.

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


                        Читать дальше →
                      • Как тактильные интерфейсы изменят наши гаджеты

                        • Перевод


                        Обратная тактильная связь присутствует в гаджетах уже весьма продолжительное время. Чаще всего она представлена в смартфонах и джойстиках игровых приставок в форме «виброзвонков» и ответной вибрации в ответ на действия пользователя. Дублирование входящих вызовов, напоминания и дрожание при стрельбе и взрывах, вот наиболее распространённые варианты использования тактильной функции. И подавляющее большинство пользователей не представляет себе иных способов применения этого канала связи.

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

                        Первый способ применения обратной тактильной связи — расширение спектра тактильных ощущений от использования гаджетов. Второй способ — передача специфической шаблонной информации. Третий способ — общение. Рассмотрим каждый из них подробнее.
                        Читать дальше →