Как стать автором
Обновить
26
1.8

Пользователь

Отправить сообщение

Хватит неправильно использовать выпадающие списки

Время на прочтение4 мин
Количество просмотров133K
Формы состоят из самых разных элементов интерфейса. Если вы не знаете, как правильно с ними обращаться, вы можете сильно усложнить заполнение форм. Чаще всего ошибаются, применяя выпадающие списки (select menu).

Когда использовать


Иногда можно встретить выпадающие списки с 2 вариантами, иногда — с более чем 20. В обоих случаях это неправильно. Если у пользователя есть менее 5 вариантов выбора, следует использовать радиокнопки. Так выбор будет проще и быстрее, потому что пользователю нужно лишь взглянуть на варианты и один раз кликнуть. С выпадающим списком ему нужно нажать на него, найти подходящий вариант и кликнуть снова. Также другие варианты не видны, пока вы не нажмёте на выпадающий список. Если их меньше 5, лучше наглядно показать их в форме в виде радиокнопок — пользователи смогут быстро их просмотреть.



Читать дальше →

Автоматизированный рефакторинг в большом проекте

Время на прочтение19 мин
Количество просмотров18K
Если вы работаете в большой команде разработчиков над одним и тем же проектом, то рефакторинг становится очень сложной задачей. Приведем пример: мы хотим переименовать функцию do_something() в do_something_with_blackjack(). Мы переименовали все вхождения этой функции в своей ветке и отправили задачу на тестирование. В тот же момент кто-то другой добавил ещё один вызов функции, но со старым названием, тоже в своей ветке. По отдельности наборы изменений будут работать, а вот после слияния получится ошибка.

В статье будет рассмотрен приём, который можно назвать «автоматизированный рефакторинг» — использование самописных скриптов, которые делают нужную работу за вас, позволяя провести рефакторинг после слияния всех веток и перед непосредственной выкладкой на staging/production.

На примере phpBB будет показано, как можно «отрефакторить» вызовы SQL-запросов, чтобы они использовали автоматическое экранирование входных данных (и таким образом помочь в решении проблемы SQL-инъекций).
Читать дальше →

Гель IBM уничтожает бактерии, даже устойчивые к антибиотикам

Время на прочтение2 мин
Количество просмотров97K

Результат воздействия гидрогеля на бактериальную биоплёнку золотистого стафилококка, устойчивого к антибиотикам

Компания IBM десятилетиями занимается разработкой материалов для производства компьютерных микросхем. Несколько лет назад во время работы над одним из чипов инженеры обнаружили, что при соединении определённых материалов образуется положительный электрический заряд, с помощью которого можно вытравливать кремниевую подложку исключительно точно, фактически, в атомном масштабе.

Безусловно, это открытие полезно для производства чипов. Но учёные задались вопросом, а где ещё его можно использовать? Например, как воздействует положительный заряд на живые клетки? Оказалось, что эффект смертельный: вещество притягивает к себе отрицательно заряженную клеточную мембрану, мгновенно уничтожая клетку.
Читать дальше →

Cила CSS поможет тебе принять форму, SVG!

Время на прочтение8 мин
Количество просмотров106K

Нам нужно:
  1. Установить на сайте собственные иконки с помощью SVG.
  2. Они должны управляться с помощью CSS (форма, размер, заливка, эффекты в том числе и их поведение).
  3. Они должны иметь маленький вес и находиться в одном месте для экономии http запросов.
  4. Работать во всех основных современных браузерах.

демо
Читать дальше →

Взгляд в будущее: CSS4

Время на прочтение10 мин
Количество просмотров56K

Набирающее популярность понятие CSS4, на самом деле, взялось из ниоткуда, точно так же, как мы в своё время привыкали к реальности CSS3, который-таки будет с нами ещё некоторое время (на самом деле ещё долгое время). Производители браузеров прилагают огромные усилия для реализации передовых функций стандарта, а «фронтэндщики» (фронтэндеры?) создают новые и новые инструменты для более эффективной работы с таблицами стилей. Но сейчас, слыша о CSS4, вы думаете: «Эй, а что там насчет CSS3? Он ещё жив?»
Читать дальше →

Статистические тесты в R. Часть 1: Бинарная классификация

Время на прочтение5 мин
Количество просмотров25K
Доброго времени суток. Хочу поделиться своими знаниями о работе со статистикой в R.
Многим из нас приходится сталкиваться с различными данными на работе и в повседневной жизни. Качественно и правильно их обработать и проанализировать не так сложно. В этой серии статей я покажу применения некоторых статистических тестов.

Заинтересовались? Добро пожаловать под кат.
Читать дальше →

Знакомимся с Fabric.js. Часть 2-я

Время на прочтение13 мин
Количество просмотров25K
Это вторая часть серии статей об открытой Javascript canvas библиотеке Fabric.js.

