Pull to refresh
136
0
Send message

HTML5 File API: множественная загрузка файлов на сервер

Reading time7 min
Views86K
Когда передо мной в очередной раз встала задача об одновременной загрузке нескольких файлов на сервер (без перезагрузки страницы, само собой), я стал блуждать по интернетам в поисках довольно корявого jQuery-плагина, который позволяет имитировать ajax-загрузку файла (того самого плагина, который со скрытым фрэймом: от java- и flash- плагинов сразу было решено отказаться). В процессе поиска я вспомнил, что в грядущем стандарте html 5 возможности по работе с файлами должны быть существенно расширены, и часть этих возможностей доступна уже сейчас. В итоге было решено опробовать их в действии.

Рассматривать возможности File API будем на примере одновременной загрузки нескольких картинок на сервер. В конце статьи приводится готовое решение, оформленное в виде jQuery-плагина.
Читать дальше →
Total votes 109: ↑103 and ↓6+97
Comments57

Загрузка файлов с помощью 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

Надёжный и безопасный Linux (наш ответ Чемберлену)

Reading time8 min
Views19K
После прочтения на Хабре недавних статей, посвящённых теме безопасности линукс систем, у меня возникло желание поделиться своей точкой зрения на этот вопрос.
Статья в целом рассчитана на начинающих администраторов, поэтому в ней изложены очевидные для хорошего специалиста вещи. Ценные дополнения и замечания приветствуются.
Копи-пейст выдержки из конфиг файлов я почти не буду приводить по трём причинам:
  1. Это приведёт с излишнему разрастанию статьи
  2. Маны и гугл никто не отменял
  3. Пункт 2 очень полезен для развития специалиста


Итак, как повысить безопасность и надёжность сервера (да и рабочей станции) на базе линукс?

Читать дальше →
Total votes 86: ↑78 and ↓8+70
Comments59

Наш опыт работы с Django, или 10 полезных модулей, облегчающих жизнь

Reading time4 min
Views38K
Бесценный опыт работы с Django, или Django для блондинок, брюнеток и всех-всех-всехПоследние 15 недель мы активно работали над проектом «Стиллион», первым нашим мейнстрим-проектом, написанным на Django. Был приобретен интересный опыт, которым мы хотели бы поделиться с сообществом.
Статья, прежде всего, будет интересна новичкам в Django.
За катом список полезных плагинов, которые мы использовали, и ещё немного клёвых фич
Total votes 108: ↑100 and ↓8+92
Comments59

Встраиваемые шрифты с кириллицей

Reading time3 min
Views7.2K
Пусть расцветают сто цветов, пусть соперничают сто школ. Этим лозунгом первого китайского императора Цинь Ши Хуана хочется поднять волну народного негодования стремления к появлению как можно большего количества шрифтов с веб-лицензией, которые поддерживают кириллицу. Сто школ в данном случае — различные словолитни и сервисы, предоставляющие встраиваемые шрифты.

В настоящее время подобные сервисы активно развиваются. Крупнейший из них, Typekit, содержит на данный момент 376 шрифтов от более чем 30 производителей. Но вот незадача: Typekit пока поддерживает только подмножество Latin-1, хотя и работает над добавлением поддержки других подмножеств Unicode.

Что же прямо сейчас делать нам, пользователям кириллицы?

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments12

Раздобываем бесплатные шрифты для русского языка, чтобы пережить Вторую типографскую революцию в Паутине

Reading time7 min
Views33K
На минуту обратите свои мысли вспять, к прошлому, к завершившемуся тысячелетию. Отдайте должное утренней заре Всемирной Паутины, потому что заря эта готова ужé окончательно потухнуть, уступая место куда более яркому сиянию нового дня.

Первая типографская революция произошла во Всемирной Паутине настолько давно, что приходится производить поиски, чтобы установить подробности. Кажется достоверным то, что пишет Ian Graham: в Netscape Navigator 2.0 впервые появился элемент <font> (тогда он позволял задавать только размеры шрифта, и только в условных единицах), а в Internet Explorer 3 у этого элемента появился атрибут face, позволявший задавать начертание, задавать шрифтовое семейство. Википедия подсказывает, что Netscape Navigator 2.0 появился в марте 1996 года, а Microsoft Internet Explorer 3 — в августе того же года. В язык HTML версии 3.2 даже не входил атрибут face, хотя и упоминалося, что такой атрибут существует.

