Здравствуйте, дорогие читатели. Сегодня я расскажу вам о малоизвестном способе разнести два элемента по разным сторонам блока, в котором они находятся. Например вот так
Андрей Ребров @mythmaker
Технический директор
Автоматическое определение часового пояса пользователя
5 мин
14KМужик сидит, слушает радио.
— В Москве полночь, в Благовещенске 6 утра, во Владивостоке, Хабаровске, Южно-Сахалинске 7, в Магадане 8, в Петропавловске-Камчатском 9 часов.
Мужик сидит, сидит, потом встаёт, и с некоторым сожалением произносит:
— Эх, ну и бардак же у нас в стране!
Текст перепечатан с аудиозаписи позывных «Маяка».
Для справки: в Петропавловске-Камчатском теперь UTC+11 (летом UTC+12), поэтому теперь в полночь по московскому времени там было бы 8 часов, а не 9.
Во многих местах на сайтах отображается время. И во многих случаях лучше всего отображать не время по Гринвичу, не время на сервере, а время в часовом поясе пользователя.
Часто предлагается выбрать свой часовой пояс из огромного списка возможных вариантов. Конечно, возможность приятная, но удобнее, если сайт может определить часовой пояс пользователя сам. А сделать это, как можно догадаться, совсем несложно — достаточно получить локальное время и отступ от UTC с помощью JavaScript и передать этот отступ на сервер с помощью XMLHttpRequest.
— В Москве полночь, в Благовещенске 6 утра, во Владивостоке, Хабаровске, Южно-Сахалинске 7, в Магадане 8, в Петропавловске-Камчатском 9 часов.
Мужик сидит, сидит, потом встаёт, и с некоторым сожалением произносит:
— Эх, ну и бардак же у нас в стране!
Текст перепечатан с аудиозаписи позывных «Маяка».
Для справки: в Петропавловске-Камчатском теперь UTC+11 (летом UTC+12), поэтому теперь в полночь по московскому времени там было бы 8 часов, а не 9.
Во многих местах на сайтах отображается время. И во многих случаях лучше всего отображать не время по Гринвичу, не время на сервере, а время в часовом поясе пользователя.
Часто предлагается выбрать свой часовой пояс из огромного списка возможных вариантов. Конечно, возможность приятная, но удобнее, если сайт может определить часовой пояс пользователя сам. А сделать это, как можно догадаться, совсем несложно — достаточно получить локальное время и отступ от UTC с помощью JavaScript и передать этот отступ на сервер с помощью XMLHttpRequest.
+29
«LibCanvas» — фреймворк для работы с Javascript Canvas, часть вторая
3 мин
5.4K![](https://habrastorage.org/getpro/habr/post_images/613/21c/64b/61321c64bad9c4b7d46d0a08cf07a867.png)
Привет, Хабр! Я хочу рассказать тебе о новой библиотеке, которая помогает очень легко и изящно рисовать всякие штучки-дрючки на html5 canvas. Возможно, ты уже слышал о ней, но сейчас она пережила новое рождение. Что-ж, под катом я покажу тебе много интересненьких примеры, расскажу про нюансы работы и дам ссылку на грозу всех секретарш — почти работающий пасьянс «Косынка», созданную с помощью этой LibCanvas.
+36
Одиссея тестировщика
9 мин
6.1KПеревод
IT-индустрия претерпевает стремительные изменения. Все больше и больше команд разработчиков ставит тестирование если не во главу угла, то хотя бы в центр техпроцесса, и тестирование становится влиятельным фактором разработки. Буквально ежемесячно появляются новые улучшенные фреймворки и драйверы для автоматизированного тестирования. Команды, практикующие автоматизированное регрессионное тестирование, нуждаются в тестировщиках, обладающих отточенными исследовательскими навыками. Но большинство людей не получают подобных навыков во время учебы в вузах — откуда же тогда возьмутся такие тестировщики?
В то же время оказывается, что многие специалисты мечтают о хорошей работе, связанной с тестированием. Тестировщики часто спрашивают меня, как «втереться» в команду, работающую по Agile-методике, или как им найти просто хорошую работу. Если у них нет опыта в программировании, они переживают, что недостаточно технически подкованы, чтоб попасть в Agile-команду. С моей же точки зрения, навыки безусловно важны, но отношение к делу — это самое главное. Если вы готовы учиться, делать все для того, чтоб на выходе у команды получился по-настоящему хороший продукт, то у вас хорошие перспективы как у тестировщика. Мой вам совет — добровольно подключайтесь к любой деятельности, которая принесет новые знания и умения, и работайте на совесть, чтоб отточить приобретенные навыки.
В то же время оказывается, что многие специалисты мечтают о хорошей работе, связанной с тестированием. Тестировщики часто спрашивают меня, как «втереться» в команду, работающую по Agile-методике, или как им найти просто хорошую работу. Если у них нет опыта в программировании, они переживают, что недостаточно технически подкованы, чтоб попасть в Agile-команду. С моей же точки зрения, навыки безусловно важны, но отношение к делу — это самое главное. Если вы готовы учиться, делать все для того, чтоб на выходе у команды получился по-настоящему хороший продукт, то у вас хорошие перспективы как у тестировщика. Мой вам совет — добровольно подключайтесь к любой деятельности, которая принесет новые знания и умения, и работайте на совесть, чтоб отточить приобретенные навыки.
+13
Веб-сервисы в теории и на практике для начинающих
9 мин
618KЧто такое веб-сервисы?
Прежде всего, веб-сервисы (или веб-службы) — это технология. И как и любая другая технология, они имеют довольно четко очерченную среду применения.
Если посмотреть на веб-сервисы в разрезе стека сетевых протококолов, мы увидим, что это, в классическом случае, не что иное, как еще одна надстройка поверх протокола HTTP.
С другой стороны, если гипотетически разделить Интернет на несколько слоев, мы сможем выделить, как минимум, два концептуальных типа приложений — вычислительные узлы, которые реализуют нетривиальные функции и прикладные веб-ресурсы. При этом вторые, зачастую заинтересованы в услугах первых.
Но и сам Интернет — разнороден, т. е. различные приложения на различных узлах сети функционируют на разных аппаратно-программных платформах, и используют различные технологии и языки.
Чтобы связать все это и предоставить возможность одним приложениям обмениваться данными с другими, и были придуманы веб-сервисы.
+60
Советы программисту-дизайнеру интерфейсов
5 мин
11K![Нет сложным интерфейсам](http://hotimg23.fotki.com/a/24_4/236_190/BadNoGoodYes429.png)
Проблема
Программист часто выполняет роль дизайнера пользовательских интерфейсов. Можно поспорить, хорошо ли это. Однако, особенно в небольших компаниях, это реальность, которую не изменить.
Я верю, что программист может сделать очень приличный интерфейс. В этом посте я бы хотел собрать несколько советов, которые помогут программисту более или менее успешно погрузиться в иррациональный мир пользователей и проектировать неплохие интерфейсы.
Оговорюсь, что эти советы скорее подходят программистам, которые вынуждены заниматься разработкой пользовательского интерфейса. То есть по каким-либо причинам в компании нет дизайнера, регулярных юзабилити тестирований, процесса проектирования интерфейсов и т. п.
+222
Smokescreen — «Flash-плеер, написанный на Javascript»
3 мин
2.3KПеревод
Увидел недавно топик-ссылку Smokescreen — конвертер flash в html5\js, решил сделать перевод той информации, которую я уже читал в сети про этот новый инструмент. Если коротко: Smokescreen — новый проект с открытыми исходниками, направленный на преобразование Flash в JavaScript/HTML5 для лучшего взаимодействовия с веб-страницей там, где раньше это было невозможно.
С его помощью вы можете расширить поддержку своего проекта на новые платформы без изучения новых инструментов, Flash автоматически преобразуется в JavaScript/HTML5. Smokescreen будет выпущен под open source лицензией и будет распространяться бесплатно. Стоимость поддержки и обслуживания будет низкой, чтобы вы могли убедиться, что Smokescreen работает именно так, как вам необходимо. Библиотека даст вам широкий выбор инструментов для разработки, включая разработку на JavaScript, без использования ActionScript, и разработку с подключением Flash к HTML-страницам проекта.
С его помощью вы можете расширить поддержку своего проекта на новые платформы без изучения новых инструментов, Flash автоматически преобразуется в JavaScript/HTML5. Smokescreen будет выпущен под open source лицензией и будет распространяться бесплатно. Стоимость поддержки и обслуживания будет низкой, чтобы вы могли убедиться, что Smokescreen работает именно так, как вам необходимо. Библиотека даст вам широкий выбор инструментов для разработки, включая разработку на JavaScript, без использования ActionScript, и разработку с подключением Flash к HTML-страницам проекта.
+51
Почему посетители не становятся покупателями или 17 шагов на пути к идеальному интернет-магазину
7 мин
16K![image](http://goldenbuyer.ru/myfiles/shopcart.gif)
+87
Король умер — да здравствует король! ExtJS с сегодня уже Sencha
1 мин
2.6K![image](http://www.extjs.com/blog/wp-content/uploads/2010/06/sencha-logo.png)
Официальный сайт ExtJS говорит:
"Чудесные чудеса творятся! Сегодня мы объединяем свои усилия с проектами jQTouch и Raphaël и меняем имя нашей компании на Sencha. А так же переезжаем с адреса www.extjs.com на www.sencha.com."
Такие вот пироги! Сайт и твиттер уже живут по новым адресам.
Пару слов о том, что такое JQtouch: это jQuery плагин для разработки под мобильные девайсы типа АйФона, АйПода и прочие «forward-thinking» девайсы.
Что же такое Raphaël? А это крутая штука для разработки векторной графики под веб (см. демки по ссылке).
Ууух, ядреный коктейльчик должен получиться! :)
+63
Замены для nginx (Web Sockets)
1 мин
9KВ своё время nginx стал глотком свежего воздуха для Web-разработки.
В настоящее время, к сожалению, этот продукт тормозит развитие Web, так как является динозавром эпохи HTTP/1.0.
Если Вы используете современные возможности HTTP/1.1, или partial updates, или Web Sockets, нужна рабочая альтернатива.
В настоящее время, к сожалению, этот продукт тормозит развитие Web, так как является динозавром эпохи HTTP/1.0.
Если Вы используете современные возможности HTTP/1.1, или partial updates, или Web Sockets, нужна рабочая альтернатива.
+25
Новая версия FFmpeg — ещё один шаг на пути к HTML5 видео
1 мин
2.6K![FFmpeg](https://habrastorage.org/storage/habraeffect/9a/ee/9aee08f8bd4ba57f9e7e0c9551595d1d.png)
Буквально вчера вышла в свет новая версия набора свободных библиотек для работы с множеством различных медиаформатов — FFmpeg за скромной версией 0 точка 6.
Разработчики немного затянули с выпуском(больше года, предыдущая версия датируется мартом 2009-го), но этот факт меркнет перед списком улучшений этой версии — они просто коллосальны.
Если в кратце, то цель главная цель — улучшение поддержки HTML5 видео, на что указывает ненавязчивое название релиза — «Works with HTML5».
+72
Chrome App. Создание приложения для chrome (пример)
2 мин
10KКак все прекрасно помнят, на прошедшей IO, Google анонсировал свой Web Store. А для заполнения его представил т.н. web-приложения.
Сегодня речь пойдёт о том, как создать простенькое приложение и подготовится к открытию Web Store.
Для примера будем создавать приложение из ряда Hello World, а именно — калькулятор.
![image](https://habrastorage.org/getpro/habr/post_images/095/0e6/114/0950e611426ab8dc4c2cb948caf5c1d5.png)
Сегодня речь пойдёт о том, как создать простенькое приложение и подготовится к открытию Web Store.
Для примера будем создавать приложение из ряда Hello World, а именно — калькулятор.
![image](https://habrastorage.org/getpro/habr/post_images/095/0e6/114/0950e611426ab8dc4c2cb948caf5c1d5.png)
+82
12 портативных приложений для веб-разработчика
3 мин
19KПеревод
![image](https://habrastorage.org/getpro/habr/post_images/84d/31a/e4b/84d31ae4b283c20922828f1234f59c71.png)
Любой веб-разработчик всегда должен иметь под рукой свои рабочие инструменты. Конечно, зачастую вы работаете дома или в офисе, со своим рабочим компьютером. Но если вы часто находитесь в разъездах, или же устариваете демонстрации своей работы в офисе у клиентов, то вам на помощь придут портативные версии необходимых программ.
+25
AeroWindow плагин для jQuery. Создание окон в стиле Windows Aero
2 мин
5KПеревод
Хочу представить вашему вниманию интересный плагин для jQuery — AeroWindow, позволяющий создать ваш сайт в стиле Windows Aero. Он создает появляющиеся окна в стиле Window 7 Aero, которые предлагают обычные опции и полную функциональность похожую на окна Windows.
![image](https://habrastorage.org/getpro/habr/post_images/81f/0d7/b94/81f0d7b94bc8adcd67facb57a420e3f2.png)
![image](https://habrastorage.org/getpro/habr/post_images/81f/0d7/b94/81f0d7b94bc8adcd67facb57a420e3f2.png)
+111
Быстрый старт с openID
3 мин
15KДобрый день, друзья.
Сегодня я хочу поделиться своим опытом внедрения авторизации по openID на своем книжном сайте «Мои книги». Статья рассчитана на начинающих, поэтому вряд ли заинтересует тех, кто уже знает все нюансы этой технологии. Основная ее цель – ответить на вопрос: «да, это удобно, но как же мне сделать такое в моем проекте?!!»
Сегодня я хочу поделиться своим опытом внедрения авторизации по openID на своем книжном сайте «Мои книги». Статья рассчитана на начинающих, поэтому вряд ли заинтересует тех, кто уже знает все нюансы этой технологии. Основная ее цель – ответить на вопрос: «да, это удобно, но как же мне сделать такое в моем проекте?!!»
+41
Распознание речи из Javascript
1 мин
6.1KПеревод
![image](https://habrastorage.org/getpro/habr/post_images/bd5/ca4/4c9/bd5ca44c9f3d2f401085048237db486d.jpg)
Недавно Гугл позволил проговаривать текст с помощью Text-To-Speech API. Теперь возможно и обратное преобразование речи в текст.
Используя speechapi.com возможно построение интересных речевых веб-ресурсов включающих двустороннее текст-в-речь и речь-в-текст (speech-to-text as и text-to-speech) преобразования.
Это стало возможным благодаря использованию различных технологий: flash используется для доступа к микрофону и потоковому аудио, Red5 — как разносторонний медиа сервер с открытым исходным кодом.
(Ссылка на оригинал)
UPD: перенес в Javascript
Пример использования API:
+40
Google Maps Javascript API V3 и управление маркерами
3 мин
29KДело было глубокой осенью. Мне поручили разработку раздела, основной задачей которого является указание местоположения объектов фильтрации и поиска на карте. Что стало заметно сразу же — даже при отображении 10 объектов на карте, можно уменьшить зум до такого, при котором они просто сливаются. Если их будет 100 — появятся жутковатые наложения и тени. Не комильфо!
Решение очевидное, маркеры нужно группировать. В процессе поиска наткнулся на хабростатью, в которой рассмотрены различные способы группировки большого количества маркеров на карте. Нас вполне устраивали «костыли 1-2», то есть группировка маркеров на клиентской стороне, однако… если бы они подошли, не писал бы я сейчас статью ;)
Поиск решения
Решение очевидное, маркеры нужно группировать. В процессе поиска наткнулся на хабростатью, в которой рассмотрены различные способы группировки большого количества маркеров на карте. Нас вполне устраивали «костыли 1-2», то есть группировка маркеров на клиентской стороне, однако… если бы они подошли, не писал бы я сейчас статью ;)
+45
+209
Техническая реализация REST & user friendly уведомлений после редиректов
3 мин
1.2KИногда есть необходимость показывать пользователю уведомления после редиректа уже на новой странице.
В статье описаны достоинства и недостатки нескольких реализаций таких уведомлений,
![image](http://xmages.net/out.php/i488339_notice.png)
В статье описаны достоинства и недостатки нескольких реализаций таких уведомлений,
![image](http://xmages.net/out.php/i488339_notice.png)
+30
Что же всё-таки будет в Java 7 — окончательный список
3 мин
5.3KJoe Darcy (лидер проекта Project Coin из Sun) выложил окончательный список нововведений языка Java 7 (оригинал тут). Вот эти нововведения:
+57
Информация
- В рейтинге
- Не участвует
- Откуда
- Syosset, New York, США
- Зарегистрирован
- Активность