• SunCalc — солнечный калькулятор
    0
    Я просто не знал на момент создания сервиса о таком понятии, как солнечное время. :) Но это можно прикрутить, конечно.
  • SunCalc — солнечный калькулятор
    0
    да, я его видел :) хотел сделать что-то более симпатичное.
  • SunCalc — солнечный калькулятор
    0
    Значение есть, просто я забыл, что его тоже стоило бы показать на страничке. :) Исправлю.
  • SunCalc — солнечный калькулятор
    0
    Немного недружелюбный ресурс… А угол над горизонтом легко виден по графику на карте. Хотя числовые значения наверное тоже нужно добавить, но они не так уж полезны, если есть примерное представление.
  • SunCalc — солнечный калькулятор
    0
    Всё, перенёс на другой сервер, теперь смотрите :)
  • SunCalc — солнечный калькулятор
    0
    Гугл стрит вью на флэше сделан и у него, насколько я знаю, нет API для рисования в его пространстве, так что вряд ли.
  • SunCalc — солнечный калькулятор
    –1
    очень сожалею, не ожидал такого эффекта :(
  • SunCalc — солнечный калькулятор
    +1
    а зачем localStorage, если хранить нужно одну маленькую строку?
  • SunCalc — солнечный калькулятор
    0
    дело не в доработке, просто хостинг лёг :( поэтому или вообще не грузится, или часть скриптов :(
  • SunCalc — солнечный калькулятор
    0
    в шоке просто, не ожидал что такая несложная статика завалится, не понимаю, почему… надеюсь, исправится к утру, в это время поищу альтернативный вариант…
  • Да это же Просто Плеер какой-то!
    0
    Что-то уже минуты 3 ищет мой запрос (Daylight Dies), завис видимо…
  • В 2010-м году у Wordpress появится новая Default тема. Встречаем!
    +1
    А меня старая дефолтная тема всегда страшно раздражала — даже не знаю, почему. Новая приятная.
  • ЧТО смотреть, ГДЕ скачать, КОГДА выйдет DVDRip?
    0
    Хотя насчёт IMDB ошибся, по кейвордам можно: www.imdb.com/Sections/Keywords/
    Но всё равно :)
  • ЧТО смотреть, ГДЕ скачать, КОГДА выйдет DVDRip?
    0
    Сервис замечательный, спасибо большое! А то намучался в поиске… В IMDB по жанрам только первых 50 показывает, в Кинопоиске вообще только 20, сортировать результаты поиска по рейтингу в обоих невозможно — приходилось шерстить разные каталоги вручную… А здесь с этим всё отлично :)
  • Пара слов про Koss Porta Pro
    +1
    >в метро гудение

    кстати говоря нефиг слушать в метро наушники без звукоизоляции :)
  • Пара слов про Koss Porta Pro
    0
    Когда начинают хрипеть, попробуйте подуть на динамик — проходит. :) Просто пыль внутрь забивается судя по всему.
  • Пара слов про Koss Porta Pro
    +1
    Прослужили мне 3 года, после этого купил такие же. :) Если эти сломаются, куплю новые.
    Конструкция, наоборот, очень привлекает, показала себя очень надежной; бас слишком выделен, да, но в целом звучание очень нравится — намного лучше, чем многие наушники того же класса. Для прогулок налегке — самое то. А дома использую Sennheiser HD 280 PRO.
  • Заметки начинающего плюркера
    0
    Факт конечно вопиющий, но Плюрку всё-таки несказанно повезло. :) После такого скандала юзеров у них существенно прибавиться.
  • Запасаемся на зиму
    0
    Харпер Ли «Убить пересмешника...»
    Совершенно изумительная книга про Америку 30-х, в которой повествование идёт от лица маленькой девочки, ставшей очевидицей «взрослых» событий. Добрая, тёплая, трогательная и увлекательная. Классика.
  • IT-мероприятия конца осени в Минске
    0
    Знали, чем привлечь к статье :) симпатяжка :)
  • 10 недорогих способов повысить лояльность работников в стартапе
    +3
    Заминусовал. За утверждение «металлисты и неформалы — подмножество плохо одетых, небритых и немытых людей». Это миф. Одно дело — музыкальные предпочтения, другое — как человек следит за собой, — эти понятия между собой не коррелируют.
  • Удивительный Айзек
    0
    Как говорится, всё новое — хорошо забытое старое. Практически все литературные сюжеты (как и композиции в музыке) повторяют в каком-то виде то, что было до этого, но это не мешает некоторым их них лежать в основе по-настоящему великих произведений.
  • Удивительный Айзек
    0
    А я недавно с таким же изумлением наткнулся на книгу Азимова «Популярная анатомия». :) Купил не раздумывая, хоть и никогда не интересовался подобным — теперь на очереди на прочтение. :)
  • Ваш провайдер дает честные безлимитные тарифы?
    0
    Киев, Akson45. 14 мбит. Скорость отвечает заявленной, в целом никаких с ними проблем, если что — саппорт быстро реагирует. Очень доволен.
  • CloudMade официально запустился
    0
    Скоро будет мегарелиз :) mapzen.cloudmade.com/
  • Oper'ные приколы с first-line
    +2
    А что будет, если добавить white-space: nowrap?
  • Повышение качества javascript кода. JSLint
    0
    Для меня JSLint тоже средство совершенно незаменимое, т.к. сам разрабатываю довольно непростой фреймворк (для карт). Особенно критичны две вещи: точки с запятыми (чтобы код не ломался после сборки различного рода компрессорами — сам пользуюсь рубишным packr, работающим по алгоритму Крокфорда) и отсутствие глобальных переменных (узкоспециализированный фреймворк не может себе такого позволить, чтобы избежать конфликтов с другими).
  • Умножитель воздуха
    0
    ты же напиши потом, работает или нет :)
  • Советы начинающему композитору
    +1
    Хочется добавить к вышесказанному, что самое глупое занятие у композитора — ждать вдохновения. По многолетнему опыту меня и многих других людей, занимающихся творчеством, вдохновение приходит во время процесса, а не перед ним. Так что заниматься нужно регулярно, не откладывать на моменты провидения, даже если сразу не всё получается.

    Кстати, мы (украинская группа Обійми Дощу) недавно выпустили дебютный альбом — это грустный, по-осеннему лиричный прогрессив рок с элементами неоклассики (много живых струнных), можно скачать с сайта бесплатно. Можете послушать как пример того, к чему можно прийти, не имея музыкального образования — только энтузиазм и желание трудиться, не сдаваясь.
  • Советы начинающему композитору
    0
    Нет, это действительно это дело привычки — тем, кто привык писать музыку в гитар про, в кубе это делать страшно неудобно.
  • Используем паттерн Наблюдатель(Observer) для создания индикатора выполнения процесса на Javascript
    0
    Раз мы что-то удалили — оно должно взять, да удалиться и нигде больше не учитываться _при последующих событиях_, а не _предыдущих_. :) По-моему вполне логично.

    А в твоём варианте действительно очень нужна оптимизация. :) А то тут получается целых три (!) вложенных друг в друга цикла (while, один for и другой в indexOf), при чём еще с кучей промежуточных вызовов функций, что вместе очень сильно должно тормозить по сравнению с одним циклом с прямыми обращениями к массиву без вызовов, как у меня.
  • Используем паттерн Наблюдатель(Observer) для создания индикатора выполнения процесса на Javascript
    0
    Я об этом думал. :) На самом деле то, что листенер файрится даже после удаления, является ожидаемым поведением, т.к. листенер по определению должен исполниться сразу после файринга ивента только в том случае, если он на него подписан. Т.е. добавление/удаление листенера должно произойти до файра, чтобы он сработал/не сработал, а в этом случае оно идёт уже после файра. Плюс, природа ивентов в большинстве систем подразумевает, что изменение порядка выполнения листенеров в один момент времени не должно менять поведение системы.

    А без удаления может быть такая ситуация: один листенер добавляет другой, который в свою очередь добавляет третий и т.д. Например, когда каждый клик по объекту определяет, как он должен будет себя вести при следующем клике (у меня такое было). В таком случае вместо ожидаемого поведения происходит бесконечный цикл и скрипт вешается.
  • Используем паттерн Наблюдатель(Observer) для создания индикатора выполнения процесса на Javascript
    +1
    Кстати, лучше в fireEvent сначала собирать все listener'ы в отдельный массив, а потом уже их в цикле выполнять (как у меня в примере). А то до того, как это сделал, сталкивался со разными багами в случае, если add/removeListener выполняется внутри другого listener'а.

    Например, первый листенер сам себя удаляет, на следующей итерации цикла выполняется 2-й листенер в массиве listeners[type] (который раньше был 3-м), а предыдущий из-за удаления первого пропускается совсем.
  • Используем паттерн Наблюдатель(Observer) для создания индикатора выполнения процесса на Javascript
    0
    Действительно, забыл о нём — спасибо. :)
  • Используем паттерн Наблюдатель(Observer) для создания индикатора выполнения процесса на Javascript
    0
    Вообще практически все джаваскриптовые фреймворки способствуют применению такой функциональности. :) Custom events есть и применяются в jQuery, Prototype, YUI, Mootools, dojo, etc.
  • Используем паттерн Наблюдатель(Observer) для создания индикатора выполнения процесса на Javascript
    +1
    А вот моя реализация (из фреймворка для отображения карт):

    CM.Event = {
    	addListener: function(obj, type, fn, context) {
    		obj._events = obj._events || {};
    		obj._events[type] = obj._events[type] || [];
    		obj._events[type].push({
    			action: fn,
    			context: context
    		});
    	},
    	
    	hasListeners: function(obj, type) {
    		return !!(obj._events && obj._events[type]);
    	},
    	
    	removeListener: function(obj, type, fn, context) {
    		if (!this.hasListeners(obj, type)) { return; }
    		
    		for (var i = 0; i < obj._events[type].length; i++) {
    			if ((obj._events[type][i].action == fn) && 
    					(!context || (obj._events[type][i].context == context))) {
    				obj._events[type] = obj._events[type].slice(0, i).concat(obj._events[type].slice(i + 1));
    				return;
    			}
    		}
    	}, 
    	
    	fire: function(obj, type) {
    		if (!this.hasListeners(obj, type)) { return; }
    		
    		var args = Array.prototype.slice.call(arguments, 2),
    			listeners = [], i;
    		
    		for (i = 0; i < obj._events[type].length; i++) {
    			listeners[i] = obj._events[type][i];
    		}
    		
    		for (i = 0; i < listeners.length; i++) {
    			listeners[i].action.apply(listeners[i].context || obj, args);
    		}
    	}
    };


    Использовать так:

    function handlerFn(arg1, arg2, ...) { ... }
    ...
    CM.Event.addListener(exampleObj, 'exampleevent', handlerFn, this);
    ...
    CM.Event.fire(exampleObj, 'exampleevent', arg1, arg2, ...);
    
  • Ancient Domains of Mystery
    0
    Можно с помощью Dropbox играть и на работе и дома, не пользуясь онлайн-версиями. (Хотя играть на работе — удовольствие не для каждого :)
  • Ancient Domains of Mystery
    0
    Нашёл всё-таки решение, которое работает и вроде бы удобно — Ctrl-вниз для SW, Alt-вниз для SE, для верха соответственно.
  • Ancient Domains of Mystery
    0
    Поменял под виндой файл adom.kbd — не подхватывает почему-то, кейбиндинги старые остаются. :(
  • Ancient Domains of Mystery
    0
    Это одна из моих самых любимых игр! Играл в нее с перерывами много лет, но так и не смог пройти (после того, как отказался жульничать с сейвами). :) Максимальным достижением был, кажется, хай элф прист где-то 25-30 уровня. Вот вы сейчас напомнили — пожалуй, попробую опять.