Читать дальше →
Сергей Арсеничев @Arsenichev
Пользователь
Обзор нескольких новых плагинов jQuery
4 min
6.4KTranslation
Довольно часто я наступаю на одни и те же грабли. Стараясь выполнить какой-нибудь проект побыстрее, я с головой ухожу в реализацию необходимой функциональности. А через неделю, мне на глаза обязательно попадается описание библиотеки, фреймворка или плагина, воспользовавшись которыми, я мог бы выполнить свою часть работы в разы быстрее. В общем, сейчас я стараюсь быть в курсе готовых решений в интересующих меня областях. В последнее время мне часто приходится работать с javascript и поэтому, сейчас я уделяю особое внимание библиотеке jQuery и ее плагинам. Должен сказать, что упускать из виду такое разнообразие готовых решений просто нельзя. Данная статья сделана на основе обзора «50 Awesome New jQuery Plugins», который я прочитал пару дней назад.
+114
HTML5 для веб-дизайнеров. Часть 1: Краткая история языка разметки
7 min
14KTranslation
HTML5 для веб-дизайнеров
- Краткая история языка разметки
- Модель HTML5
- Мультимедиа
- Формы 2.0
- Семантика
- HTML5 и современные условия
HTML — язык, объединяющий всемирную сеть. Всего лишь посредством набора простых тегов, человечеству удалось создать несравнимую ни с чем по своим масштабам систему связанных между собой страниц и веб-узлов: от Amazon, eBay и Википедии, до личных блогов и сайтов, посвященных котам, похожим на Гитлера.
HTML5 — свежайшая версия этого языка. Но несмотря на то, что она собирается принести с собой значительные изменения и новые возможности, нельзя сказать, что подобное происходит впервые и до этого язык никак не развивался. Развивался и постоянно улучшался, причем с самого своего появления.
Как и всемирная сеть вообще, HTML — язык разметки гипертекста (HyperText Mark-up Language) — является детищем сэра Тима Берненс-Ли (Sir Tim Berners-Lee). В 1991 году он написал работу, озаглавленную «HTML Tags», в которой описал чуть меньше двух дюжин тегов, предложенных им для разметки веб-страниц.
Идея использовать для этого кодовые слова внутри треугольных скобок, впрочем, не принадлежит сэру Тиму. Такая система на тот момент уже существовала и использовалась в SGML (Standard Generalised Markup Language, стандартный обобщённый язык разметки), и вместо того, чтобы изобретать что-то с нуля, сэр Тим посчитал более рациональным взять за основу уже существующие решения. Аналогичный подход применялся и вообще на всем пути к HTML5 в процессах разработки.
+73
Улучшаем border-radius.htc
1 min
17KДумаю многим верстальщикам известно решение, которое заставляет IE рисовать скругленные уголки: «curved-corner» (или border-radius.htc).
В этой статье я расскажу, как избавиться от ошибок «Invalid argument» при его использовании, а также как в разы ускорить его работу.
В этой статье я расскажу, как избавиться от ошибок «Invalid argument» при его использовании, а также как в разы ускорить его работу.
+68
Позиционирование элементов по разным сторонам блока
3 min
105KЗдравствуйте, дорогие читатели. Сегодня я расскажу вам о малоизвестном способе разнести два элемента по разным сторонам блока, в котором они находятся. Например вот так
+56
Декартово дерево: Часть 2. Ценная информация в дереве и множественные операции с ней
14 min
41KОглавление (на данный момент)
Часть 1. Описание, операции, применения.
Часть 2. Ценная информация в дереве и множественные операции с ней.
Часть 3. Декартово дерево по неявному ключу.
To be continued...
Тема сегодняшней лекции
В прошлый раз мы с вами познакомились — скажем прямо, очень обширно познакомились — с понятием декартового дерева и основным его функционалом. Только до сих мы с вами использовали его одним-единственным образом: как «квази-сбалансированное» дерево поиска. То есть пускай нам дан массив ключей, добавим к ним случайно сгенерированные приоритеты, и получим дерево, в котором каждый ключ можно искать, добавлять и удалять за логарифмическое время и минимум усилий. Звучит неплохо, но мало.
К счастью (или к сожалению?), реальная жизнь такими пустяковыми задачами не ограничивается. О чем сегодня и пойдет речь. Первый вопрос на повестке дня — это так называемая K-я порядковая статистика, или индекс в дереве, которая плавно подведет нас к хранению пользовательской информации в вершинах, и наконец — к бесчисленному множеству манипуляций, которые с этой информацией может потребоваться выполнять. Поехали.
Ищем индекс
В математике, K-я порядковая статистика — это случайная величина, которая соответствует K-му по величине элементу случайной выборки из вероятностного пространства. Слишком умно. Вернемся к дереву: в каждый момент времени у нас есть декартово дерево, которое с момента его начального построения могло уже значительно измениться. От нас требуется очень быстро находить в этом дереве K-й по порядку возрастания ключ — фактически, если представить наше дерево как постоянно поддерживающийся отсортированным массив, то это просто доступ к элементу под индексом K. На первый взгляд не очень понятно, как это организовать: ключей-то у нас в дереве N, и раскиданы они по структуре как попало.

+68
Мобильная реклама в цифрах
3 min
6.9K
В начале этого года мы запустили Java-приложение нашего сервиса голосовых открыток VoiceCards Mobile и конечно же, как любители поэкспериментировать с различными видами продвижения, решили попробовать на вкус мобильную рекламу.
На эту тему сейчас много пишут и говорят, на любой приличной конференции есть секция по мобильной рекламе, но найти конкретных примеров с цифрами, которые бы помогли спланировать РК нам не удалось. Мы протестировали несколько видов мобильной рекламы на практике и вот он, наш обзор: площадки, плюсы/минусы, финансовые показатели. Надеемся, будет полезно.
Исходные данные: целью РК было получение максимального количества загрузок мобильного приложения VoiceCards Mobile по минимальной цене. Пользователи могли скачать приложение бесплатно. Приложение подходит для любой модели сотового телефона.
Landing page — http://p.voicecards.ru/.
+19
Системы управления проектами. Ищем альтернативы Basecamp
8 min
111K
+84
Основы проектирования веб-интерфейсов в Axure RP Pro
8 min
124K
Эта тенденция не может не радовать как заказчиков, так и самих разработчиков — ведь процесс проектирования позволяет уничтожить все наиболее проблемные моменты еще до начала превращения абстрактного технического задания в конечный продукт.
Средств для визуального проектирования становится все больше. Одни пользуются Adobe InDesign, другим нравится Visio, третьи довольствуются OpenOffice Draw. Но все больше поклонников появляется у довольно тяжелой и функциональной программы Axure RP Pro.
+40
Протокол MQV — старый добрый Диффи-Хеллман, но не совсем
4 min
12KВот уже более 30 лет протокол распределения ключей Диффи-Хеллмана радует глаз простого криптомана своей простотой и надежностью. Для тех, кто эти последние 30 лет провел за занятиями более веселыми, нежели изучение криптографических протоколов, поясняю.
Протокол Диффи-Хеллмана был опубликован в 1976 году и послужил началом эры асимметричной криптографии. Суть его до гениального проста: Алиса и Боб хотят получить общий ключ для симметричной криптосистемы. Для этого они, договорившись, выбирают два больших числа g и p. Эти числа известны им обоим и держать их в секрете не имеет никакого смысла. Затем Алиса в тайне генерирует большое секретное число a, а Боб — большое число b. А далее за дело берется простая арифметика. Алиса посылает Бобу число
.
Боб в свою очередь высылает Алисе
.
Протокол Диффи-Хеллмана был опубликован в 1976 году и послужил началом эры асимметричной криптографии. Суть его до гениального проста: Алиса и Боб хотят получить общий ключ для симметричной криптосистемы. Для этого они, договорившись, выбирают два больших числа g и p. Эти числа известны им обоим и держать их в секрете не имеет никакого смысла. Затем Алиса в тайне генерирует большое секретное число a, а Боб — большое число b. А далее за дело берется простая арифметика. Алиса посылает Бобу число

Боб в свою очередь высылает Алисе

+27
Сравнительный обзор бесплатных антивирусов
8 min
437K
Решил я после обзора одного единственного антивируса AVG Antivirus 9.0 от хабравчанина Courteous написать свой и пройтись по бесплатным решениям в этой области.
Оценка антивирусов проводилась по трём параметрам — юзабилити (тут с моими оценками хабрасообщество может не согласиться), потребление ресурсов и надёжность (надёжность я оценивал по знаменитому архиву из 3732 вирусов).
A-Squared Free