В первой части этой серии, мы ознакомились с самыми базовыми аспектами canvas библиотеки Fabric.js. Мы узнали чем может быть полезна Fabric, рассмотрели её объектную модель и иерархию объектов; увидели что существуют как простые фигуры (прямоугольник, треугольник, круг), так и сложные (SVG). Научились выполнять простые операции над этими объектами.

Ну вот, разобрались с азами, давайте приступать к более интересным вещам!

Читать дальше →

О неверности обобщений, или каждый программист — уникален

Время на прочтение2 мин
Количество просмотров60K
Прочитал пост «Твой программист и твоя жена....», и как программист и управленец, хочу не согласиться с автором. Несмотря на то, что считаю его опыт в организации разработки достаточно интересным.
Если бы ты мог дать пинка под зад человеку, который виновен во всех твоих неприятностях, ты бы потом три дня не смог сидеть.
Неизвестный автор

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

Далее, обобщать уникальных специалистов — это все равно что пытаться рассуждать об музыкантах, к примеру, вообще. Музыканты — это, мол, народ странный, и вот особенно родившиеся после 70х. А то, что кабацкий певец, солист оркестра или выдающийся оперный певец — это три совершенно разных музыканта и тысячи разных людей, как-то в пример не берется.

Но идем дальше.
Читать дальше →

Top 5 раздражающих моментов в работе программиста

Время на прочтение4 мин
Количество просмотров194K
В процессе работы, будучи программистом, в разные периоды я не раз сталкивался с рядом проблем. Во многом из-за непонимания клиентами и руководителями работы программиста. Хочется собрать наиболее раздражающие моменты, которые делают работу невыносимой и портят все удовольствие, и объяснения начинающим менеджерам на доступном языке, как не быть в глазах разработчика обузой.

1. А сколько займет сделать этот раздел (дается ТЗ из одной строки)?

Как правило, отвлекают от работы вопросом, сбивают с потока. Просят назвать срок, когда неизвестна ни задача, ни требования, только одно предложение. И так настойчиво, что, чтобы отвалили, называешь прикидочный срок.

Менеджеру: поймите, что программист строит в голове модель будущей системы. По одному предложению нельзя смоделировать приложение. И только ваша вина, если вы не потрудились уточнить ТЗ (это ваша работа, кстати) у заказчика, а хотите сразу назвать ему срок (и цену). Потому что оценка с потолка невозможна — вроде как ответить на вопрос «сколько времени займет покрасить комнату неизвестной площади?».

2. Ты же ОБЕЩАЛ сделать за два дня, а прошла неделя! (моют мозг по сроку из пункта 1)

По исследованиям, сроки разработки реальных систем в большей части случаев всегда дольше запланированных. Во многом из-за изменений в процессе работы, которые никто не закладывал. И потом, срок, данный без ТЗ, сроком вообще нельзя считать. И напирая на этот срок, менеджер демотивирует меня как программиста. Когда не выполняет свою работу и свои косяки валит на меня.

Менеджеру: ничто так не демотивирует, как обвинение в некомпетентности и лжи. Постарайтесь давать точное ТЗ и бить задачу на простые кусочки, в чем программист с удовольствием поможет (если хорошо попросить). Тогда можно будет более точно управлять сроками.
Читать дальше →

О высокой зарплате замолвите слово

Время на прочтение3 мин
Количество просмотров112K
Эпиграф: Зарплата у меня хорошая, но маленькая!

Глядя на то, как появляются и исчезают в черновики вместе с комментариями и обсуждениями статьи о найме и удержании сотрудников, я тоже решил рискнуть.
Я хочу поспорить с тезисом о том, что деньги не мотивируют и высказать свои аргументы в пользу высокой заплаты.
Вот тезисы, которые я хочу раскрыть немного подробнее в статье.
1. Высокая зарплата не мотивирует. А вот низкая зарплата демотивирует сама по себе.
2. Высокая зарплата отрезвляет, так как хорошо понимаешь, что на такую позицию быстро найдутся желающие.
3. Высокая зарплата затрудняет переход в другое место.

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

LLVM+Clang 3.2: собираем самим собой под Windows

Время на прочтение4 мин
Количество просмотров43K
LLVM — это набор «кирпичиков» для построения компиляторов, а clang — новый компилятор C++ на его основе. По сравнению с gcc — обеспечивается большая скорость компиляции при сравнимом качестве кода, более человеко-понятные исходники т.к. они не несут десятилетия жесточайшей C-only разработки как в gcc.

Помимо этого, Clang и llvm распространяются под лицензией BSD, в отличии от GPLv3 у GCC. BSD позволяет не открывать исходники при распространении исполняемых файлов компилятора.

С LLVM+CLang будет интересно поиграть любому кто когда-либо хотел написать свой компилятор, или считает, что компилятор собранный своими руками дает более теплый бинарный код.

