Pull to refresh
26
0
Андрей Кулинич @4vanger

javascript guru

Send message

Кое-что о соглашениях об именах почтовых ящиков

Reading time4 min
Views53K

Заведя для себя «почту для домена» на Яндексе, я решил открыть свободную регистрацию посторонним юзерам почтовых ящиков на своем «модном» домене. Помимо включения функции catch-all, которая направляет всю входящую почту несуществующих ящиков моего домена на мой основной ящик, предо мной встала необходимость зарезервировать за собой все «стандартные» названия ящиков, чтобы не было недоразумений, когда какое-то имя уже забил посторонний, и вся «служебная» почта уходит совсем не вам. В П.Д.Д. можно, конечно, в любой момент экспроприировать любой ящик подконтрольного домена, но ведь осадочек-то остается. Я озадачился: какие же имена почтовых ящиков являются стандартными и системными? Техподдержка Яндекса ответила, что они резервируют для себя только имя postmaster@ на каждом домене, чтобы отслеживать жалобы и проблемы с почтой, и что на данный момент вопрос о наборе резервированных имен у них остается открытым. Далее, результат поиска в интернете оказался немного предсказуем.
Читать дальше →
Total votes 101: ↑94 and ↓7+87
Comments35

Поиск по изображениям — гугл и не только

Reading time4 min
Views39K
Сначала немного общих слов о том, как вообще можно организовывать поиск по изображениям.
В идеале нам бы хотелось иметь систему, которая может анализировать содержимое рисунка, определять, изображен там дом, озеро или кошка с котятами, ну и попутно запоминать разные характеристики обнаруженных объектов — такие как цвет, размер, взаимное размещение — а потом осуществлять поиск по этой информации. Но, к сожалению, на сегодняшний день это решительно невозможно. Как минимум, нет метода, который позволил бы сколько-нибудь надежно выделять объекты реального мира на картинках.
Поэтому любая система вынуждена анализировать менее интеллектуальные признаки, и этих признаков может быть несколько разных типов:
Читать дальше →
Total votes 41: ↑36 and ↓5+31
Comments23

The Noun Project: свободная иконка для каждого объекта в мире

Reading time1 min
Views14K


Создатели проекта The Noun Project поставили целью собрать пиктограммы для всех объектов в мире. Коллекцию по мере сил пополняют десятки дизайнеров из разных стран. Все иконки публикуются в формате SVG, под лицензией Creative Commons Attribution 3.0 (CC BY) или Public Domain, разбиты на тематические категории, есть поиск на русском языке.
Total votes 110: ↑107 and ↓3+104
Comments57

KnockoutJS: Ajax grid view с нуля в 40 строк

Reading time8 min
Views14K
В последнее время на Хабре все больше упоминаний о KnockoutJS, и я не останусь в стороне от этого тренда.
Сегодня я расскажу о том как сделать своими руками Ajax Grid View с фильтрацией и переходом по страницам написав, при этом, совсем немного кода.
Начиная писать эту статью я чувствовал себя несколько неловко, да и сейчас ощущение не ушло. Все дело в том, что сама библиотека простая, паттерн MVVM простой, и рассказывать я буду простые вещи. Я уверен, что в ближайшее время Knockout получит достаточно большое распространение. А неловко мне от того, что уже через год-дугой кто-то наткнувшись на эту статью будет обескуражен простотой изложенного материала. Примерно так, как любой из вас сейчас, открывший статью о jQuery от 2007 года.

Кто не испугался предполагаемого баяна, милости прошу под хабракат.

Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments22

DSL роутер D-link D2650u для не-DSL провайдера

Reading time4 min
Views71K
imageВ наличии: Роутер D-link DSL2650U, который имеет встроенный DSL модем, 4-портовый коммутатор и один USB вход и не-DSL провайдер ( обычная витая пара и DHCP на том конце провода ). Ревизия роутера: D, Board ID: 96358VW2.
Проблема: Некуда вставлять витую пару провайдера, поскольку нет Ethernet WAN порта, а просто свич не работает с провайдером.
Решение: Перенастроить один из LAN портов как WAN.
Статья будет в формате пошаговой инструкции, как решить эту задачу. Поскольку времени на поиск и вкуривания информации я потратил относительно много, решил написать об этом пост, чтобы систематизировать и помочь людям решить подобную проблему.
Читать дальше →
Total votes 64: ↑60 and ↓4+56
Comments38

Node.js для начинающих

Reading time1 min
Views41K
NodeBeginner.ru — перевод на русский язык учебника по Node.js для начинающих «The Node Beginner Book» автора Manuel Kiessling.

Учебник предназначен для разработчиков с опытом работы с каким-либо объектно-ориентированным языком, немного знакомых с JavaScript и полных новичков в Node.js. Оригинал ещё находится в процессе написания, законченно около 90%. Перевод будет соответственно обновляться.
Total votes 74: ↑69 and ↓5+64
Comments31

