Search
Write a publication
Pull to refresh
0
Евгений @RuKoolread⁠-⁠only

User

Send message

Обновление Cloud9 IDE — автодополнение, совместное редактирование, оффлайн-режим и виртуальный сервер с консолью

Reading time1 min
Views4.2K
Вчера обновилась облачная IDE Cloud9. Было сделано несколько существенных нововведений. Первое из них — совместное редактирование. Теперь над одним и тем же кодом могут в реальном времени работать несколько человек. Есть встроенный чат.


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

Qbaka — сервис для отслеживания JS-ошибок

Reading time1 min
Views9.4K
Петербургские разработчики Андрей Мима (amima — ex-Яндекс, ex-ВКонтакте) и Даниил Гительсон (meta4) запустили сервис Qbaka, задачей которого является помощь программистам сайтов и приложений в отслеживании ошибок в коде JavaScript. Сервис пока находится в стадии бета-тестирования, однако уже открыт для всех желающих.

Сервис предельно прост в использовании: программист добавляет несколько строк JS-кода к своему веб-приложению — они асинхронно подгружают ядро «Кубаки», которое собирает ошибки (слушая window.onerror) и отправляет их на сервер.
Читать дальше →

Веб-разработчик и дизайнер Крис Койер собрал за 24 часа 25 000 $ на Kickstarter

Reading time2 min
Views8.2K
Понятно, что все уже устали от новостей про то, как очередная команда разработчиков собрала кучу денег на разработку римейка очередной классической игры. Сейчас речь пойдет немножко о другом — об относительно известной звезде фронтенда, веб-разработчике, CSS-евангелисте и авторе популярного сайта CSS-tricks.com Крисе Койере. Он решил собрать деньги на редизайн своего детища, причем сам процесс он хочет записать в виде обучающих скринкастов и предоставить их всем, кто поддержит его.

image

Буквально вчера он выложил на kickstarter.com проект следующего содержания (далее — перевод):
Читать дальше →

Mozilla представила проект Webmaker и редактор Thimble

Reading time1 min
Views4.8K
Сегодня в своем блоге Mozilla объявила о запуске проекта Mozilla Webmaker и редактора Thimble.



Thimble (англ. Наперсток) — это новый инструмент, который позволяет всем с невероятной простотой создавать и публиковать свои собственные веб-страницы и другие проекты в считанные минуты.
Thimble упрощает разработку. Это интуитивный визуальный редактор, который позволяет создавать и редактировать HTML прямо в браузере, просматривать и исправлять свои работы, а затем публиковать и делиться полностью функциональными веб-страницами с помощью одного клика. Thimble открывает барьеры для начинающих пользователей, которые начали учиться кодить, и включает в себя ряд стартовых проектов и шаблонов, чтобы помочь практически любому быстро приступить к работе.
Читать дальше →

Мобильные устройства, position: fixed; и во что это выливается

Reading time3 min
Views42K


По ходу редизайна блога появилось желание создать 'Scroll to Top' функцию не только для десктопа, но и для мобильных устройств. В связи с небольшим свободным пространством на экране смартфона было решено сделать кнопку возвращения на верх в виде полоски высотой в 20px прикрепленную к нижней границе экрана.
Читать дальше →

Как Линус Торвальдс относится к Nvidia?

Reading time1 min
Views58K
Несколько дней назад на Q&A сессии, одна девушка спросила Линуса Торвальдса, почему драйвера для видеокарты nvidia к её ноутбуку вышли с полугодовой задержкой, а скажем с видеокартой от Intel у неё таких проблем не было. И еще немного пожаловалась на неудачные попытки обратиться в саппорт Nvidia.

Торвальдс ответил в том духе, что мол, подобные ситуации в наше время являются скорее исключением из правил, но, к сожалению, Nvidia в последнее время вели себя как большие мудаки при сотрудничестве с разработчиками Linux, хотя при этом они и стремятся выпускать много-много чипов для устройств на Android.