Основные особенности a-squared Free 4.5
• Удаляет трояны, программы-шпионы (Spyware), рекламное ПО (Adware), интернет-червей, клавиатурных шпионов (Keyloggers), руткиты (Rootkits), звонильщики (Dialers) и другие угрозы.
• Прост в использовании и полностью бесплатен
• Более 4 млн. пользователей по всему миру
Для обладателей не слишком шустрого или лимитированного интернета минусом может являться факт начального обновления на 33мб.
Осторожно, под катом много скриншотов!
+155
Тулбары каждому сайту
3 min
20KТак почему-то сложилось, что в Рунете свои тулбары делают только крупные сайты. Да и то – не все. Да и вообще все вокруг тут думают, что тулбары — это зло.
На западе всё совсем не так. Многие вебмастера считают тулбар необходимым инструментом для увеличения посещаемости и возвращаемости аудитории на сайт. Для удобства создания персональных тулбаров существуют даже специальные сервисы, конструкторы тулбаров – к примеру, Conduit.com. Вокруг таких сервисов есть целые экосистемы вебмастеров – которые не только влияют на качество создаваемых тулбаров, но и зарабатывают на своих тулбарах деньги.
А в Рунете, почему-то, всего этого нет.
Ни персональных тулбаров.
Ни сервисов-конструкторов.
Ни сообществ.
Ни денег.
Вот мы и решили эту ситуацию исправить.

И сделали Метабар – первый конструктор тулбаров в Рунете.
На западе всё совсем не так. Многие вебмастера считают тулбар необходимым инструментом для увеличения посещаемости и возвращаемости аудитории на сайт. Для удобства создания персональных тулбаров существуют даже специальные сервисы, конструкторы тулбаров – к примеру, Conduit.com. Вокруг таких сервисов есть целые экосистемы вебмастеров – которые не только влияют на качество создаваемых тулбаров, но и зарабатывают на своих тулбарах деньги.
А в Рунете, почему-то, всего этого нет.
Ни персональных тулбаров.
Ни сервисов-конструкторов.
Ни сообществ.
Ни денег.
Вот мы и решили эту ситуацию исправить.

И сделали Метабар – первый конструктор тулбаров в Рунете.
+25
Список полезных инструментов для CSS разработчика
8 min
71KTranslation
Это не попытка создать список всех существующих инструментов для CSS разработки. Только некоторые, наиболее полезные были отобраны и размещены в соответствующих категориях.

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

