Subscribe to RSS feed

Немного JavaScript без библиотек и комментариев

var addHandler = function(o, e, h, u)
{
  if (typeof o.addEventListener != 'undefined')
    o.addEventListener(e, h, u || false);
  else if (typeof o.attachEvent != 'undefined')
    o.attachEvent('on' + e, h);
}

var removeHandler = function(o, e, h, u)
{
  if (typeof o.removeEventListener != 'undefined')
    o.removeEventListener(e, h, u || false);
  else if (typeof o.detachEvent != 'undefined')
    o.detachEvent('on' + e, h);
}

var getStyle = function(e, p)
{
  if (e.currentStyle) return e.currentStyle[p];
  if (window.getComputedStyle)  return document.defaultView.getComputedStyle(e,null).getPropertyValue(p.replace(/([A-Z]|^ms)/g, "-$1").toLowerCase());
}

var inView = function(el)
{
  var w=window, d=w.document, r=el.getBoundingClientRect(),
      i=[w.innerWidth || d.body.clientWidth || d.documentElement.clientWidth, 
         w.innerHeight || d.body.clientHeight || d.documentElement.clientHeight];

  if (r.bottom<0 || r.right<0 || r.left>i[0] || r.top>i[1]) return false;

  var t=[r.left<0?0:r.left, r.right>i[0]?i[0]-1:r.right, 
         r.top<0?0:r.top, r.bottom>i[1]?i[1]-1:r.bottom];

  return d.elementFromPoint( ~~(t[0]+(t[1]-t[0])/2), ~~(t[2]+(t[3]-t[2])/2) );
}

var haveParent = function(o, p)
{
  if (o && p) while (o=o.parentNode) if (o==p) return true;
  return false;
}


var wait = (function(){
  var t = 0;
  return function(callback, ms){
    clearTimeout (t);
    t = setTimeout(callback, typeof ms!='undefined'?ms:500);
  };
})();

var lang={
  enumerables:{
    'hours':['часов','час', 'часа'],
    'minutes':['минут', 'минуту', 'минуты'],
    'seconds':['секунд','секунда','секунды'],
    'days':['дней','день','дня'],
    'years':['лет','год','года'],
    'males':['мужчин','мужчина','мужчины'],
    'females':['девушек','девушка','девушки'],
    'people':['человек','человек','человека'],
    'photos':['фотографий','фотография','фотографии']
  },

  genders:{
    'man':['','него','неё'],
    'person':['человек','мужчина','женщина'],
    'competitor':['человека','участника','участницу'],
    'was':['','был','была'],
    'voted':['','проголосовал','проголосовала'],
    'turn_on':['','включил','включила'],
    'turn_off':['','выключил','выключила'],
    'open':['','открыл','открыла'],
    'close':['','закрыл','закрыла'],
    'add':['','добавил','добавила'],
    'place':['','разместил','разместила'],
    'ask': ['','попросил','попросила'],
    'leave': ['','оставил','оставила'],
    'invite': ['','пригласил','пригласила'],
    'give':['','подарил','подарила']
  },

  num: function(n, w)
  {
    var i=(n>9?n%10:n);
    return n+' '+lang.enumerables[w][(i==1 && n!=11)?1:(( ('234'.indexOf(i)>-1)&&(n<11 || n>20) )?2:0)];
  },

  gender: function(g, w)
  {
    var s = lang.genders[w];
    if(!s) return w;
    if(!g) return s[0]||s[1];
    return s[g=='f'?2:1];
  }
 
}

Не открываются русские имена файлов в Opera? Невозможно открыть файл и название файла закорючками? Есть решение!

Запустите regedit и внесите следующие изменения
[HKEY_CLASSES_ROOT\Opera.HTML\shell\open\ddeexec\Application] - Opera
[HKEY_CLASSES_ROOT\Opera.HTML\shell\open\ddeexec\Topic] - пусто
[HKEY_CLASSES_ROOT\Opera.HTML\shell\open\command] - Без "%1"
[HKEY_CLASSES_ROOT\Opera.HTML\shell\open\ddeexec] - "%1"

Чтобы запустить regedit нажмите Win-R, введите regedit, нажмите Enter, далее найдите указанные выше ключи и исправьте значения

Fwd: http://operafan.net/forum/index.php?topic=12118.15

Ненасилие

В: Я вижу, что вы сидите на шкуре антилопы. Как это согласуется с ненасилием?

М: Всю свою жизнь я делал сигареты, помогая людям гробить их здоровье. А рядом с моей дверью власти устроили публичную уборную, гробя здоровье мне. В этом мире насилия как можно избежать насилия?

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

М: Может быть, потому что в старые времена не было пластика, а шкура была наилучшим средством уберечься от сырости. Ревматизм не радость, даже для святого! Так возникла традиция использовать для длительных медитаций шкуру животного. Как кожу для барабана в храме, так и шкуру антилопы для йога. Мы едва ли замечаем это.

В: Но животных убивают.

М: Я никогда не слышал, чтобы йог убивал тигра из за шкуры. Охотники – не йоги, а йоги – не охотники.

В: Разве не следует отказаться от сидения на шкуре в качестве неодобрения?

М: Что за мысль! Я не одобряю всю вселенную, почему только шкуру?

В: А что не так со вселенной?

М: Забыть своё Я – величайшее бедствие, все неприятности происходят от этого. Если позаботиться о самом главном, менее главное само позаботится о себе. Вы не занимаетесь уборкой в тёмной комнате. Сначала вы открываете окно. Если впустить свет, всё станет легко. Так что давайте подождём с исправлением других, пока не увидим себя такими, какие мы есть, и не исправимся. Нет нужды ходить кругами, без конца задавая одни и те же вопросы. Найдите себя, и всё встанет на своё место.

Элементы старого FriendFeed с помощью userjs

,

English ppl press here

Мне нравился FriendFeed, до его изменения к текущему виду.
Новый интерфейс вызвал некоторое замешательство и были предложения воспользоваться его API, чтобы сделать "как было". Совсем "как было" я не помню, делать новый-старый сервис как-то не очень хочется (время), а вот примерный вид можно вернуть с помощью простого userjs, который я сегодня сделал.

Read more...

Пользуетесь видеомагнитофоном на corbina.tv? Воспользуйтесь userjs скриптом, улучшающим интерфейс и взаимодействие.

Мы любим смотреть телевизор. Иногда, нет возможности посмотреть ту или иную передачу, которая уже прошла. Поэтому, мы уже давно пользуемся сервисом "Видеомагнитофон" на сайте http://corbina.tv

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

Так у нас выглядит страница, с прошедшими и записанными другими людьми передачами:

Чтобы понять отличия, сравните с оригиналом wink

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

Для того чтобы воспользоваться userjs скриптом, сохраните этот файл в папку, например corbina.tv
corbina.tv.js

Затем, перейдите на страницу видеомагнитофона http://www.corbina.tv/video_recorder/ нажмите F12, выберите "Настройки для сайта", выберите вкладку "Скрипты", в поле "Папка пользовательских файлов JavaScript", укажите папку, где сохранили этот скрипт, нажмите "Ок", обновите страницу. Ура, всё работает (конечно же, если вы авторизованы)

Спасибо smile

Future Media Player

Достаточно продолжительное время, в интернете, для показа изображеней (реже видео) используют технику, называемую lightbox.
В MacOS некоторое подобие lightbox есть, а для Windows пока не нашёл. Поэтому напишу, как некая программа, под названием, например, mediabox, могла-бы себя вести...

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

Если в папке с открытым изображением или видео, есть другие медиа файлы, к ним можно перейти нажав стрелку влево или вправо на клавиатуре. При наведении мыши на открытый mediabox, появляются стрелки слева и справа, на которые можно нажать мышью. При переходе к следующему или предыдущему медиа файлу, он выделяется в проводнике (если программа была запущена из проводника).

Для видео файлов присутствует скрываемая панель: пуск, стоп и т.д. (см. Идеальный видео плееер для веба)

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

Пробел, переход к следующему файлу, а при показе видео - пауза.

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