Смотрим видео (интересное примерно с 49:32)

История одного расследования о странном поведении XMLHttpRequest в новых версиях Firefox

Reading time8 min
Views5.5K

I. Суть проблемы.


В список основных предназначений XMLHttpRequest, конечно, не входит запрос HTML, чаще этот инструмент взаимодействует с XML, JSON или простым текстом.

Однако связка XMLHttpRequest + HTML хорошо работает при создании расширений к браузеру, которые в фоновом режиме опрашивают на предмет новостей сайты, не предоставляющие для этого почтовую подписку, RSS или другие экономные API или предоставляющие эти сервисы с какими-то ограничениями.

При создании нескольких расширений для Firefox я сталкивался с такой необходимостью. Работать с полученным от XMLHttpRequest кодом HTML при помощи регулярных выражений — способ очень ненадёжный и громоздкий. Получить DOM от XMLHttpRequest можно было лишь для правильного XML. Поэтому приходилось следовать хитрым советам на сайте разработчиков. Однако начиная с Firefox 11 появилась возможность непосредственного получения DOM от XMLHttpRequest, а в Firefox 12 была добавлена обработка таймаутов.

Я испытал новую возможность на создании мини-индикаторов новых топиков для двух небольших форумов, и это оказалось очень удобным (50 строчек кода плюс расширение CustomButtons — вот и готовый индикатор за пять минут, с опросами по таймеру и четырьмя состояниями: нет новостей, есть новости, ошибка и таймаут; подробнее можно почитать здесь). Всё работало как часы.

Поэтому я попытался убрать из кода своих расширений все прежние костыли и ввести туда новый удобный парсинг. Однако при работе с сайтом rutracker.org возникла странная проблема (тестирование проходит на последней ночной сборке под Windows XP; очень прошу прощения за все косяки в коде и формулировках: у меня нет программистского образования и опыт мой в этой сфере, к сожалению, очень невелик.).

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

Разработка сайтов с адаптивным дизайном

Reading time5 min
Views4.8K
Перевод статьи “Responsive workflow” финского веб-дизайнера и разработчика Вильями Салминена (Viljami Salminen).

На прошлой неделе я был на конференции Webshaped, где Стивен Хэй (Stephen Hay) рассказывал о процессе разработки адаптивного дизайна. Этот пост не совсем о том же самом, но подход Стивена напомнил мне мой собственный, поэтому я решил изложить некоторые мысли по этому поводу, описать как моя работа эволюционировала за прошедшие два или три года и как может измениться в будущем.

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

Padrino для frontend разработчика

Reading time3 min
Views4.7K
Видимо, только второй пост на хабре с участием Padrino за 2 года ;)



Используйте HAML для генерации HTML



Используйте SASS для генерации CSS



Используйте Coffee Script для генерации JS



Скачайте шаблонное приложение, установите инструментарий и начните разработку немедленно.

10 минут и все работает даже под Windows.

Ага! Вот чем я займусь в выходные!

Новый IM+ 6.5: прощай MySpace, привет… Mamba

Reading time2 min
Views2.3K


Мультипротокольный клиент IM+ для iOS, следуя современной моде «наращивания» цифр в номере версии, дорос уже до версии 6.5 (еще в декабре прошлого года я писал о новинках версии 5.6).
Android-версия пока ещё обладает номером 6.2.4.

В списке изменений было удивительно прочесть не только о появлении нового IM-протокола от сервиса знакомств Mamba.ru, но и о прекращении дальнейшей поддержки MySpace. К счастью для фанатов MySpace никто убирать существующий функционал из IM+ не будет :)

Нажмите прямо сейчас чтобы узнать больше

[Перевод] HTML5 Адаптивные изображения

Reading time3 min
Views26K


