Search
Write a publication
Pull to refresh
1
0
jj_killer @jj_killer

User

Send message

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

Reading time1 min
Views68K
Сделал небольшую подборку новых полезных материалов для веб-дизайнеров за сентябрь 2012. Надеюсь, будет полезна хабровчанам.

Полезные сервисы


Easel.io — отличный сервис для прототипирования прямо в браузере.

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

SugarJS — Синтаксический сахар для JavaScript

Reading time4 min
Views22K


Что такое SugarJS?


SugarJS — это open source (лицензия — MIT) библиотека Javascript, который расширяет нативные объекты полезными методами. Она разработана, чтобы быть интуитивным, ненавязчивым инструментом, повышающим выразительность кода, который позволял бы делать больше с меньшим количеством кода и меньше задумываясь над рутиной.

На самом деле у них очень информативный и простой сайт — где все уже хорошо написано.
Я просто постараюсь обозначить основные моменты.

Кратко...

  • Расширяет нативные элементы Javascript полезными, интуитивными методами.
  • Прост для понимания и в использовании.
  • Метод SugarJS не используется при наличии метода в родной реализации браузера.
  • Имеет систему тестирования, имеющую огромный набор тестов.
  • Расширяет возможности работы с датой и временем, обеспечивает их форматирование на нескольких языках (русский есть).
  • Отлично ладит с другими фреймворками и сторонним кодом.
  • Модульность, вы можете включать только нужные пакеты.
  • Полностью совместимый ECMAScript.
  • Заявлена поддержка всех основных браузеров, включая мобильные.
  • Поддерживает Node.js.
  • Имеет хорошую и удобную документацию.


Заинтересовало? Добро пожаловать под кат.
Читать дальше →

Неканоническое STI в Rails

Reading time4 min
Views9.3K
Перед тем как начать повествование, вспомним что же такое STI.

STI (Single Table Inheritance) — паттерн проектирования, который позволяет перенести объектно-ориентированное наследование на таблицу реляционной базы данных. В таблице БД должно присутствовать поле идентифицирующее название класса в иерархии. Зачастую, в том числе в RoR, поле называют type.

С помощью данного паттерна можно создавать объекты, которые содержат идентичный набор полей, но имеют разное поведение. Например, таблица пользователей, содержащая имя, логин и пароль, но использовалось два класс пользователей Admin, Visitor. Каждый класс, содержит как унаследованны так и индивидуальный набор методов. Определение того, какой класс будет создан и используется поле type, имя поля может быть переопределено.

Таким образом, если рассматривать канонический случай: имена классов хранятся в одной таблице с данными.

Но может случится иная ситуация…
Читать дальше →

Модульный подход к разработке web-приложений с использованием JavaScript: AMD и RequireJS

Reading time3 min
Views161K
RequireJSПри разработке приложений с модульной структурой на JavaScript возникает две проблемы:
  • описание и удовлетворение зависимостей различных частей приложения, необходимость организации подключения зависимостей на серверной стороне;
  • экспорт переменных в глобальную область видимости и их коллизия.

Обе эти задачи решаются при использовании подхода Asynchronous Module Definition. Он сводится к описанию модулей функцией define и подключению их с помощью require. На данный момент есть несколько инструментов, реализующих AMD. Я начал своё знакомство с ними с RequireJS и был удивлён, насколько удобно и просто можно описывать зависимости модулей. Расскажу, как это работает, на простом примере.
Читать дальше →

Хоткеи в приложенях Ruby on Rails

Reading time2 min
Views5.3K
Fingers on the railsMousetrap — javascript-библиотека, позволяющая легко и непринужденно добавлять хоткеи на сайты, появилась не так давно. Но уже успела полюбиться мне настолько, что я решил сделать ее добавление к проекту на Ruby on Rails простым и приятным. А именно, завернуть в ruby-библиотеку для рельсов. Так появился gem mousetrap-rails.

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

SCSS: пара полезных техник

Reading time3 min
Views32K
CSS – препроцессоры все популярнее среди веб – разработчиков. Почему?
Потому что они позволяют:
  • Сэкономить время
  • Применять принцип DRY в CSS
  • Сделать код более читаемым