Чтобы инструмент был по-настоящему полезен, у него должна быть хорошая документация и дружелюбный интерфейс. К сожалению, некоторые инструменты в списке не полностью попадают под данные критерии. Если кто-то знает лучшие альтернативы с более дружелюбным интерфейсом и большей функциональностью, пишите в комментариях.
+161
Притча о шаблонах
8 min
1.9K — Здравствуй *с широко развевающейся по лицу улыбкой* дружок.
— Ваа! *с ярким блеском в широко распахнутых глазах* Тётя Ася приехала!
— Да, и у меня есть для тебя новая сказка *присела и взяла малыша за руки* хочешь послушать?
— Конечно! *слегка смутился и отвёл взгляд* Мне тут дядя такие страшные истории рассказывал…
— Ну, надеюсь моя история тебя не испугает *потрепала его по волосам* Она должна научить тебя мыслить шаблонно.
— Эээ? *лицо перекосилось от недопонимания* Это как?
— М… сейчас узнаешь *подмигнула и взяла на ручки* Вот когда тебе нужно вставить переменные в строку — ты как поступишь?
— Ну… *взял карандаш и чирканул на лежащей рядом бумажке* примерно так:
— Ты ничего не забыл? *победоносно подняла голову*
— Да вроде нет… *уткнулся носом в код, ещё раз внимательно его проверяя*
— Что, если пользователь введёт… *выдержала многозначительную паузу и добавила*
— Ваа! *с ярким блеском в широко распахнутых глазах* Тётя Ася приехала!
— Да, и у меня есть для тебя новая сказка *присела и взяла малыша за руки* хочешь послушать?
— Конечно! *слегка смутился и отвёл взгляд* Мне тут дядя такие страшные истории рассказывал…
— Ну, надеюсь моя история тебя не испугает *потрепала его по волосам* Она должна научить тебя мыслить шаблонно.
— Эээ? *лицо перекосилось от недопонимания* Это как?
— М… сейчас узнаешь *подмигнула и взяла на ручки* Вот когда тебе нужно вставить переменные в строку — ты как поступишь?
— Ну… *взял карандаш и чирканул на лежащей рядом бумажке* примерно так:
var query= 'xxx'
var resultCount= 512
var message= 'По запросу <kbd>' + query + '</kbd> найдено страниц: ' + resultCount
— Ты ничего не забыл? *победоносно подняла голову*
— Да вроде нет… *уткнулся носом в код, ещё раз внимательно его проверяя*
— Что, если пользователь введёт… *выдержала многозначительную паузу и добавила*
+82
Наследование шаблонов в Smarty
4 min
12KКогда-то, давным-давно, мне пришлось использовать небезызвестный шаблонизатор Smarty. Сначала я, понятное дело, возмущался и кричал, какая же гадость эта заливная рыба Smarty, а потом «распробовал» и втянулся. Те удобства, которые он давал, с лихвой компенсировали мысли о том, что есть и более быстрые шаблонные движки.
Шаблоны я обычно строил с помощью инклюдов: в начале подключался header.tpl, в конце — footer.tpl, в середине ещё что-нибудь нужное. В целом разметка получалась довольно аккуратной, но не проходило ощущение, что не хватает чего-то важного. Окончательно понимание этого чего-то появилось, когда мне случилось написать простенькое приложение на Django. И это «что-то», как все поняли, оказалось наследованием шаблонов. Простая, как и всё гениальное, идея позволяла существенно упростить шаблоны и избавиться от дублирующих блоков.
Шаблоны я обычно строил с помощью инклюдов: в начале подключался header.tpl, в конце — footer.tpl, в середине ещё что-нибудь нужное. В целом разметка получалась довольно аккуратной, но не проходило ощущение, что не хватает чего-то важного. Окончательно понимание этого чего-то появилось, когда мне случилось написать простенькое приложение на Django. И это «что-то», как все поняли, оказалось наследованием шаблонов. Простая, как и всё гениальное, идея позволяла существенно упростить шаблоны и избавиться от дублирующих блоков.
+40
Быстрая реализация резервного копирования в Amazon S3
3 min
25KЯ устал испытывать определённые опасения за сохранность данных на выделенном сервере, наблюдая за происходящим у хостеров последнее время… 3FN, Agava, Hosting.UA, МакХост — тенденция получается очень нехорошая.
В итоге, МакХост стал последней каплей, и, чтобы не оказаться в числе тех, кто «уже делает бекапы», я перевёл систему бекапов своего сервера на Amazon S3. Получилось вполне себе быстро и прозрачно.
Хочу поделиться с общественностью простейшей реализацией.
В итоге, МакХост стал последней каплей, и, чтобы не оказаться в числе тех, кто «уже делает бекапы», я перевёл систему бекапов своего сервера на Amazon S3. Получилось вполне себе быстро и прозрачно.
Хочу поделиться с общественностью простейшей реализацией.
+164
Плагин jQuery Globalization от Microsoft
9 min
7.9KTranslation
с примерами и интересной информацией о глобализации
В прошлом месяце я рассказывал в блоге о том, как Microsoft начала поставлять код в jQuery и о нашем первом проекте, над которым мы работали – шаблоны и связывание данных в jQuery (о связывании на Хабре).
Сегодня, мы выпустили прототип нового плагина под названием jQuery Globalization, который позволяет добавить поддержку глобализации в ваши JavaScript-приложения. Этот плагин включает информацию о глобализации для свыше 350 культур от шотландской кельтской, фризской, венгерской, японской до канадского английского. Мы выпустим этот плагин для сообщества с открытым исходным кодом.
Вы можете загрузить наш прототип плагина jQuery Globalization из репозитория на Github:http://github.com/nje/jquery-glob
Кроме того, отсюда вы можете загрузить набор примеров, которые демонстрируют некоторые простые юзкейсы.
В прошлом месяце я рассказывал в блоге о том, как Microsoft начала поставлять код в jQuery и о нашем первом проекте, над которым мы работали – шаблоны и связывание данных в jQuery (о связывании на Хабре).
Сегодня, мы выпустили прототип нового плагина под названием jQuery Globalization, который позволяет добавить поддержку глобализации в ваши JavaScript-приложения. Этот плагин включает информацию о глобализации для свыше 350 культур от шотландской кельтской, фризской, венгерской, японской до канадского английского. Мы выпустим этот плагин для сообщества с открытым исходным кодом.
Вы можете загрузить наш прототип плагина jQuery Globalization из репозитория на Github:http://github.com/nje/jquery-glob
Кроме того, отсюда вы можете загрузить набор примеров, которые демонстрируют некоторые простые юзкейсы.
+54
Мы это сделали — онлайн бухгалтерия для ООО
2 min
35K
Скажу честно, тот пост для нас значил очень многое, и именно отличная реакция на хабре вдохнула в «Мое дело» жизнь: первые 100 активных пользователей, первые партнерские контакты, первые идеи об интеграции — все это мы получили благодаря хабру. Спасибо всем, кто присылал идеи по улучшению сервиса и находил баги в бета версии — благодаря Вам мы продолжаем двигаться вперед, продираясь сквозь идиотизм налоговых инспекций и бюрократические стремления нашей страны.
Сейчас мы уже обрели вес, и хотя так и не привлекли инвестиций (инвесторы, ау), чувствуем себя очень уверенно. И с кем, как ни с хабром делится главной новостью за последние полгода.
Бета версия бухгалтерии MoeDelo.org для ООО на УСН готова!
Мы перебрали более десяти различных вариантов представления всех ООО-ных заморочек в UI и наконецто пришли к решению.
+99
named pipes в Unix
2 min
37KЯ давно читал про них, ещё когда учился основам юникс, но как-то не было нужды с ними работать. И, вот, нужда возникла.
Некая программа (допустим, foo) не умеет писать вывод в stdout, только в файл. Даже "-" в качестве имени файла всего лишь создаёт файл с названием "-" [большинство умных программ под unix знают, что одиночный минус вместо имени файла означает вывод в stdout]. Аналогично она отвергает и /dev/stdout.
Другая же программа, обрабатывающая результаты первой, допустим, bar, читает из stdin и пишет в stdout. (если быть точным, первое — это трейсер специального вида, дающий двоичный дамп, а второе — конвертор, печатающий их же в человекочитаемом виде).
Нужно их объединить в конвеер.
Некрасивый вариант — использование обычного файла. Записал, прочитал.
Есть куда более красивый вариант — это именованные пайпы. Так как у пайпа есть имя, мы можем передать его как файл первой программе, а потом передать содержимое другой.
Выглядит это так:
Некая программа (допустим, foo) не умеет писать вывод в stdout, только в файл. Даже "-" в качестве имени файла всего лишь создаёт файл с названием "-" [большинство умных программ под unix знают, что одиночный минус вместо имени файла означает вывод в stdout]. Аналогично она отвергает и /dev/stdout.
Другая же программа, обрабатывающая результаты первой, допустим, bar, читает из stdin и пишет в stdout. (если быть точным, первое — это трейсер специального вида, дающий двоичный дамп, а второе — конвертор, печатающий их же в человекочитаемом виде).
Нужно их объединить в конвеер.
Некрасивый вариант — использование обычного файла. Записал, прочитал.
Есть куда более красивый вариант — это именованные пайпы. Так как у пайпа есть имя, мы можем передать его как файл первой программе, а потом передать содержимое другой.
Выглядит это так:
mkfifo mypipe cat mypipe | bar & foo mypipe& rm mypipe
+56
Быстрый старт с openID
3 min
15KДобрый день, друзья.
Сегодня я хочу поделиться своим опытом внедрения авторизации по openID на своем книжном сайте «Мои книги». Статья рассчитана на начинающих, поэтому вряд ли заинтересует тех, кто уже знает все нюансы этой технологии. Основная ее цель – ответить на вопрос: «да, это удобно, но как же мне сделать такое в моем проекте?!!»
Сегодня я хочу поделиться своим опытом внедрения авторизации по openID на своем книжном сайте «Мои книги». Статья рассчитана на начинающих, поэтому вряд ли заинтересует тех, кто уже знает все нюансы этой технологии. Основная ее цель – ответить на вопрос: «да, это удобно, но как же мне сделать такое в моем проекте?!!»
+41
Information
- Rating
- Does not participate
- Location
- Брянск, Брянская обл., Россия
- Registered
- Activity