Pull to refresh
  • by relevance
  • by date
  • by rating

Молния: предстоящие вебинары про Serverless технологии

Development of mobile applications *Amazon Web Services *Microsoft Azure Google Cloud Platform *Serverless *

Привет, Хабр! Уже завтра Amazon проводит Serverless Immersion Day, на котором будут практические упражнения по бессерверным архитектурам, методам развертывания на AWS и  функциям таких сервисов, как Lambda, API Gateway и сервисов. Также я собрал для вас краткий список предстоящий мероприятий посвященных Serverless технологиям от крупнейших облачных провайдеров.

Читать далее
Total votes 17: ↑14 and ↓3 +11
Views 652
Comments 0

Х5 Tech поможет узнать <Природу кода>

X5 Group corporate blog Python *JavaScript *Java *Development Management *

Если вы мечтаете о природе, свежем воздухе и костре в хорошей компании единомышленников, знающих все о разработке, то вам на наш уикенд-кемпинг!

Читать далее
Total votes 7: ↑6 and ↓1 +5
Views 1.1K
Comments 0

Youtube party

Lumber room
Вчера в Москве произошло замечательное событие: вечеринка посвященная открытию русской версии youtube. Я имел удовольствие на ней присутствовать.

Читать дальше →
Total votes 4: ↑2 and ↓2 0
Views 296
Comments 3

А вы позвали кого-нибудь выступить в вашем городе?

Lumber room
Через виджет на myspace странице одной из своих любимых команд я случайно выбрался на очередной веб-два-ноль сервис www.eventful.com, который предназначен для «приглашения» музыкантов в свой город, а также для подобных вещей. не знаю, насколько это действенно, но аудитория у эвентс.ком приличная, а значит, по логике и результат должен быть.
Можно влегкую импортировать все свои любимые команды с lastfm-a прямиком в список своих предпочтений на евентс.ком, и за пару кликов всех их пригласить в свой город. На мой взгляд это очень удобно, т.к. в наше время у многих на ластэфэме существуют свои аккаунты, забитые под завязку десятками интересных команд:)
К примеру, давайте все дружно пригласим Behemoth в наш горячо любимый город с выступлением!
Вот дескрипшн самого сайта:
Founded in 2004, Eventful is the leading events website which enables its community of users to discover, promote, share and create events. Eventful’s community of users select from nearly 4 million events taking place in local markets throughout the world, from concerts and sports to singles events and political rallies.
People use Eventful to track and share events with their friends and community in many ways:
* import iTunes and last.fm performer lists and keep track of which favorites are coming to town
* easily export events via feeds, calendar widgets, third-party calendar services, email alerts and much more
* keep track of what’s happening at favorite venues and see where favorite performers are appearing
* weekly email event guides are completely customized based on a user’s interests, with recommended events in their city
* add events to your personal watch list and see what events your friends and groups are watching (and going to)
* add events to Eventful for free and promote events to the entire community.
Eventful’s unique Demand service empowers users to influence where their favorite performers, candidates and other celebrities appear by creating viral grass-roots campaigns to “Demand” them in their town. Tens of thousands of musicians, comedians and political candidates use Eventful Demand to engage with millions of their fans and supporters to find out where they are in Demand. Performers are able to use Eventful Demand to make informed decisions about where to appear and can communicate with their Demanders via highly targeted email tools. Along with MySpace, YouTube and iTunes, Eventful is an essential part of the online marketing toolkit for performers, politicians and others.
Eventful.com is built upon a unique, open platform that enables partners and web applications to leverage Eventful’s data, features and functionality via the Eventful API.
Total votes 6: ↑4 and ↓2 +2
Views 206
Comments 1

Практический JS: ускоряем обработку событий

Client optimization *
Translation
Примечание: ниже перевод статьи «Event delegation without a JavaScript library», посвященной обзору методов по назначению обработчиков событий в JavaScript и их возможной оптимизации, она дополнена моими комментариями и практической частью.

Большинство статей и примеров, которые я видел в последнее время по переопределению событий, основывались на какой-либо распространенной библиотеке. Например, в своей хорошо известной статье Chris Heilmann применяет YUI-библиотеку, а в прошлом месяце Dan Webb в своей презентации на media использовал prototype.

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

читать дальше на webo.in →
Total votes 17: ↑16 and ↓1 +15
Views 1.2K
Comments 36

Практический JS: избавляемся от утечек памяти в IE

Client optimization *
Translation
Примечание: ниже находится перевод статьи Understanding and Solving Internet Explorer Leak Patterns", в которой автор рассматривает некоторые характерные случаи утечек памяти в IE и предлагает методы для их избежания и устранения. Рассмотренные проблемы не являются чем-то новым или революционным, однако, знать об их существовании должен любой уважающий себя программист клиентских интерфейсов. Мои комментарии далее курсивом.

Опубликована: июнь 2005

Развитие веб-разработок



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

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

Большим плюсом в данной ситуации будет то, что шаблоны утечек памяти могут быть легко обнаружены, если вы знаете, где их искать. Наиболее тяжелые из них, с которыми, возможно, вам довелось столкнуться, имеют подробно описанные методы устранения, которые, скорее всего, в вашем случае потребуют лишь небольшого количества дополнительной работы. Хотя некоторые страницы могут по-прежнему «падать» из-за небольших утечек, самые значительные могут быть легко удалены.

читать дальше на webo.in →
Total votes 34: ↑32 and ↓2 +30
Views 1K
Comments 13

C#-like cобытия для PHP. Reflection, closures…

PHP *
Задача — сделать на PHP эвенты а-ля C# т.е. произвольный объект может генерировать события. Другие объекты могут на эти события подписываться непосредственно у экземпляра генерирующего объекта.

Основное отличие от того что видел ранее — строгая проверка навешиваемого хука. Проверяется наличие метода, количество его аргументов, etc…
Читать дальше →
Total votes 19: ↑10 and ↓9 +1
Views 1.1K
Comments 17

Продвинутая фильтрация в Google Analytics

IT-companies
В Google Analytics добавлен продвинутый функционал фильтрации по критериям (events). Фильтровать аудиторию можно в пару нажатий мышки, и для отфильтрованной группы доступны все стандартные средства Google Analytics. Что интересно, выдумывать и создавать можно абсолютно любые события (например, фильтр по тем, кто смотрел на сайте видео, или по тем, кто щёлкал по рекламе).

Технически это работает так. Как только вы создаёте новые уникальные критерии для фильтрации (event), генерируется новый код для счётчика и система начинает регистрировать эти события.

Примеры событий и соответствующих кода можно найти здесь.

Ребята из Google засняли демо-ролик, чтобы показать, как теперь работает эта система.



via Search Marketing News
Total votes 21: ↑20 and ↓1 +19
Views 423
Comments 8

Пример использования пользовательских событий

jQuery *
Наверное много кто знает что в jQuery есть набор стандартных событий, таких как Click или MouseDown и прочие, на которые можно повесить обработчики или возбудить с помошью функций click() mousedown() и прочих. Чуть поменьше людей знают, что те-же самые действия можно сделать с помощью функций bind() и trigger():
$(document).bind('click', function(){
  alert('It works!');
});

$(document).trigger('click');


* This source code was highlighted with Source Code Highlighter.

И наверное мало кто знает, что в функциях bind() и trigger() можно использовать свои собственные события. Зачем это нужно, я и хочу рассказать на примере.
Читать дальше →
Total votes 57: ↑48 and ↓9 +39
Views 7.4K
Comments 29

LINQ to Events — декларативная работа с асинхронным интерфейсом

.NET *
Наткнулся на очень интересное расширение для LINQ позволяющее декларативно работать с асинхронным интерфейсом ( themechanicalbride.blogspot.com/2009/07/introducing-rx-linq-to-events.html ). Сейчас расширение существует как часть Silverlight Toolkit (Rx framework), но в последствии станет частью .NET 4.0 (System.Reactive.dll).

Идея в том, чтобы стереть границы между IEnumerable и IObservable интерфейсами (читай между Iterator и Observer паттернами). Асинхронные события представляются как последовательность данных, возвращаемых будто бы по yield return. А это в свою очередь позволяет работать с данной последовательностью через LINQ в функциональном, декларативном стиле.

Например, можно использовать LINQ для формулирования выражений о перетаскивании контролов:

IObservable<Event<MouseEventArgs>> draggingEvent =
    from mouseLeftDownEvent in control.GetMouseLeftDown()
    from mouseMoveEvent in control.GetMouseMove().Until(control.GetMouseLeftUp())
    select mouseMoveEvent;


Выражение гласит следующее: для каждого нажатия на левую кнопку мыши получить каждое событие перемещения мыши до тех пор, пока левая кнопка мыши не будет отжата.

