Pull to refresh
0
0
Сергей Костевич @Setrino

User

Send message

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

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

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

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


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

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


Что это

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

Почему плохо

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

Как избежать

Сначала пишите чистый, читаемый, работающий код, используя известные и проверенные алгоритмы и инструменты. При необходимости используйте инструменты для профилирования для поиска узких мест. Полагайтесь на измерения, а не на догадки и предположения.
Читать дальше →
Total votes 117: ↑97 and ↓20+77
Comments123

10 анти-паттернов навигации в Android

Reading time4 min
Views80K


В данной статье мы рассмотрим 10 анти-паттернов навигации в Android, которые допускают многие новички (и не только) в создании интерфейсов Android-приложений.

Читать дальше →
Total votes 116: ↑107 and ↓9+98
Comments26

Разговор с первыми клиентами

Reading time5 min
Views8.2K


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

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

Несколько недель назад мы с ко-фаундером начали приватный бета-тест нашего второго продукта.
Первый продукт Exist был в публичной бэте почти год. Мы сделали много ошибок, благодаря которым многому научились. На этот раз, мы знаем, что будем делать иначе, чтобы в этот раз наделать свежих ошибок: ) Вот несколько уроков, которыми я хотел бы поделиться.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments2

Usability — один плагин Redmine, предоставляющий массу полезных мелочей. Часть вторая

Reading time2 min
Views12K


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

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

Продолжу перечислять преимущества, которые может предоставить плагин Usability, про предыдущие преимущества читайте в прошлой статье «Usability — один плагин Redmine, предоставляющий массу полезных мелочей».
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments4

Иконификация контента

Reading time8 min
Views15K
img

В этой статье мы поговорим о концепции иконификации – размещения контента на странице и применении CSS для его трансформирования в упрощенное превью в виде значка. Давайте рассмотрим на примере. В этом демо показана иконификация на примере календаря. Чтобы развернуть месяц, нужно нажать на его значок.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments8

Три особенности JavaScript, о которых полезно знать каждому Java/C-разработчику

Reading time9 min
Views49K


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

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

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

В результате JavaScript обрёл довольно плохую репутацию, которой он, в общем-то, не заслуживает. И чаще всего это связано с тем, что многие разработчики переносят на JavaScript свой опыт работы на Java или С/С++. Здесь разобраны три наиболее трудных случая, демонстрирующих разницу в подходах между Java и JavaScript.
Читать дальше →
Total votes 45: ↑39 and ↓6+33
Comments36

3 катастрофы отзывчивого дизайна и как их избежать

Reading time3 min
Views20K
img

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

В этой статье будет выделено 3 основные ошибки, которые допускают разработчики при работе с отзывчивым дизайном, и приведено несколько стратегий, как избежать этих ошибок.
Читать дальше →
Total votes 31: ↑17 and ↓14+3
Comments11

Загрузка и хранение фотографий в Web приложениях

Reading time4 min
Views112K

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


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

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

Большинство изображений в Web'e — это фотографии. Профильные фото в соц. сетях, альбом с телефона, профессиональные снимки и т.п. Правильная стратегия и инструменты для работы с фотографиями позволят сделать сайт быстрым для посетителей.
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments83

Responsive design + Icon fonts = Adaptive icons

Reading time8 min
Views23K
Привет, Хабр!

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



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

В последнее время все сильнее набирает обороты тренд «отзывчивого дизайна». Идея, заложенная в эту методологию, в режиме реального времени модифицируется, дополняется и обрастает новыми функциями. Я — не фанат трендов и моды как таковой, не сложилась у меня с ними взаимная любовь. Но в профессиональной сфере все иначе: здесь тренды правят бал, и выбросить их просто так не получается.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments21

Очень тонкая и гибкая беспроводная клавиатура

Reading time1 min
Views25K


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

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

Абстракции в компьютерном покере

Reading time11 min
Views91K
image

Компьютерный покер является весьма нетривиальной задачей в первую очередь из-за громадного количества игровых состояний, которое настолько велико, что мечтать о непосредственном решении этой игры не приходится. Единственным способом хоть как-то научить машину играть в покер является переход к абстракции — уменьшенной копии покера, в которой близкие в стратегическом смысле ситуации исходной игры объединены воедино. Именно вопросам абстракций в покере и посвящена данная заметка.
Читать дальше →
Total votes 103: ↑94 and ↓9+85
Comments22

Демонстрация интерфейса Project Glass и раздача прототипов

Reading time1 min
Views183K


Компания Google объявила о расширении программы предзаказов Glass Explorer Program. Получить экземпляр раньше срока теперь могут все «креативные личности», проживающие в США. Нужно рассказать в Google+ и Twitter о том, каким способом вы хотели бы использовать футуристичный гаджет, вставить хэштег #ifihadglass и отправить в Google заявку объёмом не более 50 слов. Подробнее см. в FAQ и официальные условия.
Читать дальше →
Total votes 119: ↑112 and ↓7+105
Comments190

Расширение возможностей экрана блокировки в Android 4.2.x

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


Кому интересно — прошу под кат.
Читать дальше →
Total votes 65: ↑54 and ↓11+43
Comments39

Google впервые раскрыл данные о пользователях российским государственным органам

Reading time1 min
Views104K
image

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

Всего за отчетный период компания получила от российских госорганов 97 запросов на раскрытие данных о 123 пользователях. Google полностью или частично удовлетворила 1% запросов. С января 2011 г. по июнь 2012 г. компания получила 158 запросов из России о 170 пользователях, и не удовлетворила ни одного из них. Стоит заметить, что ранее статистику по России Google не публиковала.
Читать дальше →
Total votes 77: ↑70 and ↓7+63
Comments140

Компания Epson представила 0,48-дюймовый дисплей с разрешением 1024*768 пикселей

Reading time1 min
Views56K


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

Читать дальше →
Total votes 40: ↑34 and ↓6+28
Comments50

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

Reading time22 min
Views37K
image

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

О заставке: из мозга высовываются, наряду с механическими приспособлениями, не половые члены носорога, как вы могли подумать, а глаза улитки. Они символизируют сенсоры, которыми обладает ИР.
Читать дальше →
Total votes 34: ↑17 and ↓170
Comments63

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

Reading time5 min
Views71K

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


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

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

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


Читать дальше →
Total votes 58: ↑49 and ↓9+40
Comments17

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

Reading time6 min
Views15K


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

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

Первый способ применения обратной тактильной связи — расширение спектра тактильных ощущений от использования гаджетов. Второй способ — передача специфической шаблонной информации. Третий способ — общение. Рассмотрим каждый из них подробнее.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments10

Локализация приложений для китайского рынка

Reading time5 min
Views41K
Собственно, ни для кого не секрет, что рынок КНР (а еще и Гонконга и Тайваня) — мечта для любого игропроизводителя. Учитывая азарт китайцев, их внушаемость и распространенность мобильных телефонов среди населения (а также количество абонентов), удачный вход на китайский рынок может принести огромную прибыль.

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


Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments29

Термостат Nest стал еще более умным

Reading time2 min
Views19K


Не так давно на Хабре публиковалась новость о том, что корпорация Google, купившая компанию-производителя умного термостата Nest за несколько миллиардов долларов, открыла API устройства для сторонних разработчиков. Сделано это было с целью создания разветвленной экосистемы приложений и повышения совместимости Nest с другими устройствами.

Судя по всему, открытый API действительно способствовал развиитию функциональности NEST в правильном направлении. На днях компания заявила о добавлении поддержки сразу нескольких устройств, включая централизованные системы управления домом и приборами от Control4, Crestron, RTI и URC.

Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments12
1
23 ...

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity