Pull to refresh
59
0
Аббасов Александр @vodka_ru

Предприниматель, Стартапер, Программист

Send message

Загрузка файлов с помощью html5 File API, с преферансом и танцовщицами

Reading time7 min
Views44K

Предисловие


Загрузка файлов всегда занимала особое место в веб-разработке.
О трудности оформления стилями <input type=file/> уже сказано немало, почитать об этом можно, например, по ссылкам раз, два, три, четыре, пять, шесть.
Но и сам процесс загрузки файлов нетривиален, есть много разных способов – и ни одного идеального.

Я уже писал о внедрении на нашем проекте Файлы@Mail.Ru silverlight-загрузчика полгода назад. На тот момент у нас подерживались iframe, flash, silverlight и обычная загрузка файлов. Но прогресс не стоит на месте, и вот уже последние бета-версии всеми горячо любимых браузеров в полной мере поддерживают html5 FileAPI (справедливости ради, стоит заметить, что, как обычно, некоторые поддерживают своеобразно, но об этом — ниже).

Пока писалась статья, Chrome 9 был объявлен stable и форсировано обновился уже на 75% установок 8 версии. Так, что празднуем поддержку File API первым стабильным браузером, ура!

Мы подумали, что не использовать такую технологию было бы преступлением против юзеров пользователей.
Подумали — и внедрили html5 загрузку в дополнение к уже существующим вариантам.
В итоге наши пользователи получили множество плюшек:
— прозрачная дозагрузка после обрыва соединения (и даже рестарта браузера!);
— очередь загрузки;
— прогресс-бар (пользователи MacOS и Safari наконец могут видеть прогресс без всяких инородных плагинов), возможность удаления файлов из очереди, если передумал.
Как это устроено.
Total votes 132: ↑115 and ↓17+98
Comments32

Библиотека CssUserAgent

Reading time2 min
Views1.1K
На просторах англоязычного интернета наткнулся на javascript библиотеку с говорящим названием CssUserAgent. Если говорить вкратце, то при загрузке страницы на тег html навешиваются классы следующего вида:
ua-browsername
ua-browsername-major
ua-browsername-major-minor
ua-browsername-major-minor-build
ua-browsername-major-minor-build-revision

Под катом описание профита.
Читать дальше →
Total votes 49: ↑41 and ↓8+33
Comments33

Видео с HighLoad++: Юрий Ковалев — Нагрузочное тестирование без границ

Reading time1 min
Views4.8K
Доброе утро!

Сегодня мы выкладываем предпоследний видеодоклад с Дней HighLoad++ в Mail.Ru:

Юрий Ковалев (Performance Lab) — Нагрузочное тестирование без границ

Часть первая (20: 27): video.mail.ru/corp/miftahetdinova/2/3.html

Часть вторая (23:16): video.mail.ru/corp/miftahetdinova/2/4.html

Хорошего дня!
Total votes 26: ↑17 and ↓9+8
Comments13

5 основных ошибок интернет-магазинов

Reading time7 min
Views20K
Приятно удивившись ажиотажу вокруг предыдущего материала, я решил пойти дальше. На этот раз, под прицелом – интернет-магазины. Их ошибки, глупости и т.п.

image

Итак…

1. Отсутствие фирменной концепции (логотипа, слогана, и т.п.).


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

Многие владельцы интернет-магазинов банально не понимают (лично спрашивал) – огромная часть продаж строится на бренде. У человека в голове есть ряд ячеек, заполненных брендами известных фирм. К примеру, «наушники – Koss», «операционная система – MacOS X», «газировка – Coca-Cola», и т.д. и т.п. Первоочерёдная задача фирменой концепции – заполнить ячейку «интернет-магазин — ?» вашим названием. Тогда пользователь будет возвращаться снова и снова.
Читать дальше →
Total votes 123: ↑91 and ↓32+59
Comments111

Снежки с мультиплеером на HTML5

Reading time1 min
Views1.9K


Французская веб-студия Revolver3 создала мультиплеерную игру на HTML5 с использованием серверной технологии NodeJS и Websockets

Играть (нужен ФБ акк)
Мышью ходить, пробел — кидать, любая буква — чат
Читать дальше →
Total votes 87: ↑74 and ↓13+61
Comments48

Векторные иконки на HTML5 + JS

Reading time1 min
Views10K


На первый взгляд это обычные одноцветные иконки, но если призумить — их качество не ухудшится. Очевидный профит таких иконок: с ними можно свободно экспериментировать и не переживать за высоту и ширину, компактный вид, а не куча файлов в папке icons, ну и наверное маленький размер, хотя с этим поспорить можно. Есть некоторые ограничители в цвете, возможен один цвет либо градиент (но думаю с конвертером нарисованного вектора в js код, возможно и больше цветов)

Смотреть иконки

Если вы хотите использовать эти иконки или создавать свои на подобной основе, кликайте по иконке — внизу появится код выбранной иконки, он вставляется в:

paper.path(<код иконки>).attr({fill: "#000", stroke: "none"});

Поддержку иконок на себя берет Raphaël JS Lib

Источник
Total votes 88: ↑85 and ↓3+82
Comments45

Про «белую» зарплату

Reading time1 min
Views6K
Хотите знать, сколько отдаёт стандартная веб-студия, выплачивая «белую» зарплату? Посчитаем!

Пусть система налогообложения УСН (6%) со всеми вытекающими льготами.
Пусть чистыми на руки сотрудник получает, например, 1000 руб. (для простоты расчетов).

Сейчас
НДФЛ: (1 000 / 0.87 )=1 149
Взносы в ПФР: 1 149 * 1,14 = 1 310
Итого: + 31%

Что нас ждет с 2011 года
Total votes 184: ↑167 and ↓17+150
Comments465

HTML5 Labs: добавляем в IE поддержку WebSockets и IndexedDB

Reading time1 min
Views2.4K


HTML5 Labs — новая экспериментальная площадка для тестирования реализации отдельных элементов HTML5 и связанных спецификаций. В рамках проекта будут публиковаться прототипы реализации тех или иных веб-стандартов или их фрагментов, которые, очевидно, в будущем будут востребованны, но в настоящий момент сыроваты или нестабильны.

На текущий момент доступны прототипы реализаций WebSockets и IndexedDB.
Читать дальше →
Total votes 53: ↑37 and ↓16+21
Comments10

Обзор нескольких новых плагинов jQuery

Reading time4 min
Views6.4K
Довольно часто я наступаю на одни и те же грабли. Стараясь выполнить какой-нибудь проект побыстрее, я с головой ухожу в реализацию необходимой функциональности. А через неделю, мне на глаза обязательно попадается описание библиотеки, фреймворка или плагина, воспользовавшись которыми, я мог бы выполнить свою часть работы в разы быстрее. В общем, сейчас я стараюсь быть в курсе готовых решений в интересующих меня областях. В последнее время мне часто приходится работать с javascript и поэтому, сейчас я уделяю особое внимание библиотеке jQuery и ее плагинам. Должен сказать, что упускать из виду такое разнообразие готовых решений просто нельзя. Данная статья сделана на основе обзора «50 Awesome New jQuery Plugins», который я прочитал пару дней назад.
Читать дальше →
Total votes 132: ↑123 and ↓9+114
Comments28

Основные положения тестирования

Reading time9 min
Views144K
Области применения, цели и задачи тестирования ПО разнообразны, поэтому тестирование оценивается и объясняется по-разному. Иногда и самим тестировщикам бывает сложно объяснить, что такое тестирование ПО 'as is'. Возникает путаница.

Для распутывания этой путаницы Алексей Баранцев (практик, тренер и консалтер в тестировании ПО; выходец из Института системного программирования Российской академии наук) предваряет свои тренинги по тестированию вводным видео про основные положения тестирования.

Мне кажется, что в этом докладе лектор смог наиболее адекватно и взвешенно объяснить «что такое тестирование» с точки зрения ученого и программиста. Странно, что этот текст еще не появлялся на хабре.

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

Читать дальше →
Total votes 70: ↑61 and ↓9+52
Comments15

PMP сертификация за 3 месяца

Reading time2 min
Views52K
PMP традиционно входит в десятку самых востребованных IT сертификаций на западе. Эта мода потихоньку перебирается и в страны СНГ, некоторые компании уже начинают робко писать в вакансиях «PMP credential is a plus». Помимо повышения ценности ПМа на рынке труда, подготовка и сдача PMP сами по себе дают полезные знания и опыт.

Под катом — пошаговая инструкция получения PMP на базе PMBOK4.
Читать дальше →
Total votes 43: ↑37 and ↓6+31
Comments25

Pirates Love Daisies

Reading time1 min
Views18K
К вечеру пятницы подоспела новая игрушка в жанре Tower Defence, сделанная полностью на html5 и сопутствующих веб-стандартных технологиях.

Встречайте Pirates Love Daisies.


Игрушка сделана известным flash-гуру Grant Skinner и его командой. Подробнее о том, как создавалась игрушка можно почитать в его блоге и блоге Exploring IE.

Видео с игрушкой можно посмотреть здесь: channel9.msdn.com/posts/Pirates-Love-Daisies

А поиграться можно здесь: www.pirateslovedaisies.com

Читать дальше →
Total votes 80: ↑53 and ↓27+26
Comments84

Шаблон процесса Scrum для Team Foundation Server

Reading time5 min
Views22K
Среди многих команд занимающихся разработкой все большую популярность приобретает подход Scrum. Действительно, лаконичную, в 20 страниц текста методологию, легко понять и после некоторой практики начать использовать. Вот почему Microsoft выпустил дополнительный шаблон Scrum, который позволяет использовать эту методологию вместе с Team Foundation Server.

Читать дальше →
Total votes 38: ↑28 and ↓10+18
Comments1

Автоматическое определение часового пояса пользователя

Reading time5 min
Views14K
Мужик сидит, слушает радио.
— В Москве полночь, в Благовещенске 6 утра, во Владивостоке, Хабаровске, Южно-Сахалинске 7, в Магадане 8, в Петропавловске-Камчатском 9 часов.
Мужик сидит, сидит, потом встаёт, и с некоторым сожалением произносит:
— Эх, ну и бардак же у нас в стране!

Текст перепечатан с аудиозаписи позывных «Маяка».
Для справки: в Петропавловске-Камчатском теперь UTC+11 (летом UTC+12), поэтому теперь в полночь по московскому времени там было бы 8 часов, а не 9.


Во многих местах на сайтах отображается время. И во многих случаях лучше всего отображать не время по Гринвичу, не время на сервере, а время в часовом поясе пользователя.

Часто предлагается выбрать свой часовой пояс из огромного списка возможных вариантов. Конечно, возможность приятная, но удобнее, если сайт может определить часовой пояс пользователя сам. А сделать это, как можно догадаться, совсем несложно — достаточно получить локальное время и отступ от UTC с помощью JavaScript и передать этот отступ на сервер с помощью XMLHttpRequest.

Читать дальше →
Total votes 61: ↑45 and ↓16+29
Comments35

7 бесплатных сервисов для проверки сайтов (о которых вы могли и не знать)

Reading time2 min
Views253K
Картинка для привлечения внимания
Мне достаточно часто приходится использовать различные онлайн-сервисы для проверки доступности сайтов и их поверхностных тестов и проверок.
Как показал краткий опрос коллег — почти у всех эти наборы сервисов отличаются. Я хочу показать вам свой, прошу в
подробности
Total votes 188: ↑181 and ↓7+174
Comments72

Отладка тест-плана JMeter

Reading time6 min
Views49K
В предыдущем посте про JMeter я описывал создание примитивного нагрузочного теста. При разработке более сложных сценариев не обойтись без отладки. К сожалению, в JMeter эта техника не совсем очевидна. Ниже на несложном примере покажу несколько приемов отладки тест-плана. Заодно продемонстрирую использование таких элементов, как HTTP Request Defaults, Regular Expression Extractor, If Controller и некоторых других.

final test plan

Тестировать будем механизм поиска на сайте. Пускай сценарий берет слово или фразу из файла, задает вопрос поисковику, получает ответ в виде одной или нескольких страниц, случайным образом выбирает одну из страниц, так же случайно выбирает одну из ссылок и идет по ней. Итого три запроса, за исключением особых случаев (когда найдено мало или не найдено ничего).
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments7

Простой нагрузочный тест с Apache JMeter

Reading time7 min
Views286K
По моим наблюдениям, разработчики довольно редко делают нагрузочное тестирование сайтов и веб-приложений. И бывает так, что выставят проект в Интернет, а тут вдруг посетители начнут ходить (хабраэффект, к примеру, случился), и сайт в самый подходящий момент ложится или начинает не по-детски тормозить.

Почему бы не избежать этих неприятностей, прогнав нагрузочный тест?

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

Под катом рассказываю, как с нуля организовать незамысловатый нагрузочный тест сайта при помощи Apache JMeter.
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments14

Eventr.com доступен в режиме beta-тестирования

Reading time3 min
Views922
Эврика! Информация! – воскликнул Сережа и сделал с другом великий Google.
Эврика! Коммуникация! – воскликнул Марк, сделал Facebook и… стал новым символом «Американской мечты».
Эврика! Facebook! – воскликнул Паша и сделал Vkontakte.
Эврика! Информация, коммуникация и экономия времени! – воскликнул Джек и сделал Twitter.
И так теперь каждый год тысячи разнообразных проектов появляются в Сети. Все больше и больше…

Столько веб-сервисов, но нет ни одного, который нам, как пользователям, действительно бы нравился! – однажды подумали мы с octave и спросили себя: «А чего мы сами хотим от Интернета? Чего нам не хватает?».
«Мы хотим в одном месте получать информацию с разных источников Интернета, обмениваться и делиться ею с другими». Вот так просто. Удивительно, но мы не нашли готового решения.
Читать дальше →
Total votes 130: ↑90 and ↓40+50
Comments148

Технический отчет запуска Eventr.com, цифры

Reading time4 min
Views1.5K
image По просьбам хабралюдей выкладываю короткий технический отчет.
Напомню, Eventr – это web-сервис, в котором можно удобно читать RSS-ленты, в два клика обмениваться, делиться интересными записями с другими, вести свой блог.

Мы стартовали днем в воскресенье, 11-го июля, через час легли под хабраэффектом. Собственно, наши волшебные заклинания и цифры под катом.

О чем будет сказано:
  1. Некоторые технические сложности
  2. RSS/Atom читалка, цифры
  3. Хабраэффект, цифры
  4. Грабли
  5. Mongodb, nodejs, redis
Читать дальше →
Total votes 92: ↑81 and ↓11+70
Comments93

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity