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

User

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

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

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

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


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

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


Что это

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

Почему плохо

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

Как избежать

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

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

Development for Android *
Translation


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

Читать дальше →
Total votes 116: ↑107 and ↓9 +98
Views 80K
Comments 26

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

Usedesk corporate blog
Translation


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

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

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

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

Programming *System Analysis and Design *


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

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

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

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

PAYSTO corporate blog Website development *CSS *HTML *
Translation
img

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

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

NIX corporate blog Website development *JavaScript *C *
Translation


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

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

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

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

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

PAYSTO corporate blog Web design *
Translation
img

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

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

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

.io corporate blog PHP *Image processing *

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


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

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

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

Responsive design + Icon fonts = Adaptive icons

DataArt corporate blog Website development *Development of mobile applications *
Tutorial
Привет, Хабр!

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



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

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

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

Gadgets


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

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

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

Artificial Intelligence
image

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

12 проектов получат 25000$ на развитие от создателя ВКонтакте Павла Дурова и Юрия Мильнера

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

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

Читать дальше →
Total votes 29: ↑23 and ↓6 +17
Views 21K
Comments 40

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

Gadgets AR and VR IT-companies


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

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

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


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

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

IT-companies
image

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

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

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

Gadgets Computer hardware


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

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

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

Artificial Intelligence
image

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

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

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

Pentestit corporate blog Information Security *IT systems testing *

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


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

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

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


Читать дальше →
Total votes 58: ↑49 and ↓9 +40
Views 71K
Comments 17

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

Yota Devices corporate blog
Translation


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

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

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

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

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

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


Читать дальше →
Total votes 70: ↑66 and ↓4 +62
Views 40K
Comments 29

Information

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