Архив за Май 2012

Свёртываемые элементы («спойлеры»): сравнительно новая альтернатива хабракату

Четверг, 31 Май 2012

Не так давно Finom выложил блогозапись «Работа с локальным хранилищем, как с объектом — Продолжение» и в ней употребил новинку хабрахабровской разметки: элемент <spoiler></spoiler>. Оказывается, этот элемент ужé документирован в справке по HTML-тегам (в правом верхнем углу над полем редактирования блогозаписей) и может невозбранно употребляться на Хабрахабре.

Употребляется он примерно вот каким образом:

<spoiler title="Заголовок свёртываемого элемента">
Содержимое свёртываемого элемента.

Скрытию может подвергаться не только текст, но и другие элементы гипертекста — например, изображения и гиперссылки:

<a href="http://danbooru.donmai.us/post/show/951110/">
<img src="http://i46.tinypic.com/30axitk.jpg" alt="[V for Vendetta]" title="" border=0></a>
</spoiler>

Результат работы кода этого примера выглядит следующим образом:

Заголовок свёртываемого элемента

Содержимое свёртываемого элемента.

Скрытию может подвергаться не только текст, но и другие элементы гипертекста — например, изображения и гиперссылки:

Заголовок можно жмякнуть мышóю — и свёрнутое содержимое тотчас же развернётся. Следующий жмяк мышóю по заголовку приведёт содержимое обратно в свёрнутое состояние.

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

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

Visual Studio 2012 Release Candidate

Четверг, 31 Май 2012


Вышла Release Candidate версия Visual Studio 11.
Скачать можно тут.
Читать дальше →

Стали доступны для загрузки Windows 8 Release Preview + Visual Studio 2012 RC + Windows Server 2012 RС

Четверг, 31 Май 2012

Компания Microsoft обещала в начале июня выпустить Windows 8 Release Preview и ребята сдержали своё слово. Сегодня 1 июня 2012 года и уже несколько часов доступна для загрузки Windows 8 Release Preview на 14-ти языках, в том числе и на русском. А вместе с ней Visual Studio 2012 Release Candidate и Windows Server 2012 Release Candidate.

Подробности о нововведениях в Windows 8 RP в блоге Стивена Синовски, а про VS 2012 RC на хабре уже упоминали.

5 мифов о тестировании

Четверг, 31 Май 2012

image Недавно начала вести курсы по основам тестирования, и так получилось, что группа собралась из одних программистов. И какого же было мое удивление, когда люди, задействованные в разработке программного обеспечения, ничего не знают о тестировании. Умные ребята, продвинутые программисты, хорошо разбирающиеся в своей предметной области, ничего не знают о том, как тестировать ими же написанное программное обеспечение.
Несмотря на то, что тестрование существует уже давно, это еще молодое развивающееся направление, про которое зачастую мало что знают, за пределам отдела тестирования. И тогда я задумалась, почему люди идут работать тестировщиками, или наоборот не идут. Движут ли ими какие-то предубеждения и мифы. Как-то на глаза попалась статья Майка Брауна (Mike Brown) про 5 мифов в тестировании, переводом которой хочу с вами поделиться
:

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

Ознакомьтесь и скажите, согласны вы со мной или нет.

Миф первый: тестирование — это скучно.

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

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

Миф второй: тестирование — это просто.

Часто говорят также, что тестирование программного обеспечения не может быть ТАК сложно, так как обычные пользователи постоянно находят ошибки в программах. На самом деле тестирование является очень сложным мастерством, овладеть которым среднему человеку не под силу. Вот что говорит Патрик Коупленд из Google о необходимых качествах тестировщика:

«Это особый склад ума и особая страсть. На 100 проведенных мной собеседованиях для тестировщиков я прежде всего обращал внимание на: 1) наличие особой способности к поиску проблем и 2) страсть к тестированию, присутствующую в человеке наряду с этой способностью. Другими словами тестировщики любят свою работу и делают ее хорошо. Они отмечают, что при тестировании приходится решать проблемы, равные, а иногда даже и превосходящие по сложности те, что приходится решать при программировании. Тот, кто является тестировщиком от Бога и правильно относится к работе, никогда на останется без дела. Такие люди — на вес золота. „

Миф третий: тестировщики всего лишь ищут ошибки.

Тестировщики действительно занимаются поиском ошибок, но это далеко не единственная цель их деятельности. Очень хорошо высказывается об этом мифе автор, опубликовавший на сайте freesoftwaretesting.info статью под именем Ankur:

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

Миф четвертый: машины заменят тестировщиков, и они станут ненужными.

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

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

Миф пятый: тестировщики не ладят с разработчиками.

Вполне понятно, почему этот миф так распространен. Об этом однажды написал гуру тестирования Джеймс Бах:

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

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

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

  • автоматизация позволяет сократить расходы;
  • автоматизация решает проблему с нехваткой ресурсов;
  • чем больше автотестов, тем лучше;

Или самый распространенный миф о том, что тестирование улучшает качество программного продукта. Чтобы улучшать качество, нужно его создавать, а тестирование только проверяет качество. Да, конечно, тестировщики проверили качество программного обеспечения, нашли ошибки, показали отчет о тестировании, программисты исправили, качество повысилось. Но не тестировщики улучшают качество программного обеспечения.