БОльшая часть часть разработчиков llvm/clang используют его под Linux/MacOS — и там его сборка/установка не вызывает каких либо проблем, путь основательно протоптан. А вот в случае windows ситуация несколько осложняется — об обходе нескольких граблей при сборке, о том, что связывает clang и gcc, и какие баги придется фиксить в релизе — под катом.
Читать дальше →

Raspberry Pi: измеряем влажность и температуру с помощью DHT11/DHT22

Время на прочтение5 мин
Количество просмотров224K
На Хабре уже публиковалась статья о подключении датчика температуры DS18B20 к Raspberry Pi. В нашем новом проекте, который строится на Raspberry Pi, понадобилось измерять не только температуру, но и влажность. Я расскажу, как подключить недорогие китайские датчики влажности к Raspberry Pi. Просмотрев несколько вариантов различных датчиков, остановился на двух наиболее массовых на рынке датчиков. Это DHT11, который привлек своей ценой $3 (с доставкой) и датчик DHT22 (около $10 с доставкой).
Читать дальше →

Летающий телефон или палочка-выручалочка

Время на прочтение7 мин
Количество просмотров91K
Самый популярный вопрос встречных людей: ”Дядя, а куда вы зимой с удочкой?”

Главное преимущество телефона перед зеркалкой — он всегда рядом. Поэтому зимние испытания 920-й продолжаются в полетах на малых высотах и небольших скоростях.
В коротком ролике представлено несколько сюжетов, показывающих возможности летающего телефона. Идея позволит любителям видеосъемки использовать подобные приемы при создании своих фильмов с помощью любой модели телефона, обладающей хорошим стабилизатором изображения.
Сюжеты безопасны для людей, но, судя по последнему кадру, не для телефона.
Для чистоты эксперимента по проверке встроенного в телефон стабилизатора, программные стабилизаторы изображения не применялись. Максимальное удаление камеры от оператора составляет 6 метров.


Читать дальше →

Просто, как дважды два четыре

Время на прочтение4 мин
Количество просмотров78K
Наверное, каждый из хабровчан хотя бы раз в жизни слышал это выражение. Действительно, что может быть проще? Однако я знавал преподавателя математического анализа, который, услыхав подобное, ехидно улыбался в усы и предлагал доказать этот факт. После этого у говорившего обычно случался когнитивный диссонанс.

И действительно, как же доказать, что 2 × 2 = 4? Ответ под хабракатом.

Дисклеймер


Данная статья не содержит ничего нового для читателей с серьёзным математическим образованием. Также, вполне вероятно, она будет неинтересна людям с чисто инженерным складом ума. Этот текст писался в расчёте на тех, кому интересны основания математики, но кто до сих пор не нашёл времени и сил в них разобраться.
Читать дальше →

300 экранов, один админ — как работает Digital Signage

Время на прочтение5 мин
Количество просмотров37K


Вы едете в лифте. Перед вами экран с информацией. Присмотримся к нему повнимательнее. Для начала проверим, куда идёт кабель. Если открыть люк сверху, то можно увидеть, что прямо на крыше лифта лежит системный блок в специальном исполнении с некоторой дополнительной защитой. И без вентиляторов. Там стоит какая-нибудь довольно простая Windows (возможно — embedded-версия, поставленная ещё на заводе) и Wi-Fi модуль. Где-то неподалёку в шахте найдётся и роутер, подключённый кабелем к локальной сети.

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

Это — часть системы дистрибуции контента. Конкретно этот узел может ездить вместе с лифтом во Владивостоке, а админить его может человек, сидящий где-то далеко, например, в Москве.
Читать дальше →

SXB: инкрементальный бэкап MySQL

Время на прочтение4 мин
Количество просмотров17K
Эта статья является продолжением статьи Разрабатываем новый формат файла для бэкапа сайтов, в которой рассматривался перспективный формат для бэкапа сайтов.

В этой статье мы рассмотрим вторую часть формата — возможность блочного инкрементального бэкапа для MySQL.

Формат SXB предназначен для пользователей начального и среднего уровня. Для тех, кто не знаком (или не может использовать их на конкретном сайте) со средствами горячего бэкапа (бинарные логи, снимки файловой системы, Xtrabackup и т.п.). Грубо говоря, для тех, кто для бэкапа MySQL использует mysqldump и подобные программы, создающие SQL-дамп базы.

Сразу напомню, что формат пока на стадии отработки технологии, и в конце статьи вас ждет тестовый PHP-скрипт.
Читать дальше →

Чему я научился у Джейсона Фрайда (37signals)

Время на прочтение10 мин
Количество просмотров27K
Творческая беседа Дэна Шиппера, кофаундера Firefly и Джейсона Фрайда, кофаундера 37signals привела автора статьи к занятным выводам о том, как и кому продавать ПО. Надеемся, и вам, Хабражители, принесет пользу.