Таким образом from позволяет декларативно описывать последовательность событий. В противном случае, потребовалось бы создавать конечный автомат и устанавливать флаг нажатия на левую кнопку мыши. А в обработчике перемещения мыши тестировать этот флаг и изменять поведение обработчика в зависимости от него. Использование же Rx фреймворка позволяет описать последовательность событий декларативно и не вводить дополнительные переменные.

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

Rating rating = new Rating();
IObservable<Unit> test =
   ObservableExtensions
      .DoAsync(() => TestPanel.Children.Add(rating)) // добавить контрол на панель
      .WaitFor(TestPanel.GetLayoutUpdated()) // подождать пока появится
      .DoAsync(() => rating.Value = 1.0) // установить свойство
      .WaitFor(
         rating
            .GetActualValueChanged() // ждать пока не установится
            .SkipWhile(actualValueChangedEvent => // новое значение свойства
               actualValueChangedEvent.EventArgs.NewValue != rating.Value))
      .Assert(() => rating.GetRatingItems().Last().ActualValue == 1.0); // Assert

// очистка ресурсов по завершению теста
test.Subscribe(() => TestPanel.Children.Remove(rating));


Автор оригинального поста обещает в ближайшее время осветить межпоточное взаимодействие с использованием этого фреймворка.

Области применения


  • Построение КА для визуального интерфейса пользователя.
  • Координирование событий Workflow.
  • Координирование сообщений с периферийными устройствами. В том числе с сетью (веб-службами) и с любым асинхронным IO.
  • Работа с цепочками событий.

Адаптация под WPF


silverlight.codeplex.com/SourceControl/ListDownloadableCommits.aspx
evain.net/blog/articles/2009/07/30/rebasing-system-reactive-to-the-net-clr

Похоже, ветки кода, адаптированной под WPF, пока нет, но обещают добавить в .NET 4.0. Однако уже сейчас можно взять сырцы и поковырять вручную.

Bindable LINQ


Развитие идеи — осуществление биндинга к декларативно описанным цепочкам событий. При изменении зависимого свойства, GUI перерисовывается чтобы отразить изменения. В Rx этого сейчас нет. Однако подобная связь с INotifyPropertyChanged есть в следующих проектах (сами проекты пока не смотрел):
Total votes 47: ↑32 and ↓15 +17
Views 1.1K
Comments 6

Еще раз о делегирование или как правильно использовать свои события

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

Для начала вспомним, что же такое делегирование на следующем примере:

<div id=«container»>
  <a href="" class=«edit»>Edit</a>
  <a href="" class=«delete»>Delete</a>
</div>

<script type=«text/javascript»>
  $('#container').click(function(event) {
    var elem = $(event.target);

    if (elem.hasClass('edit')) {
      console.info('Clicked to edit link');
    }
    else if (elem.hasClass('delete')) {
      console.info('Clicked to delete link');
    }

    return false;
  });
</script>

Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Views 17K
Comments 28

Решаем проблему вызова события onresize в ИЕ пока не произошло событие onload

Lumber room
В Internet Explorer есть странная вещь (одна из многих), это вызов события onresize тогда и только тогда, когда документ будет полностью загружен. Данная проблема есть в IE 6, 7, 8. Возникло желание побороть сие безобразие и сделать это довольно прозрачно, дабы можно было вешать обработчики не задумываясь что вызваться они могут гораздо позже, чем ожидалось.

Использую jQuery и его внутренний механизм специальных событий, дабы на время, пока документ загружается, можно было использовать альтернативу onresize, а после все вернуть на свои места.

Дабы не описывать механизм специальных событий приложу ссылку

а теперь собственно код:
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views 231
Comments 0

Ruby and Rails Barcamp 3 состоится в Киеве 20 марта

Ruby *
Приглашаем Вас принять участие в третьем Ruby and Rails Barcamp, который состоится в Киеве 20 марта.

Чтобы улучшить качество программы было решено ввести процедуру голосования за доклады.
Теперь чтобы стать докладчиком баркемпа необходимо заполнить небольшую анкету до 28 февраля.
Затем список заявок будет выставлен на открытое голосование, и в программу баркемпа войдут те доклады, которые будут иметь большее количество голосов.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Views 575
Comments 11

Functions are almost objects

JavaScript *
I was impressed! Вроде бы все понятно и давно известно, но в голову не приходило.

	var store = {
		id: 1,
		cache: {},
		add: function( fn ) {
			if ( !fn.uuid ) {
				fn.uuid = store.id++;
				return !!(store.cache[fn.uuid] = fn);
			}
		}
	};

	function ninja(){}

	assert( store.add( ninja ), "Function was safely added." );
	assert( !store.add( ninja ), "But it was only added once." );



Взято из Secrets of JavaScript ninja by John Resig
Total votes 16: ↑6 and ↓10 -4
Views 702
Comments 14

Как организовать мероприятие

Self Promo
Привет всем!
Занялся я вот таким вопросом — «как организовать своё мероприятие» и проведя много времени в интернетах, так и не нашел толкового ответа на данный вопрос. Конечно же я увидел ответы на некоторые вопросы, но не на все. Поэтому прошу тех людей, которые уже организовывали event'ы помочь мне с этим.

Что хотелось бы узнать:
  • Место проведения. Вроде понятно, что надо исходить из численности и т.д., а так же что требуется, но всегда есть подводные камни.
  • Если нет проектора, но он нужен — не покупать же его?! Есть ли возможность арендовать его, как другую дополнительную технику.
  • Поиск докладчиков. работу докладчика надо оплачивать? Я понимаю, что это мега влиятельное лицо, то надо, а что требуется для людей, которые просто хотят поделиться своим опытом?
  • Поиск спонсоров. По тематике встречи есть очень много продуктов, которые грех не продвинуть ведущим компаниям от Microsoft до Ubuntu. Как с ними договариваться? Какие примерные условия (хотя бы на примере Microsoft). Что требуется и по каким контактам с ними связываться.
  • Ну и дополнительные рекомендации тоже хотелось бы услышать.


Так же буду рад услышать любые рекомендации по этому вопросу.

P.S. Так как пишу в блог IT-event, то думаю понятно, что мероприятие на IT тематику.
Total votes 7: ↑5 and ↓2 +3
Views 536
Comments 10

Chrome / Chromium и клавиатура

JavaScript *
В замечательном браузере Chromium (я думаю, это так же относится и к Google Chrome) события клавиатуры, которые можно обрабатывать JavaScript'ом, почему-то ведут себя очень странным, как по мне, образом. Я столкнулся с двумя интересными его проявлениями:

1. Событие onkeyup генерируется сразу же после события onkeydown, при этом при «зажатии» клавиши эта пара событий начинает генерироваться с завидной частотой в 25 миллисекунд, однако с некоторой паузой в начале.
2. Если после нажатия и удержания одной клавиши нажать следующую — происходит пауза ~500мс, и затем пара onkeydown/onkeyup уже генерируется для новой клавиши.

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

Читать дальше →
Total votes 11: ↑8 and ↓3 +5
Views 2K
Comments 3

OpenTask — простой сервис задач

Self Promo
Приветствую всех!

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

Для чего это сделано — наверняка все сталкивались с ситуацией, когда нужно коллективно что-либо обсудить. Как это сделать?
Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Views 1.4K
Comments 19

Еще один способ управлять event listener-ами

Adobe Flash
События редко происходят по одному как обычно пишут в примерах. В жизни мы имеем дело с последовательностями событий (например соединение, авторизация, звонок) и на каждом этапе могут произойти еще другие события (отмена звонка, разрыв соединения).

Попробуй мы словами проговорить, что должно происходить, можно услышать много «если мы получили событие то…, иначе если кликнули сюда то, а если таймаут то». Здесь я описываю свою попытку программировать события в стиле if-else.
Читать дальше →
Total votes 9: ↑3 and ↓6 -3
Views 1.2K
Comments 0

Программная генерация событий DOM 2 Events

JavaScript *
Sandbox
image

Вступление


Здравствуйте, Хабрачеловеки.

В этой статье я хочу рассказать сообществу о такой полезной штуке, как DOM Events. Все, кто хоть как то связан с Javascript, знают, что в этом языке события и их обработка являются одним из важнейших и часто используемых свойств, но не многие знают, как эти события генерировать программно. Собственно, этому и посвящена статья: в ней рассказано, что это, зачем нужно, и как это использовать. О listener'ах речи идти не будет, хоть эта тема весьма тесто связана с рассматриваемой.

Читать дальше →
Total votes 73: ↑71 and ↓2 +69
Views 39K
Comments 26