Что касается меня, я шла в тестирование, движимая каким-то предчувствием, что в тестировании есть куда развиваться, в тестировании никогда не будешь стоять на месте. Вот это развитие меня привлекало и привлекает по сей день. Хотя, конечно, я думала, что тестирование — это легко.

А какие мифы о тестировании знаете вы?

PS. Большое спасибо за перевод моему коллеге AndreiYemelianov

[recovery mode] Вышли Windows 8 Release Preview, Visual Studio 2012 RC, Windows Server 2012 RC и TFS 2012 RC

Четверг, 31 Май 2012

Сегодня Windows 8 Release Preview доступен для загрузки на 14 языках, в том числе и на русском. Как пишет Стив Синофски, за ней уже будет следовать RTM, так что ждать осталось совсем немного. Напомню, что выход Release Preview был запланирован на первую неделю июня этого года соответственно. Windows Server 2012 RC и Visual Studio 2012 RC стали доступны чуть раньше.
Читать дальше →

Дистанционный пульт DSLR для ночной фотосъёмки

Четверг, 31 Май 2012

Французский фотограф и радиолюбитель Pixel_K опубликовал инструкцию, как сделать компактное устройство на Arduino для дистанционного управления DSLR.

Пульт MiniCom делался для фотосъёмки ночного неба, поэтому автор добавил к нему ЖК-дисплей. Всё управление — одной маленькой ручкой, которая вращается и нажимается. Таким пультом можно пользоваться даже в перчатках при –20°C.


Список деталей

Сортировка методом Золушки

Четверг, 31 Май 2012

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

А теперь попробуем представить реальную задачу, которую проще всего решить подобным методом и такими простыми движениями. Условно назовем её «Приглашение на день рождения».

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

Работа с локальным хранилищем, как с объектом — Продолжение

Четверг, 31 Май 2012

Этим постом я бы хотел исправиться и предложить адекватный способ работы с хранилищем, как с объектом. Код из поста «Работа с локальным хранилищем, как с объектом? Легко!» использовать крайне не рекомендую, там всё плохо (минусы изложены внизу). Цель данного — объяснить всем тем, кто добавил статью по ссылке в избранное или поставил плюсик, никогда не использовать этот код.

Сейчас же я хочу продемонстрировать проетейшую идею, предложенную Scalar в комментарии.

При загрузке страницы (даже до события готовности DOM дерева) обращаемся к хранилищу (в данном случае, это localStorage и sessionStorage), получить JSON, десериализовать его и положить в какую-нибудь переменную.

localObject = JSON.parse( localStorage.getItem( '_myStorage' ) ); // "{'a':1, 'b':2}" → {a:1, b:2}

Затем, каждые N миллисекунд производить обратный процесс:

localStorage.setItem( '_myStorage', JSON.stringify( localObject ) );

При событии onbeforeunload делать то же самое.

Реализация идеи слишком проста (уровень сложности реализации низок и доступен даже новичку). Но, не все (и я в том числе) до этого додумались.

Код конструктора ObjectStorage

var ObjectStorage = function ObjectStorage ( name, duration ) {
	this._name = name || '_objectStorage';
	this.duration = duration || 5000;
	this._init();
};

ObjectStorage.prototype = {
	// type == local || session
	_save: function( type ) {
		var stringified = JSON.stringify( this[ type ] ),
			storage = window[ type + 'Storage' ];
		if( storage.getItem( this._name ) !== stringified ) {
			storage.setItem( this._name, stringified );
		}
	},
	
	_get: function( type ) {
		this[ type ] = JSON.parse( window[ type + 'Storage' ].getItem( this._name ) ) || {};
	},
	 
	_init: function() {
		var self = this;
		self._get( 'local' );
		self._get( 'session' );
		
		( function callee() {
			setTimeout( function() {
				self._save( 'local' );
				callee();
			}, self._duration );
		})();
		
		window.addEventListener( 'beforeunload', function() {
			self._save( 'local' );
			self._save( 'session' );
		} );
	},
	
	local: {},
	session: {}
};

Использование:

var storage = new ObjectStorage;
storage.local = {a:4, b: {c:5}};
storage.session = {a:7, b: {c:8}};
b = storage.local.b;
b.c = {d:6};

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

[Перевод] Разработка прогрессивного фильтра местоположения

Четверг, 31 Май 2012

Каждое взаимодействие, которое мы создаем, помогает определить и направить пользовательский опыт. Наилучшим вариантом будет разработка чего-то интуитивно понятного перед созданием эстетически приятного интерфейса. "Зачем изобретать"велосипед", если уже есть все готовое в различных шаблонах?!«, спросите вы.

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

Следующий пример поможет вам понять, о чем идет речь. Читать дальше →

Amazon патентует «цифровые подарки»

Четверг, 31 Май 2012

Хотите подарить своей маме электронную книжку или какой-то другой цифровой объект? Будьте внимательны, это может нарушить патент на цифровые подарки, который только что получила компания Amazon. Патент США № 8,190,519 покрывает системы и методы для отправки и получения подарков, включая цифровые подарки, которые пересылаются по цифровым каналам связи.


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

Календарь
Май 2012
Пн Вт Ср Чт Пт Сб Вс
« Апр   Июн »
 123456
78910111213
14151617181920
21222324252627
28293031  
Архивы