Тринадцать лет назад.

Все эти тринадцать лет для начертания текста сайтов в основном использовались несвободные шрифты, являющиеся частью операционных систем и офисных пакетов. Сайтам приходилося гадать о том, какие шрифты установлены у читателя, а какие не установлены, и какова вероятность того или другого, какие шрифты можно считать безопасными. Сочинялись специальные плагины jQuery и создавались специальные страницы, способные выяснить набор шрифтов на компьютере читателя. Особый дух того времени прекрасно передал despoth, сочинив превосходную серию статей о такой веботипографике, которая основана именно на подборе несвободных шрифтов (часть I часть II часть III часть IV часть V).

Наконец, это время кончилось: явствуют, зримо явствуют признаки Второй типографской революции, связанной с приходом @font-face.

Джон Даггетт сочинил познавательную статью о том, как все мы совсем скоро (после появления Safari 3.1, Firefox 3.5, Opera 10) сможем использовать загружаемые шрифты во всех популярных браузерах, а не только в одном наиболее популярном.

Марк Пилгрим грубо обрисовал ситуацию с лицензированием собственнических шрифтов. Ситуация эта немало напоминает глухой тупик. Даже создателям прекрасной демонстрации возможностей Firefox 3.5, чтобы изготовить страницу, пришлось специально связаться со шрифтопроизводителями и изготовлять такие особые (усечённые) версии использовавшихся шрифтов, чтобы их не было смысла копировать нелицензионно. А вон там предлагают раздавать особые паутинные обкусанные ужатые копии купленных шрифтов (которые сам покупатель вывешивать не имеет никого права, а только ссылаться). Остроумно. Открывает широкую дорогу в сторону Большого Брата: типа как недавно читальники Kindle удаляли книги Оруэлла за нелицензионность (даже честно купленные — просто оставляя стоимость их на счету покупателя в уплату). Так и тут. Внешний шрифт может неожиданно подохнуть, даже купленный заранее.

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

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

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

Список пошёл.
Total votes 160: ↑137 and ↓23+114
Comments85

Зацикливание цвета на холсте

Reading time2 min
Views3.2K
[подлинное зацикливание восьмибитного цвета при помощи HTML5]

Интерес к холсту (<canvas>), а равно и к мобильным приложениям, приводит к возрождению прежней художественной школы восьмибитных изображений. Joe Huckaby из Effect Games поигрался с зацикливанием цвета, что привело к несколько ошеломляющим результатам.
Помнит ли кто-нибудь зацикливание цвета в девяностых годах? Эта технология часто использовалась восьмибитными видеоиграми той эпохи для достижения интересных зрелищных эффектов методом зацикленного сдвига цветовой палитры. Тогда видеокарты могли показывать только 256 цветов за раз, так что использовалась палитра подобранных цветов. Но программист мог переменять эту палитру по своему усмотрению, и цвета на экране тотчас переменялись, подстраиваясь под неё. Это происходило быстро, и не требовало буквально никакой дополнительной памяти.
Здесь также происходит искусная оптимизация — вместо того, чтобы очищать и перерисовывать всю сцену в каждом кадре, Джо обновляет только те пикселы, которые изменяются:
Чтобы достигнуть во браузере быстрой смены кадров, мне пришлось устроить слегка безумную оптимизацию движка. Отображение картинки 640×480 с индексированным цветом на тридцатидвухбитном RGB-холсте означало бы обход и прорисовку 307200 пикселов в каждом кадре джаваскриптом. Это обход обширного массива, так что некоторые браузеры просто не в состоянии справиться с этим. Я преодолел их медлительность предварительной обработкою изображений, когда они впервые загружаются, и сбором тех пикселов, которые ссылаются на анимируемые цвета (то есть на цвета, входящие в зацикливаемые подмножества палитры). Координаты этих пикселов хранятся в отдельном (меньшем) массиве, и оттого одни только изменяемые пикселы обновляются на экране. Этот финт оптимизации сработал настолько превосходно, что анимация действительно крутится на весьма неплохой скорости в моём iPhone 3GS и iPad!
Total votes 215: ↑202 and ↓13+189
Comments129

10+ удобных онлайн-редакторов для программистов

Reading time3 min
Views153K
Как у разработчика, очевидно, что ваш основной рабочий инструмент, который позволит вам быстро идею превратить в код: текстовый редактор. Время идёт, и теперь нам доступно множество онлайновых текстовых редакторов, которые могут помочь вам создавать свой код с любого компьютера, имеющего доступ в интернет. В этой статье рассмотрим более 10 таких редакторов.

Amy Editor


Созданый в 2007 Петром Кронторадом (Petr Krontorad), Amy Editor продвинутый редактор с интерфейсом в стиле Mac. Amy Editor имеет в наличие кучу полезных опций, такие как нумерация строк, подсветка синтаксиса, сниппеты для более чем 20 языков, совместное использование и прочее.
Ami Editor
» http://www.amyeditor.com

Под катом ещё 11
Total votes 116: ↑105 and ↓11+94
Comments56

Удаляем трояна, требующего отправку SMS с компьютера

Reading time2 min
Views5.5K
Сегодня с утра на работе сотрудница словила троян, требующий отправки SMS на короткий номер.

Тут должна быть картинка с трояном, но что самое смешное, я не смог запустить его на виртуалке. Даже в автозагрузку его прописывал, ну не хочет работать и всё. В общем, если желающие сделают скриншот, то будет очень неплохо. Сам троян для опытов можно скачать отсюда. При этом я видел окно только мельком, но выглядело оно красиво :)Мне прислали картинку:.
Отправьте SMS

По поводу механизма заражения очень хорошо расписал Olegas, я, соответственно распишу про первую часть, про лечение. Кстати, первоначально было подозрение в том, что это дыра в IE8, на практике оказалось что скорее всего вирус проник через дыру в Java или Flash. Так что, в принципе, не защищён ни один из браузеров. Анализ логов показал, что сайты посещались достаточно безобидные, на каком из них завёлся iframe с дроппером, выяснить не удалось (не все же перебирать, в самом деле).

Читать дальше →
Total votes 134: ↑89 and ↓45+44
Comments150

Небольшой обзор веб-радио сервисов и интернет плееров

Reading time4 min
Views47K
В последнее время, особенно когда нечего делать, часто хочется включить какую-нибудь музыку для фона (Работаю я чаще в тишине). Искать и заполнять плеер каждый раз разными хорошими песнями меня дико раздражает. Лень взяла свое или фантазия иссякла, но мне надоело каждый раз составлять плейлист подобным образом, как, впрочем, и обычным шаффлом. Решено было попробовать то, что предлагает веб. Что я там нашел для себя, попробую рассказать. Если вы можете добавить вкусный url, предлагайте.
Читать дальше →
Total votes 87: ↑79 and ↓8+71
Comments102

TalkPad.ru — наш ответ Скайпу!

Reading time2 min
Views3.5K
Всем доброго дня,

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

image

Предыстория
Активная тенденция переноса программных продуктов в web, которая наблюдается в последние годы, задала нам один вопрос: А есть хоть один нормальный сервис, позволяющий звонить из браузера?
Все полученные на этот вопрос ответы разделились на две группы:
Читать дальше →
Total votes 208: ↑167 and ↓41+126
Comments291

Инфраструктура сети: AS, PI, LIR и прочие вкусности. :)

Reading time4 min
Views92K
Не нашел на Хабре внятного этой RIPEвской кухни, потому пишу сам :)

Здесь я попробую (кратко) рассказать, как работает Интернет :)
И какие бонусы может извлечь из этого администратор сети предприятия, хостер или ISP.

Читать дальше →
Total votes 53: ↑47 and ↓6+41
Comments20

Удобочитаемость текста — сбор статистики

Reading time1 min
Views1.9K
Коллеги, у всех вас есть возможность помочь в первую очередь самим себе, чтобы хоть немного прояснить вопрос удобочитаемости текста на веб-страницах (естественно, в текущий момент времени при нынешних мониторах и разрешениях экрана).