Переведено компанией-локализатором Alconost


Читать дальше →

SignalR в помощь, или как оживить web

Время на прочтение7 мин
Количество просмотров105K

Введение


Во многих web проектах присутствуют элементы, значение которых необходимо часто менять. Это могут быть счётчики, индикаторы, уведомления и подобные элементы. Показывать ли актуальные значения после обновления страницы или же можно реализовать автообновление всех этих данных? Для нас ответ очевиден: если есть возможность динамически менять элементы, то для обновления страниц не остается места.
Читать дальше →

Notification Hubs — облачный сервис уведомлений миллионам пользователей iOS и Windows

Время на прочтение3 мин
Количество просмотров7.9K
Ранее в январе Скотт Гатри анонсировал новый функционал подсистемы обмена сообщениями Windows Azure Service Bus под названием Notification Hubs. Узлы уведомлений (Notification Hubs) – это новый функционал предлагающий экстремально масштабируемую, кроссплатформенную инфраструктуру пуш-уведомлений для миллионов пользователей и устройств.

Отличительные особенности нового сервиса Notification Hubs:

  • кроссплатформенная поддержка пуш-уведомлений. Сервис узлов уведомлений предлагает API для отправки уведомлений различным устройствам и платформам. Вы можете отправлять сообщения специфичные для каждой платформы и в независимом формате. Сегодня поддерживаются платформы Windows 8 и Apple iOS. Поддержка Android и Windows Phone ожидается вскоре;
  • эффективная маршрутизация публикаций/подписок и мултикаст основанный на тегах. Сервис узлов уведомлений оптимизирован специально для отправки с низкими задержками уведомлений тысячам и миллионам устройств. Ваш серверный бэкенд может отправить одно сообщение в узел уведомлений и миллионы пуш-уведомлений будут автоматически отправлены пользователям. Устройства и приложения могут быть определить теги для каждого пользователя при регистрации в узле, которые могут использоваться для фильтрации пользователей при отправке сообщений. Эти теги могут быть любыми строками, что значительно облегчает задачу отправки сообщений определенным группам пользователей;
  • экстремальное масштабирование. Узлы уведомлений и Windows Azure позволяют вам работать с миллионами устройств и пользователей без необходимости в построении или переделке собственной инфраструктуры. Механизм маршрутизации публикаций/подписок позволяет эффективно и просто маршрутизировать и доставлять уведомления миллионам пользователей без вложений в собственную инфраструктуру;
  • использование из приложения с любым бэкендом. Узлы уведомлений могут быть интегрированы и использованы из любого приложения с серверным бэкендом. Узлы эффективно работают в связке с Windows Azure Mobile Services. Они также могут быть использованы серверными приложениями размещенными в виртуальным машинах (IaaS) Windows или Linux. Решения на базе Cloud Services и Windows Azure Web Sites так же могут использовать узлы уведомлений.

Новый функционал интегрирован в панель администрирования Windows Azure. Создание узла уведомлений осуществляется в несколько кликов мышью и требует меньше минуты.
Читать дальше →

Обновление возможностей Remote Desktop Services в Windows Server 2012

Время на прочтение7 мин
Количество просмотров79K
Добрый день уважаемые коллеги и друзья!

Сегодня мне хотелось бы немного поговорить о тех новшествах, которые появились в таком компоненте Windows Server 2012, как Remote Desktop Services. Нововведений достаточно много, многие из них появились благодаря плотной и тесной обратной связи с нашими любимыми коллегами-админами.

И так — более подробно про новинки RDS.

В общем, я думаю, что сначала можно вспомнить основное назначение служб RDS — если говорить вкратце, то основной смысл RDS заключается в том, что эти службы позволяют централизовать и контролировать приложения и данные пользователей, которые являются для них необходимыми для выполнения своей работы — причем список устройств, откуда производиться доступ может быть весьма широким. Именно RDS позволяет пользователям использовать VDI-инфраструктуру, т.е. подключаться к виртуальным машинам, где находится клиентская ОС пользователя, запускать удаленный приложения RemoteApps на сервере терминалов (а ведь именно так раньше назывались службы RDS — Terminal Services). Таким образом можно сказать, что RDS позволяют реализовать подход «работайте откуда угодно с чего угодно» — т.е. нам особо становиться неважно, что служит устройством доступа к рабочему окружению пользователя — ПК, ноутбук, планшет, смартфон. Точно так же RDS позволяет нам работать с рабочим окружением практически откуда-угодно — из дома, в офисе (естественно!), в пути или же загорая на пляже на Мальдивах (лишь бы был бы Интернет — Аминь!).



Читать дальше →

Информация

В рейтинге
1 401-й
Зарегистрирован
Активность