Адаптивные изображения одна из проблем Responsive Web Design. Возможно вы начали использовать high-res изображения для дисплеев с высоким разрешением и уменьшать их размер для устройств с меньшим разрешением дисплея, что попросту съедает трафик без какой либо пользы для владельцев устройств с дисплеями с небольшим разрешением. Или все так же используете изображения невысокого разрешения, которые ужасно смотрятся на больших экранах и дисплеях с высоким разрешением.
Читать дальше →

WebGl-2d.js: Реализация Canvas 2D API на WebGL

Reading time2 min
Views12K
WebGL-2d — весьма интересная javascript библиотека, реализующая стандартные методы для работы с 2d контекстом Canvas на WebGL контексте.

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

Подключив WebGL-2d и добавив всего пару строчек, мы можем существенно ускорить отрисовку графики, реализованную с средствами Canvas 2d API в браузерах, поддерживающих WebGL и обеспечить fallback к обычному 2d контексту.

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

Вебинар: Что такое регулярные выражения?

Reading time2 min
Views8.4K
Это четвертый вебинар из цикла бесплатных вебинаров по автоматизации тестирования.
Видеозапись (продолжительность 1 час 10 мин.):

Темы и детали видеозаписи под катом
Читать дальше →

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

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

Сейчас же я хочу продемонстрировать простейшую идею, предложенную 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 ) {
	var self,
		name = name || '_objectStorage',
		defaultDuration = 5000;
		
	// дабы не плодить кучу экземпляров, использующих один и тот же ключ хранилища, 
	// просто возвращаем единственный с заданным именем,
	// меняя только duration (если имеется)
	if ( ObjectStorage.instances[ name ] ) {
		self = ObjectStorage.instances[ name ];
		self.duration = duration || self.duration;
	} else {
		self = this;
		self._name = name;
		self.duration = duration || defaultDuration;
		self._init();
		ObjectStorage.instances[ name ] = self;
	}
	
	return self;
};
ObjectStorage.instances = {};
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() {
			self.timeoutId = setTimeout( function () {
				self._save( 'local' );
				callee();
			}, self._duration );
		})();

		window.addEventListener( 'beforeunload', function () {
			self._save( 'local' );
			self._save( 'session' );
		});
	},
	// на случай, если нужно удалить таймаут (clearTimeout( storage.timeoutId ))
	timeoutId: null,
	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};

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

HTML5-карты для мобильных платформ

Reading time2 min
Views2K
На днях команда HTML5-карт Nokia предоставила API карт под смартфоны и планшетники.

С места — в карьер!

Попробовать можно по ссылке: bit.ly/html5map
На данный момент поддерживаются Webkit-браузеры.

Достоинства и возможности

  • Компоненты
    Карты, пробки, поиск, геолокация, информация об интересных местах, навигация, пешеходные маршруты, избранное.
  • Вес
    80 KB Javascript + 10 KB CSS
  • Производительность
    Быстрая загрузка и плавные эффекты.
  • Готовность
    Можно легко поменять цвета, обернуть в PhoneGap или QtWebkit и получить готовое приложение.
  • WYSIWYG-помощник
    Помогает настроить конфигурацию под себя.

Подробнее обо всех возможностях

[Перевод] CSS Filters

Reading time5 min
Views134K
CSS Filters были созданы для получения различных визуальных эффектов при применении их к DOM элементам. В данной статье мы поговорим об истории фильтров, о том, что они делают и как их применять. Так же рассмотрим их влияние на производительность как на десктопах, так и на мобильных устройствах.
Читать дальше →

Отслеживание ошибок, поисковая оптимизация и анализ сайтов на качество разметки и скорость страниц

Reading time7 min
Views14K
Легко следить за качеством разметки, поисковой оптимизацией и производительностью на небольшом сайте, где вы точно уверены какой блок разметки каким кодом генерируется. Сложнее становится, когда ваш сайт разрастается и код начинает генерироваться с помощью элементов управления, мастер-страниц, шаблонов, CMS и другими автоматическими способами.

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

