Как стать автором
Обновить
25
0

Пользователь

Отправить сообщение

HTML 5 Notifications API

Время на прочтение3 мин
Количество просмотров117K

Привет, Хабр. В этой статье я расскажу о HTML Notification API.

Какие возможности предоставляет Notification API


API позволяем отправлять уведомления через браузер. Вы можете задавать иконку для каждого уведомления, группировать уведомления, указывать заголовок и текст уведомления.

Поддержка в браузерах


  • Safari 6
  • Chrome 27
  • Firefox 22

Opera 15 beta не работает с Notifications API, несмотря на наличие конструктора Notification.
На мобильных платформах технология не работает.
В движке webkit есть старая нотация в виде webkitNotifications.

Как это работает


Цикл работы следующий:
  1. Получить разрешение на отправку;
  2. Правило фиксируется для сайта;
  3. Отправить уведомление.

Читать дальше →
Всего голосов 85: ↑82 и ↓3+79
Комментарии66

Исследуем JavaScript Generators

Время на прочтение9 мин
Количество просмотров43K


Когда я начинал писать на node.js, я ненавидел две вещи: все популярные шаблонизаторы и огромное количество callbacks. Я добровольно использовал callbacks, потому что понимал всю силу событийно-ориентированных серверов, но с тех пор в JavaScript появились генераторы, и я с нетерпением жду день, когда они будут имплементированы.

И вот этот день наступает. На сегодня генераторы доступны в V8 и SpiderMonkey, имплементация следует за обновлениями спецификации — это заря новой эры!
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии17

Educational Data Mining: введение

Время на прочтение6 мин
Количество просмотров23K
Nelson Mandela said: “Education is the most powerful weapon
which you can use to change the world.”

Волею судеб нам посчастливилось стать одними из участников курса по Data Mining (программа GameChangers, Санкт-Петербург). Цель курса – изучение методов и технологий обработки данных в различных областях IT-индустрии. Лекции у нас читают эксперты из крупнейших IT компаний, а студенты работают над реальными задачами и проектами.
И так получилось, что в рамках данного курса наша рабочая группа занимается разработкой проекта в области Educational Data Mining.

В России пока единицы знают о существовании этого направления, поэтому для начала в общих чертах расскажем про EDM: общие цели, кто может использовать и зачем.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии13

Полученные уроки: год с большим проектом на AngularJS

Время на прочтение4 мин
Количество просмотров28K
image

После года работы с большим проектом на AngularJS, думаю поделиться некоторыми, извлеченными в процессе, уроками. Во-первых, мне нравится Ангуляр. Он отлично удовлетворяет моим потребности и, думаю, полностью перейти на него в обозримом будущем, когда мне потребуется надежный фреймворк для одностраничного «толстого клиента». Он потрясающий. Над ним работает команда мирового уровня, сообщество фантастическое, и он содержит (или предлагает сообщество) целый комбайн функций для создания веб-приложений.
Читать дальше →
Всего голосов 35: ↑28 и ↓7+21
Комментарии25

Справочник фронт-энд девелопера: виды горизонтальных панелей навигации

Время на прочтение4 мин
Количество просмотров58K

Предисловие: работая верстальщиком, ваш покорный слуга заметил, что существует несколько типов меню; при этом для верстки каждого из них следует использовать свои приемы.
Подробности — под катом.
Читать дальше →
Всего голосов 81: ↑69 и ↓12+57
Комментарии16

Прототипы страниц сайта: между брифом и техническим заданием

Время на прочтение3 мин
Количество просмотров34K
Большинство разработчиков сайтов, с которыми мне приходилось сотрудничать, имеют хорошо налаженный процесс производства и прорабатывают все этапы создания веб-ресурсов до мелочей – начиная с ТЗ и заканчивая юридической и финансовой стороной.

Однако почти никто не рисует наброски будущего сайта — прототипы страниц. Казалось бы, очевидно, что воспринимать иллюстрации проще, чем сухой технический текст, да и время на «перевод» ТЗ для участников проекта значительно сокращается.

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

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

Я понимаю, что есть менеджеры проектов, которые часто являются «прослойкой» между заказчиком и командой разработчиков, но эти люди тоже могут не знать всех тонкостей.

Обычно такой «концепт» готовится, когда выяснены вопросы целевой аудитории, суть работы бизнеса заказчика в целом понята, а структура будущего сайта уже определена. То есть это этап, предшествующий разработке технического задания.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии23

Организация кода в больших AngularJS и JavaScript приложениях

Время на прочтение5 мин
Количество просмотров40K
От переводчика: Думаю, что статьи по архитектуре приложения и организации кода наиболее важны на начальном этапе, т. к., в отличие от всего остального, основу приложения поменять очень трудно. [Оригинал статьи]

Многие разработчики изо всех сил стараются организовать кодовую базу приложения, как только оно вырастает в размерах. В последнее время наблюдал это и в ангуляр и в яваскрипт приложениях, но исторически такая проблема присуща любым технологиям, включая Яву и многие флекс-приложения, с которыми работал в прошлом.
Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии21

Прошлое и будущее компиляции JavaScript

Время на прочтение10 мин
Количество просмотров46K
Сейчас мы воспринимаем как должное быстрое выполнение js-кода в браузерах, и с каждым днем становится все больше вдохновляющих примеров того, что можно реализовать с помощью JS. Но так было далеко не всегда. В этой статье поговорим о JS-движках, отвечающих за компиляцию кода в браузерах, об их историческом пути ускорения и возможных будущих путях.

Первым движком, интерпретирующим js-код стал SpiderMonkey, который был представлен в браузере Netscape 2.0 в 1995 г. Миф о его быстром создании хорошо задокументирован. У Брендана Айка было всего 10 дней на дизайн языка и построение компилятора. Javascript был успешен с самого начала, и к августу того же кода Майкрософт уже встроила свою версию JScript в Internet Explorer 3.0. К концу 1996 язык был принят в комиссию для формальной стандартизации, и уже в июне следующего года обрел официальный стандарт ECMA-262. С тех пор поддержка JS стала обязательно для каждого браузера, и каждый крупный производитель начал строить свой движок для поддержки JS. В течение долгих лет эти движки развивались, заменяли друг друга, переименовывались, и становились основой для следующих движков. Отследить все созданные версии — задача не для слабых духом.
Читать дальше →
Всего голосов 80: ↑73 и ↓7+66
Комментарии30

«Continuous page repainting и отладка перерисовки страницы» в Chrome Dev Tools

Время на прочтение3 мин
Количество просмотров12K
image
Сегодня мы поговорим о том, как Chrome Dev Tools помогают нам бороться с лишней перерисовкой страницы.

Прошлые части:
«Workspace» и «Сниппеты»
«Поддержка Sass»

Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии4

Hyperboria: Интернет 2.0

Время на прочтение3 мин
Количество просмотров118K


Hyperboria — это Open Source реализация проекта Mesh сетей, аналог всем известного и желанного проекта Netsukuku, который, к сожалению, умер.

Другими словами, Hyperboria это самоорганизующаяся децентрализованная сеть, которая сама строит маршруты между узлами.
Или проще говоря — это то, чем интернет должен был стать, свободным, не цензурируемым, быстрым и автоматически масштабируемым.
Читать дальше →
Всего голосов 88: ↑85 и ↓3+82
Комментарии55

Hyperboria: Как все устроено

Время на прочтение4 мин
Количество просмотров65K


В прошлой статье был общий обзор сети Hyperboria, в этой мы рассмотрим её структуру, какие она решает проблемы и её прямое назначение — Mesh сеть между wi-fi устройствами.
Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии42

Понимание областей видимости или Scope в AngularJS

Время на прочтение10 мин
Количество просмотров78K
В Ангуляре, дочерняя область видимости обычно прототипически наследуется от родительской. Единственным исключением является директива, в которой используется scope: { ... }, создающая «изолированную» область видимости, не наследуемую прототипически. Такая конструкция часто используется при создании директив для компонентов «многоразового использования»
Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии6

Лучшие практики AngularJS

Время на прочтение5 мин
Количество просмотров93K
По мотивам этой трансляции.

Вместо предисловия скажу, что есть такой сайт yeoman.io, где собраны наиболее популярные технологии, автоматизирующие разработку фронтенда (сборку, параметризацию CSS и проч.). Обратите на него внимание в начале работы над проектом.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии11

Создание огроооомных приложений на AngularJS

Время на прочтение10 мин
Количество просмотров64K
Документация по Ангуляру отлично подходит для начала работы и ковыряния в API. Однако, она не объясняет как организовать и управлять приложением, когда оно разрастется до десятков или сотен тысяч строк кода. Я собрал здесь некоторые из моих наблюдений и передового опыта по управлению расползающимися приложениями. Сначала взглянем на организацию, затем перейдем к некоторым советам по улучшению производительности и закончим краткой сводкой по инструментам, серверам и процессу сборки. Этот пост будет сосредоточен на больших приложениях, в частности, есть отличная статья по лучшим практикам AngularJS с декабрьской встречи, на которую также стоит взглянуть.
Читать дальше →
Всего голосов 43: ↑40 и ↓3+37
Комментарии38

Пуленепробиваемый Node.js

Время на прочтение2 мин
Количество просмотров27K
Проблемы индейцев
Одним из остававшихся до недавнего времени недостатком Node.js, который отпугивал бекенд-разработчиков от использования Node.js, был тот факт, что непойманное исключение в потоке рушило воркера, и все клиенты, которые ждали от него ответа, не получали ничего.

tl;dr Eсть новое API для асинхронного try\catch. Из статьи можно скопипастить пример и поиграться.
Читать дальше →
Всего голосов 56: ↑47 и ↓9+38
Комментарии21

Централизованная обработка исключений в Node.JS

Время на прочтение6 мин
Количество просмотров9.7K


Преамбула от переводчика: пару месяцев назад я искал решение для возможности использовать исключения в сервере игры, написанном на node.js. К сожалению, исключения в чистом виде не совсем совместимы со средой, работающей на event loop'е. Легче всего это объяснить на примере:
try {
    process.nextTick(function() {
        throw new Error('Catch Me If You Can');
    });
} catch (e) {
    console.log('Exception caught:', e);
}

Это исключение, разумеется, не будет поймано, и оно уронит весь процесс. Месяц назад увидел свет node.js версии 0.8.0 со свеженьким (экспериментальным) модулем domain, который как раз призван решать подобные проблемы. Тем не менее, я бы хотел отдать дань классу, которым я пользуюсь до сих пор. Поехали:
Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии11

Эволюция альтруизма и P2P

Время на прочтение10 мин
Количество просмотров24K
Недавно я слушал по радио передачу об эволюции альтруизма. Обсуждался вопрос о том, каким образом «ген альтруизма» выдерживает естественный отбор. Это обсуждение навело меня на мысли о том, какие функции должны присутствовать в современных сетевых приложениях, чтобы они «выживали» в естественном отборе.
Сначала немного о биологии...
Всего голосов 69: ↑64 и ↓5+59
Комментарии56

Сеть беспроводных устройств на Arduino

Время на прочтение12 мин
Количество просмотров89K
Микро-контроллер на платформе Arduino — отличная платформа для хобби-проектов различной степени сложности и полезности. Не буду утверждать, что платформа Arduino есть наилучший выбор для профессиональных решений (скорее соглашусь с обратным), но для моих любительских «поделок» в области домашней автоматики это оптимальный вариант. Т.е. контроллер хорош сам по себе, но, если к тому же он перестанет быть «самим по себе», а будет уметь «общаться» с себе подобными, при этом не обрастая дополнительными проводами, то его полезность и применимость может многократно вырасти. Итак, начнём строить наш домашний SkyNet…
Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии21

Путешествие через вычислительный конвейер процессора

Время на прочтение16 мин
Количество просмотров134K
Так как карьера программиста тесно связана с процессором, неплохо бы знать как он работает.

Что происходит внутри процессора? Сколько времени уходит на исполнение одной инструкции? Что значит, когда новый процессор имеет 12, или 18, или даже 31-уровневый конвейер?

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

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

Эта статья рассказывает, как устроен вычислительный конвейер x86 процессора.
Читать дальше →
Всего голосов 160: ↑159 и ↓1+158
Комментарии43
12 ...
14

Информация

В рейтинге
4 339-й
Зарегистрирован
Активность