В общем, Microsoft Surface уже показал, как может выглядеть просмотр изображений и видео, остаётся ждать софта.

Read more...

Detect the sites your visitors use

Download:
visited.js

Description:

Pass url to check is it was visited ("http://" part can be ommited).
Url can be with "https://", "ftp://" or any other protocols.
If url not visited i'll try to check with and without "www.".

Bunch of urls can be checked, pass them as array.
In return, keys is domains (without "http:", "www." and path).
Only one key per domain was returned.

Examples:

1. Check is "twitter.com/home" was visited by user.
if ( visited('twitter.com/home') ) alert('yes');

2. Check bunch of urls and return per domain visited.
var v = visited(['twitter.com/home', 
                 'www.facebook.com/home.php', 
                 'www.facebook.com']);
if ( v['facebook.com'] && v['twitter.com'] ) alert('visited both');

3. Check bunch of urls and return true or false for all of them.
if (visited('twitter.com/home', 'www.facebook.com/home.php')) alert('both');

Устанавливаем первоначальные связи

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

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

Read more...

Необходимый внутренний функционал социальных сетей. Регистрация. Авторизация. Способы связи.

Минимальный набор функционала, который необходим любой социальной сети, это OpenID и RSS.

OpenID - Открытая децентрализованная система единого входа, которая позволяет использовать один логин и пароль, на всех сайтах, поддерживающих эту технологию.

Atom или RSS - форматы предназначенные для публикации краткого описания новой информации (анонсов, изменений в блогах, новых комментариев), которое может быть собрано и представлено пользователю в удобном для него виде специальными программами-агрегаторами. На сегодня, поддержка RSS встроена в браузеры.

Read more...

Сострадание и индивидуальность

Далай-лама XIV

Цель жизни


За всем нашим опытом, сознательно или бессознательно, стоит один великий вопрос — какова цель жизни? Я обдумывал этот вопрос, и хотел бы поделиться своими мыслями в надежде, что они принесут непосредственную, практическую пользу всем, кто их прочитает.
Я считаю, что цель жизни — быть счастливым. С момента рождения каждое человеческое существо хочет счастья и не хочет страдания. Ни социальные условия, ни образование, ни идеология не могут на это повлиять. Из самой основы нашего существа мы просто желаем удовлетворённости. Я не знаю, есть ли у вселенной с её бесчисленными галактиками, звёздами и планетами более глубокий смысл, но по меньшей мере ясно, что мы, люди, живущие на этой Земле, сталкиваемся с задачей сделать свою жизнь счастливой. А потому важно выяснить, как же достичь большего счастья.

Read more...

WCAG-2.0 - вторая версия стандарта доступности содержимого

Оригинал: http://webew.ru/articles/2029.webew
Автор перевода: Григорий Рубцов [rgbeast]
9 января 2009, 17:12

Вторая версия стандарта доступности содержимого WCAG-2.0 стала рекомендаций консорциума w3c. Стандарт заменяет собой версию 1.1, о которой мы писали в прошедшем году. Постараемся описать основные требования нового стандарта.

В новом стандарте 12 гайдланов против 14 в предыдущей версии. Гайдлайны нового стандарта разбиты на 4 группы, соответствующие четырем базовым принципам, закрепленным в стандарте:

  1. Воспринимаемость. Информация и компоненты интерфейса должны быть представленны пользователю в тех формах, которые он способен воспринимать.
  2. Осуществимость. Пользователь должен иметь возможность воспользоваться компоненты интерфейса и навигацией.
  3. Ясность. Информация и работа пользовательского интерфейса должны быть понятными.
  4. Совместимость. Содержимое должно быть доступно через разные браузеры, включая специальные браузеры для людей с ограниченными возможностями.

Как и в предыдущей версии, стандарт предусматривает три уровня совместимости:

  • Уровень A: выполнены все требования уровня A или предоставлена альтернативная версия, отвечающая этим требованиям.
  • Уровень "две A": выполнены все требования уровней A и AA или предоставлена альтернативная версия, отвечающая этим требованиям.
  • Уровень "три A": выполнены все требования уровней A, АА и АAA или предоставлена альтернативная версия, отвечающая этим требованиям.

Read more...

Opera Web Developer 2.3 (menu)

Opera Web Developer(2.3).ini

What is it?
Usefull menu for web developers.
outline elements, resize window, eval js, partial source viewer, ruller, change all fonts to other font/size, get all stylesheets, get all images from a page...

How to install this menu?

Choose menu item "Help"-"About" and find "Opera directory"
Go to this folder and than go to the folder "menu"
Save attached file to this folder
Go to the "Tools"-"Preferences"
Go to the "Toolbars"
Choose "Opera Web Developer (2.3)" in the "Menu setup" and click [ Ok ]

So new menu "OWD" appear near item "Help"

Информационная архитектура - Планируем сайт

Информационная архитектура занимается принципами систематизации информации и навигации по ней с целью помочь людям более успешно находить и обрабатывать нужные им данные. Louis Rosenfeld

Введение

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

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

Read more...

Did you know about "Pan is Scroll"?

I dont know why i'm not hear about "Pan is scroll" before.
So, i have two touchscreen devices, Toshiba R15(XP) and Samsung Q1 Ultra(Vista).
Working much with Mindmeister i found the dragging is a cool smile
Vista have a touch flicks or gestures for some action like scroll down, scroll up (copy, cut, delete and paste it customizible) and using Q1 for reading i use them a lot.

So, now we all can use dragging of page (like for PDF view) in Opera! Its great!

Upd: Go to "Appearance > Buttons", select "Browser: view" and drag "Text selection" wherever you want.
Default functionality not easy, so it can be turned on temporarily by holding Ctrl-Alt or in opera:config#Scroll Is Pan. After that you can drag page... and yes you can't select text. Lucky, it can be turned on/off by custom button. To install, click on link, than go to customizing, and you can find this button in "Button"-"My Buttons" section. So drag this button wherever you want.

The Wii Remote API

The Wii Remote API
By Mark 'Tarquin' Wilton-Jones · 31 Jul, 2007
Published in: Wii
Contents
  1. Introduction
  2. Motion sensitivity
  3. Polling the status of a remote
  4. The KpadStatus object
    1. Available KpadStatus properties
  5. Examples
    1. Obtaining the roll of the third Wii remote in degrees
    2. Checking what buttons are pressed on the second remote
    3. Reading all of the values for all remotes
    4. Finding enabled remotes
    5. A simple game using the Wii Remote

Read more...

Windows Media Player plugin (if you have troubles with application/x-mplayer2)

As soon as many users have troubles trying to use windows media player in Opera, here is attached file with all neccessary files:
wmplayer.opera.plugin.zip

Extract all files to Opera plugin directory (usualy C:\Program Files\Opera\program\plugins\)
Restart Opera
Enjoy!

P.S. Don't work? Try to use Opera Knowledge Base solution Using the Windows Media Player plug-in with Opera

JavaScript Beautify on JavaScript translated

I found nice post on Ajaxian:
http://ajaxian.com/archives/javascript-beautify We often talk about the latest scheme for compressing and minimizing our JavaScript. The JavaScript Beautify script aims to do the opposite.


So, i translate php to javascript, here you are: beautify.js

Also you can look how's it's work on example page: beautify.html

P.S. based on php version 2008-02-21 18:53:49

Opera Web Developer 2.1 (menu) / best before 2.3

Opera Web Developer(2.1).ini

What is it?


Usefull menu for web developers.
DOM tree, eval js, partial source viewer, ruller, outline elements, resize window, change all fonts to other font/size, get all stylesheets, get all images from a page...

How to install this menu?


Choose Help-About and find "Opera directory"
Go to this folder and than go to the folder "menu"
Save attached file to this folder
Go to "Tools-Preferences"
Go to "Toolbars"
Select "Opera Web Developer (2.1)" in the "Menu setup" and click [ Ok ]

So new menu "OWD" appear near item "Help"

Good and bad of internet

...is a possibility of deleting (blog entries, pages, sites) and sometimes i like it ;-)
May 2013
M T W T F S S
April 2013June 2013
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31