clip_image001
Рис.1. Главное окно SEO Toolkit

В этой статье попробуем провести такой анализ на примере одного из самых известных сайтов рунета artlebedev.ru с помощью бесплатного инструмента Search Engine Optimization Toolkit.
Читать дальше →

Javascript: ООП, прототипы, замыкания, «класс» Timer.js

Reading time19 min
Views97K
Здравствуйте программисты начинающие, законченные, а также все сочувствующие. Как известно, ничто не познается так хорошо, как на собственном опыте. Главное, чтобы опыт был полезный. И в продолжении этой простой мысли я хочу предложить заняться несколькими полезными делами сразу:
  • Побеседовать на тему «ООП с человеческим лицом».
  • Разобраться с прототипами в javascript, коротко и сердито!
  • Вспомнить, что «замыкание» это не только ценный мех… удар током.
  • Написать на javascript класс Timer — этакий планировщик событий для запуска анимаций, событий, любых функций.
  • Весело провести время!

Предупреждение! Если вы не ждете от статьи ничего веселого… то ошибаетесь. Людям с пониженным чувством юмора читать… еще более рекомендуется! Ну-с, приступим…
Читать дальше →

Цитаты о языках программирования

Reading time3 min
Views41K
Что учёные, писатели и программисты думают о популярных языках программирования.

Все языки


«Есть два подхода к программированию. Первый — сделать программу настолько простой, чтобы в ней очевидно не было ошибок. А второй — сделать её настолько сложной, чтобы в ней не было очевидных ошибок.»
Tony Hoare. Профессор, занимался реализацией Алгол 60, сейчас исследователь в Microsoft Research.


Algol 60 (позже повлиявший на C)


«Я не мог устоять перед искушением добавить в язык нулевой указатель (null), просто потому, что его так легко было реализовать. Это привело к бессчётному множеству ошибок, уязвимостей и сбоев, которые нанесли ущерб, наверное, в миллиард долларов за последние сорок лет.»
Tony Hoare.
Читать дальше →

PocketLint: Facebook намерена приобрести Opera?

Reading time2 min
Views1.4K
В интернете с подачи ресурса PocketLint распространяются слухи, сопровождаемые дежурной фразой «стало известно из доверенных источников», о том, что компания Марка Цукерберга намерена приобрести норвежского производителя браузеров Opera Software. Основная цель покупки заключается в создании конкурирующего продукта, который призван составить достойного соперника Google Chrome и был бы максимально интегрирован с возможностями социальной сети.

Учитывая всем известную покупку Facebook модного сервиса Instagram — компании со штатом из 13 человек и фактически без прибыли, хотя и с солидной базой аудитории — за умопомрачительную сумму в один миллиард долларов, слухи или мысли редакторов PocketLint о покупке Opera не выглядят таким уж невероятными. Мало того, недавно прошедшее IPO Facebook, несмотря на то, что оно и вызвало нарекания инвесторов, является весьма успешным мероприятием — капитализация социальной сети даже с учётом подешевевших акций составляет около 100 млрд $: другими словами, финансовых ресурсов у Марка Цукерберга более чем достаточно.

Согласно разным источникам, рыночная капитализация Opera Software составляет около 700 $ млн; норвежская компания является безусловным лидером среди мобильных браузеров — Opera Mini пользуются 170 млн человек, причём с учётом десктопной версии Opera аудитория продуктов составляет около 270 млн человек.

Обозреватели ресурса TheNextWeb провели собственное расследование по этому вопросу и выяснили, что, во-первых, на данный момент топ-менеджмент Opera Software ведёт переговоры о покупке компании неназванным покупателем и, во-вторых, новых сотрудников в компанию уже некоторое время не принимают. Всё это в совокупности может говорить о том, что некие грядущие изменения в Opera всё-таки возможны.
Источник

Information

Rating
Does not participate
Location
Заречный (Пензенская обл.), Пензенская обл., Россия
Date of birth
Registered
Activity