На данный момент наиболее популярными препроцессорами являются SASS и LESS.

О том, почему SASS лучше LESS, можно почитать в этой статье. Лучше ли — вопрос спорный, однако, я перешел с LESS на SCSS хотя бы потому, что тут есть:
  • Циклы
  • Условные операторы
  • Списки

О сравнении синтаксиса SCSS и SASS, можно почитать в этой статье. Лично я выбрал SCSS по причине обратной совместимости с CSS и, как следствие, возможности быстро включать старые CSS файлы в проект посредством директивы import. Для этого им надо изменить расширение на .scss.

Об основах SCSS уже писали faiwer1 и AbleBoy2, здесь же я хочу описать пару техник, которые мне действительно помогли.
Читать дальше →

BigVideo.js: фоновое видео на весь экран

Reading time1 min
Views37K


Плагин BigVideo.js для jQuery добавляет на страницу видео в качестве фонового изображения через HTML5 Fullscreen API. Видео автоматически растягивается на любой размер экрана. Для работы нужно предварительно загрузить библиотеки jQuery, jQuery UI и jQuery imagesloaded. Запуск:

$(function() {
    var BV = new $.BigVideo();
    BV.init();
    BV.show('http://video-js.zencoder.com/oceans-clip.mp4');
});

В качестве хостинга своих видеороликов удобно использовать Vimeo Pro, он даёт прямую ссылку на mp4-файл и отгружает контент со скоростью более 10 Мбит/с.
Читать дальше →

Unix как IDE: Файлы

Reading time5 min
Views29K
Одной из важных особенностей IDE является встроенная система управления файлами. Она должна включать в себя как базовые возможности, такие как переименование, удаление перемещение, так и более специфические для разработки: компиляция и проверка синтаксиса. Вдобавок было бы удобно оперировать группами файлов для поиска по размеру, расширению или по маске. В этой первой статье я покажу несколько вариантов использования инструментов, знакомых любому пользователю Linux, для работы с группами файлов в проекте.
Читать дальше →

7 уроков, полученных при создании Reddit

Reading time7 min
Views23K
UPD. Оригинальная статья достаточно старая — 2010 года. Сейчас ситуация выглядит по-другому.

В декабре 2010 у Reddit-а было 829М просмотров и 119 серверов.
В конце 2011 года — 2,07B просмотров и 240 серверов.

Спасибо potomushto за актуализацию.

UPD 2. Поправил схему для людей с проблемами цветовосприятия. Спасибо second_pilot и spiritedflow



Стив Хаффман, один из создателей Reddit, рассказал на презентации, чему они научились, пока строили и развивали Reddit до 7,5 млн пользователей в месяц, 270 миллионов просмотров страниц в месяц и более 20 серверов баз данных.


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


Каждый из 7 уроков будет рассмотрен в соответствующей секции.
  • Падайте часто
  • Разделение сервисов
  • Открытая схема данных
  • Избегайте хранения состояний
  • Memcache
  • Сохраняйте избыточные данные
  • Выполняйте максимум работы в фоновом режиме

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

АВЛ-деревья

Reading time9 min
Views436K
Если в одном из моих прошлых постов речь шла о довольно современном подходе к построению сбалансированных деревьев поиска, то этот пост посвящен реализации АВЛ-деревьев — наверное, самого первого вида сбалансированных двоичных деревьев поиска, придуманных еще в 1962 году нашими (тогда советскими) учеными Адельсон-Вельским и Ландисом. В сети можно найти много реализаций АВЛ-деревьев (например, тут), но все, что лично я видел, не внушает особенного оптимизма, особенно, если пытаешься разобраться во всем с нуля. Везде утверждается, что АВЛ-деревья проще красно-черных деревьев, но глядя на прилагаемый к этому код, начинаешь сомневаться в данном утверждении. Собственно, желание объяснить на пальцах, как устроены АВЛ-деревья, и послужило мотивацией к написанию данного поста. Изложение иллюстрируется кодом на С++.

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

Comet сервер на эрланге

Reading time5 min
Views8.6K
Статья для людей, только начинающих знакомиться с эрлангом: как написать простой comet сервер.