Линда Фэйн собирает статистику по предпочтениям внешнего вида текстового блока на специальной страничке «Text Prefs».

Внешний вид страницы

На странице нужно повыбирать шрифт и понажимать на кнопки увеличения/уменьшения кегля шрифта, межстрочного расстояния и ширины колонки, создав наиболее удобочитаемый для вас на данном мониторе блок текста. Чем сильнее мы пропиарим эту страничку Линды, тем полнее будет статистика (пусть и англоязычную, но это уже будет хоть что-то; может быть, кто-то надумает сделать кириллическую?).

После того, как статистика будет опубликована, обязуюсь доложиться в этом блоге. Ссылка была обнаружена через блог I Love Typography, за что спасибо Джону Бордли.
Total votes 53: ↑48 and ↓5+43
Comments23

Разгоняем CSS-селекторы: id против class, раунд второй

Reading time1 min
Views5.3K
В первой статье цикла я уже рассматривал скорость работы движка, ответственного за создание и отображение HTML-страницы на экране. Однако, сейчас речь пойдет о несколько другом аспекте, нежели движок CSS-селекторов. Данная серия тестов была посвящена скорости создания отдельного HTML-документа.

Методика



Если в первых двух исследованиях ставилась под вопрос скорость распознавания браузером CSS-правил и их применение, то сейчас интересовал другой вопрос, а именно: как быстро браузер создает DOM-дерево в зависимости от наличия в нем элементов с id или class?

Для этого было подготовлено 3 набора HTML-файлов. Первый содержал 10000 элементов, у которых часть имеет id (количество именованных элементов варьировалось от 50 до 10000). Во втором HTML-файлы были, практически, идентичными, только вместо id имели атрибут class. В третьем наборе в DOM-дереве были только элементы с id (т.е. варьировалось само число элементов). Соответственно, все измерения проводились в скрытом iframe, чтобы избежать отрисовки загружаемой страницы на экране.

читать дальше на webo.in →
Total votes 47: ↑42 and ↓5+37
Comments31

Государственная регистрация бизнеса

Reading time10 min
Views7.1K
Ко дню рождения своей компании хочу поделиться с Хабром опытом и знаниями по регистрации юридического лица, которые приобрел за год. Я не юрист и не бухгалтер, поэтому, как говорят в американской рекламе, перед применением проконсультируйтесь со специалистом. Постараюсь расказать про налоги при упрощенной системе налогообложения, про процесс регистрации юрлица, про госорганы, с которыми потребуется взаимодействовать. Надеюсь поможет кому-нибудь не совершить ошибок, которые я совершил. Все приведенные цифры справедливы на дату публикации хабратопика, факты из жизни относятся к Москве.

1. Налоги
Существует основной режим налогообложения (ОСНО) и несколько спецрежимов. Один из спецрежимов — упрощенная система налогообложения (УСН, УСНО или упрощенка). Право на упрощенку имеют малые предприятия с годовым оборотом, не превышающим примерно 20 млн рублей (точную сумму можно получить, применив к сумме, указанной в главе 26.2 налогового кодекса РФ инфляционные коэффициенты). Кроме того, есть ограничение по численности штатных сотрудников (не более 100 человек) и некоторые ограничения по видам деятельности. Далее мы будем говорить только об УСНО, так как ведением учета по ОСНО не владею.

Читать дальше →
Total votes 105: ↑104 and ↓1+103
Comments158

Прототипирование web-сайтов. Собирая воедино.

Reading time8 min
Views24K
«Единственный возможный источник экономического подъема – это повышение качества и, как следствие, привлекательности продукта или услуги. А повышения качества невозможно добиться, сокращая затраты на проектирование и программирование»
Алан Купер «Психбольница в руках пациентов»

Спасибо всем, кто принял участие в голосовании на Хабрахабре:
1. Как выглядит процесс прототипирования в твоей компании?
2. Кто занимается прототипированием web-проектов в которых ты участвуешь?
3. Устраивает ли вас текущая ситуация с прототипированием web-сайтов в вашей компании?
Пришло время обсудить результаты
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments40

Information

Rating
Does not participate
Registered
Activity