Iterators & Generators

Reading time12 min
Views19K
Обработка элементов коллекции/массива обычная и частая операция. В JavaScript есть несколько способов обхода коллекции начиная с простого for(;;) и for a in b

var divs = document.querySelectorAll('div');
for (var i = 0, c = divs.length; i < c; i++) {
    console.log(divs[i].innerHTML);
}

var obj = {a: 1, b: 2, c: 3};
for (var i in obj) {
    console.log(i, obj[i]);
}

У объекта Array есть методы обхода всех элементов map(), filter()
var numbers = [1, 2, 3, 4, 5];
var doubled = numbers.map(function (item) {
    return item * 2;
});
console.log(doubled);

В Firefox есть "заполнитель массива" (Array comprehensions)
var numbers = [1, 2, 3, 4];
var doubled = [i * 2 for each (i in numbers)];
console.log(doubled); // [2, 4, 6, 8]

Итераторы и Генераторы появились в JavaScript 1.7 (по версии Mozilla) они есть пока в Firefox 2+ (в статье будет упомянут способ как их можно «эмулировать» почти во всех браузерах с костылем) Итераторы и Генераторы вносят механизм, позволяющий управлять поведением for in и инкапсулировать процесс получения следующего элемента в списке объектов.

Часто для обхода и обработки элементов массива мы пишем большие конструкции, часто копипастим их части. Задача Генераторов и Итераторов усовершенствовать этот процесс, добавив синтаксический сахар.
Читать дальше →
Total votes 89: ↑86 and ↓3+83
Comments16

О «достаточно хорошем» ПО

Reading time3 min
Views2.3K
Сегодня на ежедневном Stand-up'е я произнёс перед командой очень проникновенную речь о том, что мы пишем софт для людей и никого не интересует, насколько красиво код будет выглядеть изнутри, если пользователю будет неудобно с ним работать.

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

И, конечно же, я сразу же вспомнил концепцию о достаточно хорошем (good enough) ПО. Итак, вот её основной постулат: мы не стремимся сделать идеально, мы не пишем как попало, мы делаем достаточно хороший продукт.
Читать дальше →
Total votes 94: ↑85 and ↓9+76
Comments107

JavaScript Tutorial — на Github

Reading time3 min
Views2.5K
Всем привет!

Некоторое время назад, я опубликовал топик об альфа-версии современного учебника JavaScript, пока на английском: javascript.info.

В комментариях были высказаны пожелания, в частности:
  • Выложить исходники книги в open source.
  • Сделать оффлайн-версию.
  • Сделать возможность совместной работы над книгой на Github.
Все это сделано. Следующий этап — совместная работа и перевод на русский.
Читать дальше →
Total votes 74: ↑69 and ↓5+64
Comments15

Вышел плагин jQuery Color версии 2 бета 1

Reading time2 min
Views4.9K
Ранее, в 2007 году, мы выпустили jQuery Color Plugin, и той поры он обеспечивал для вас возможности анимации цвета. Сейчас мы подготавливаем вторую версию этого плагина, в которой добавится API, RGBA, HSLA и ряд других возможностей. Настало время бета-версии! Репозиторий этого плагина находится по адресу github.com/jquery/jquery-color. А на code.jquery.com также доступны две версии плагина — несжатая и сжатая минификатором.

Обзор новых возможностей

RGBA


Теперь мы поддерживаем формат RGBA у значений цвета. В тех браузерах, которые RGBA не поддерживают, ближайшее к элементу значение backgroundColor станет использоваться при вычислении промежуточной аппроксимации цвета. Хотя это не «настоящая» альфа-прозрачность, этот способ, по меньшей мере, обеспечит иллюзию альфы при взаимодействии с одноцветным фоном. Вот как выглядят браузеры Opera 10, Chrome 10, Firefox 3.6 и IE 6, когда в них запущен вон тот демонстрационный пример альфа-наложения:

[Opera 10, Chrome 10, Firefox 3.6 и IE 6 демонстрируют альфа-наложение]

HSLA


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

API, удобный в употреблении


Вместо простой группы приватных методов-утилит теперь используется вызов $.Color(), создающий новый объект Color. Новый объект Color можно проинициализировать несколькими различными способами: именем цвета, шестнадцатиричным кодом цвета, CSS-подобным значением RGBA или HSLA, массивом RGBA-значений или объектом с цветовым компонентом. Теперь есть и методы-помощники для каждого из цветовых компонентов, наподобие .red() и .hue(), позволяющие считать или задать его значение. В сочетании с функциями-помощниками (например, .toRgbString(), .transition() и .is()), объект $.Color отныне способен обеспечить все ваши цветовые нужды. Глядите README по адресу github.com/jquery/jquery-color там обзор всех вновь появившихся функций. Теперь jQuery.Color пригоден не только для анимации простых цветов: его API вы можете отныне использовать для сложных цветовых вычислений и анимаций!

Немедленные примеры:
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments11

Создание приложений реального времени с помощью Server-Sent Events

Reading time7 min
Views52K
Буквально недавно стало известно, что Firefox 6 получит SSE (уже есть в Opera 10.6+, Chrome, WebKit 5+, iOS Safari 4+, Opera Mobile 10+) так, что поддержка более половины всех браузеров (охват аудитории пользователей) уже не за горами. Настало время присмотреться к этой технологии. SSE предложил Ian Hickson более 7 лет назад, но только год назад она стала появляться в браузерах. У нас же есть WebSockets зачем нам ещё один какой-то протокол?! Но во всем есть свои плюсы и минусы, давайте посмотрим чем же SSE может быть полезен.

Идея SSE проста — клиент подписывается на события сервера и как только происходит событие — клиент сразу же получает уведомление и некоторые данные, связанные с этим событием. Чтобы понять полезность протокола SSE необходимо сравнить его с привычными методами получения событий, вкратце объясню их суть:
Читать дальше →
Total votes 87: ↑85 and ↓2+83
Comments55

Написание сложных интерфейсов с Backbone.js

Reading time13 min
Views100K
image

Backbone.js это каркас для создания RIA JavaScript приложений, его автором является Jeremy Ashkenas, создатель CoffeeScript, Backbone является частью компании Document Cloud ей же «принадлежит» Underscrore.js. Backbone — очень легкая библиотека, помогающая вам создавать интерфейсы. Она может работать с любыми библиотеками, к которым вы привыкли.
Backbone это набор классов, размером менее 4Кб, которые формируют структуру вашего кода и помогают создавать качественные MVC веб-приложения.
Backbone формирует структуру тяжелых JavaScript приложений, внесением моделей с key-value подобным хранилищем и своими событиями, коллекций с богатыми API, видов (ориг. views) с декларативной обработкой событий и соединяет все это в в одно приложение, поддерживающее RESTful JSON интерфейс.

Backbone не может работать без Underscore.js. Для поддержки REST API и работы с DOM элементами в Backbone.View настоятельно рекомендуется подключить json2.js и jQuery-подобную библиотеку: jQuery или Zepto

В статье будет рассмотрена структура Backbone.js, будет поэтапно создано простое Todo приложение.
Читать дальше →
Total votes 108: ↑103 and ↓5+98
Comments47

NetPing: конструктор для администратора и досуг для программиста

Reading time10 min
Views62K


Судя по тому, насколько популярен блог DIY, многие из нас любят изобретать. Наверное, каждый встречал человека, который способен сутками что-нибудь паять, программировать, отлаживать, не замечая ничего вокруг. Вот совсем свежие примеры.

В этой статье я расскажу про устройство, которое способно обеспечить досугом изобретателей очень надолго. Это, с одной стороны, серийно выпускаемые приборы. Но сделаны они в виде конструкторов, поэтому их применение ограничено лишь вашей фантазией.

Речь пойдет про устройства NetPing. Эта российская разработка периодически упоминается на хабре, но детального рассказа я не встречал. Пусть эта статья будет продолжением серии «Оборудование российского производства». Мне достался самый универсальный прибор линейки – UniPing RS-232. Основная сфера его применения – удаленный мониторинг и управление множеством устройств в квартире, доме, офисе. Конечно, давно существует понятие «умный дом», но, как правило, это преподносится как вариант для состоятельных людей, хотя получают они черный ящик с жестко заданным, пусть и большим, набором функций. Однако, можно ведь все собрать и запрограммировать самому!

Интересно?
Total votes 145: ↑142 and ↓3+139
Comments74

Разработка мобильных приложений на PhoneGap и jQuery Mobile

Reading time10 min
Views147K


PhoneGap — это OpenSource платформа, позволяющая разрабатывать мобильные приложения на HTML, JavaScript и CSS под различные платформы (практически без изменения кода приложения) в их число входят: iOS, Android, Blackberry, WebOS, Symbian и Windows Mobile на подходе. Прелесть его в том, что он не требует навыков разработки под конкретную платформу. Вы пишете свое приложение на JavaScript, используете HTML и CSS для разметки. Вы пишете мобильное приложение как обычный сайт или веб-сервис.
Движок PhoneGap расширяет API браузера и добавляет следующие возможности: доступ к акселометру, доступ к камере (пока только фото), доступ к компасу, доступ к списку контактов, запись и прослушивание аудио файлов, предоставляет доступ к файловой системе, позволяет работать с разными HTML5 хранилищами localStorage, Web SQL и т.п а также позволяет безболезненно обращаться к любому кросс-доменному адресу.
Кроме платформы PhoneGap имеет, пока бесплатный, билдер приложений под все устройства в один клик.

jQuery Mobile


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

Если вы знаете HTML, JavaScript, CSS, jQuery и испытываете проблемы с Java, Objective-C и другими, но желаете попробовать свои силы в мобильной разработке, то эта статья для вас.
Читать дальше →
Total votes 117: ↑115 and ↓2+113
Comments47

Что почитать, чтобы повысить свой уровень JavaScript

Reading time3 min
Views98K
От переводчика: Я думаю многие читали статью Rey Bango — What to Read to Get Up to Speed in JavaScript, но до хабра обсуждение так и не докатилось. Предлагаю закрыть этот пробел и поговорить о хороших книгах, блогах, тренингах и конференциях, посвященных в первую очередь клиентскому JavaScript и клиентской веб-разработке. Чтобы не копипастить оформляю статью в виде перевода.

Сейчас в рассылке JSMentors JavaScript идет обсуждение книг, который стоит прочитать, чтобы улучшить свои знания. Там было много позитивных отзывов и предложений. Я хочу показать вам те книги и интернет-ресурсы, который я считаю важными и которые помогут вам в обучении. На этой странице я перечислил большое количество источников, разделенных по уровням.

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

Не заставляю вас читать все книги, которые предложены ниже. Эти книги я читал на протяжении многих лет и почерпнул в каждой много полезного. Я их распределяю по категориям, чтобы вам было проще работать с ними. Выберите книги, которые подходят вам.
Читать дальше →
Total votes 165: ↑161 and ↓4+157
Comments31

Подборка 10 css3 кнопок

Reading time4 min
Views91K
С каждым днем новые стандарты css3 и html5 всё более глубоко входят в жизнь верстальщиков и web-разработчиков, а браузеры с каждым днем становятся все более совместимыми с этими стандартами.



В связи с этим событием хотелось бы представить Вам подборку 10 css3 кнопок, которые смогут облегчить вам жизнь при верстке и создании web приложений.
Читать дальше →
Total votes 266: ↑227 and ↓39+188
Comments79

Обзор плагинов ++

Reading time2 min
Views3.4K
Очередной топик с обзором нескольких интересных плагинов jQuery.

Mobily Map




Позволяет сделать интерфейс, подобный google-картам, на основе собственных изображений (возможность перетаскивать, ставить маркеры на изображении, реагировать на нажатие по ним и др.).
Узнать больше (англ.) | Посмотреть в действии


Читать дальше →
Total votes 162: ↑148 and ↓14+134
Comments22

Запускаем сторонний код в песочнице

Reading time8 min
Views5.6K
Как гласит статья из Википедии, Песочница — механизм для безопасного исполнения программ. Песочницы часто используют для запуска непротестированного кода, непроверенного кода из неизвестных источников, а также для запуска и обнаружения вирусов.

Представим, что у нас стоит задача: есть какой-то проект и пользователи могут под него писать свои скрипты (виджеты, дополнения, плагины). Мы хотим, чтобы пользовательские скрипты не делали ничего плохого (кража кук это меньшее, что они могут сделать).

В статье пойдет речь об атаках, которые могут совершать злоумышленники и о методах безопасного выполнения стороннего кода.
Читать дальше →
Total votes 97: ↑92 and ↓5+87
Comments25

Оператор запятая

Reading time6 min
Views36K
Продолжаем тему операторов, на этот раз вас ждет рассказ об операторе запятая.

Начнем с забавного твита:

Если изображение не отображается, пожалуйста, напишите автору!

'c' в конце — это оператор запятая. Последняя в списке значимых операторов, мало документированная, но очень полезная. Она не так распространена, но она мне очень нравится. Она проста, элегантна, и с ней лучше быть в хороших отношениях.

Что она делает?


Оператор запятая выполняет оба операнда (слева направо) и возвращает значение второго оператора. (MDC)
var a = (7, 5);
a; //5

var x, y, z
x = (y=1, z=4);
x; //4
y; //1
z; //4
Читать дальше →
Total votes 133: ↑120 and ↓13+107
Comments49

Динамические данные в jQuery Mobile с помощью jQuery Templates

Reading time6 min
Views5K

Введение


Вышла уже четвертая альфа jQuery Mobile, сделавшая фреймворк более-менее стабильным и удобным в использовании. Единственное, чего пока сильно не хватает — хорошей документации. Например, сейчас там описан только стандартный workflow показывающий переходы по JQM страницам. Но что делать, если вы хотите загружать данные динамически?
Статья подразумевает, что у вас есть хотя бы небольшие представления о том, что такое javascript, как работает jQuery и JQM.
Подробности..
Total votes 27: ↑27 and ↓0+27
Comments18

Information

Rating
Does not participate
Date of birth
Registered
Activity