Готовый код здесь: github.com/maxlapshin/comet

Описание



Комет-сервер будет написан с использованием cowboy, tinymq, и куска жабаскрипта.

Код выложен на гитхабе с тегами. Основные этапы помечены тегами, можно откатиться, чтобы посмотреть, что именно было сделано в тот или иной момент.

Сама статья пишется параллельно с кодом, что заметно из истории в гите.

Логика такая: по http постим сообщение на сервер, оно попадает в очередь сообщений, откуда его выгребает клиент через long-poll запрос.

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

Как работает сортировка у Реддита

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

Этот пост — продолжение разбора алгоритмов сортировки (в прошлый раз был Hacker News). В этот раз, мы разберем как работает сортировка постов и комментариев на Reddit. Алгоритмы у Реддита достаточно простые, чтобы понять их и реализовать.

Первая часть этой записи будет сфокусирована на сортировке постов, а вторая на сортировке комментариев. Они довольно сильно различаются, и за идеей способа сортировки комментариев стоит Randall Munroe (автор xkcd).

Разбираем сортировку постов

Реддит open-source-ный проект и его код полностью доступен на гитхабе. Он написан на питоне, исходники вы можете увидеть тут. Их алгоритмы сортировки написаны под Pyrex, для дальнейшей компиляции (трансляции) в C-код. Pyrex был выбран из-за производительности. Я переписал их реализации на чистый питон, чтобы они легче читались.
Читать дальше →

Практика получения и использования цифровых подписей при сдаче отчетов в гос.органы

Reading time11 min
Views39K

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

  • Появились нормальные законы и открытые стандарты – программу для формирования документов теперь может написать любой (и их действительно уже написано много)
  • Налоговая стала выдавать подписи бесплатно
  • Опять-таки бесплатно оказывается техподдержка
  • Одна и та же подпись может использоваться во всех гос. органах
  • Налоговая стала намекать, что скоро бумажные документы принимать не будет (это не правда, но людей подстёгивает)

Данная статья детально описывает процесс получения электронной цифровой подписи и её использования при отправке документов в налоговую инспекцию. Да, на Хабре о чем-то таком уже писали, но то были либо рекламные посты платных программ, либо короткие малополезные заметки. А здесь будет много скриншотов и рассказов о граблях не очевидных нюансах использования родного ПО налоговой.

Что этот пост делает на Хабре? Многие айтишники зарегистрированы как частные предприниматели и должны примерно 5 раз в год тратить по полдня на сдачу отчетов в налоговую. Теперь это время можно будет свести к 5-10 минутам. Кроме того, мы уделим некоторое внимание вопросам информационной безопасности всего этого механизма.
Читать дальше →

UniFi 2.0 Хотспот для кафе и гостиниц. Офисный Wi-Fi. Обзор нового бесплатного контроллера

Reading time2 min
Views104K
Доброго дня всем.

С момента выхода системы Wi-Fi доступа UniFi от Ubiquiti Networks (правильно произносится: «Юбиквити») прошло больше года.
Первая версия системы, описанная в нашем посте, совершила маленькую революцию. Впервые появилась красивая, удобная, продуманная, при этом простая и очень дешевая система офисного Wi-Fi стандарта 802.11n.
Единственно, чего не хватало — это встроенного биллинга для создания Hotspot. И вот, пару дней назад вышла новая версия, где все это есть. О ней и расскажу.
Читать дальше →

Опыт организации WiFi на конференции

Reading time3 min
Views37K
Так получилось, что мне удалось принять участие в организации международной конференции (среднего масштаба) ISFD-11th-RCBJSF. Конференция проводилась в рамках Уральского гос. университета им. А.М. Горького.
Итак, входные данные: 5 дней конференции, более 250 участников из 25 стран. Местом проведения был выбран Центр Международной Торговли в Екатеринбурге. Задач было более чем достаточно, но рассказать я хочу про организацию беспроводной сети.
Читать дальше →

Двухфакторная аутентификация на домашнем серваке — быстро, дёшево, дружелюбно

Reading time3 min
Views16K
Двухфакторная аутентификация — предоставления информации от двух различных типов аутентификации информации [»]

Например, это могут быть последовательно введённые пароль и код, который выдаёт токен с кнопкой. Думаю, многие из вас такие девайсы видели, а кто-то даже их регулярно использует.



Это как если бы на дверь поставили второй замок. Ключ к первому — обычный пароль. Ко второму — действующий в течение 30 секунд одноразовый код. Попасть за дверь можно только если оба ключа окажутся правильными, а не один, как было раньше.

С некоторых пор Google сделала доступной двухфакторную аутентификацию в своих сервисах. Теперь токен переехал в ваш мобильный телефон с Android'ом! iPhone и Blackberry тоже сгодятся в такой роли. Очень удобно. Опробовав на Gmail, мне захотелось такую же штуку сделать у себя, тут-то я внезапно и нашёл libpam-google-authenticator.
Читать дальше →

Как Олимпиада в Лондоне транслировалась через облако

Reading time8 min
Views7.9K
olympics-london.jpeg

Ранее в этом году мы анонсировали Windows Azure Media Services. Windows Azure Media Services — это облачное PaaS-решение, которое позволяет вам эффективно строить медиа-сервисы и доставлять медиа-контент вашим потребителям. Решение предлагает набор готовых к применению сервисов, которые позволяют производить быстрое получение медиа-материала, кодирование, конвертирование формата, хранение, защиту контента и доставку видео как в live-формате так и по требованию. Windows Azure Media Services так же поддерживают доставку контента на любое устройство или платформу, включая: HTML5, Silverlight, Flash, Windows 8, iPad, iPhone, Android, Xbox и Windows Phone.

Windows Azure Media Services и Олимпиада 2012 в Лондоне


Последние несколько недель Windows Azure Media Services использовались для того, чтобы доставлять в реальном времени и по требованию видео-поток для нескольких телевещательных компаний, которые транслировали Олимпийские Игры. Среди них: France Télévisions, RTVE (Spain), CTV (Canada) and Terra (Central and South America). В сотрудничестве с deltatre, Southworks, gskinner и Akamai мы помогли доставить более 2300 часов живого видео и HD-контента Олимпийских Игр в более чем 20 стран.

Ниже вы найдете некоторые детали о том как эти компании использовали Windows Azure Media Services для обеспечения превосходной доставки и трансляции видео.
Читать дальше →

Классный оконный менеджер — Awesome WM

Reading time4 min
Views168K
imageЗдравствуйте! Прочитав недавно статью про оконные менеджеры в Linux, мне захотелось рассказать всем о менеджере, который был там упомянут — «awesome».
Это тайлинговый windows manager для unix (linux, freebsd, openbsd, netbsd).
Читать дальше →

monit — наблюдатель за системными процессами

Reading time7 min
Views95K
Теория

Monit — самостоятельный демон, работающий от пользователя root. Демон работает на Linux, Free/Net/OpenBSD, SUN Solaris и некоторых других UNIX-системах. Это OpenSource проект, у которого есть «старший брат» — коммерческий проект MMonit. Последний обладает более широким функционалом в вопросе массового мониторинга, межсетевого взаимодействия и составления отчетов. Идея авторов проста — для одиночного сервера используем Monit, для большой сетевой фермы — MMonit.

Узнать больше

AngularJS — фреймворк для динамических веб-приложений от Google

Reading time6 min
Views138K
AngularJS создан для тех разработчиков, которые считают, что декларативный стиль лучше подходит для создания UI, а императивный — для написания бизнес-логики.

Дзен Angular


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


AngularJS представляет собой комплексный фреймворк. В стандартной поставке он предоставляет следующие возможности:
  • Все, что вам нужно для создания CRUD-приложений: data-binding, базовые директивы для шаблонов, валидация форм, роутинг, deep linking, повторное использование компонентов, dependency injection, инструменты для взаимодействия с серверными (RESTful) источниками данных.
  • Все, что вам нужно для тестирования: средства для модульного тестирование, end-to-end тестирования, mock-и.
  • Шаблон типового приложения, включающего в себя структуру каталогов и тестовые скрипты.


AngularJS разрабатывается сотрудниками Google и используется, как минимум, в одном сервисе Google — DoubleClick.

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

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity