LINUX.ORG.RU

Избранные сообщения pi11

BOOTSTRA.386 — Годная тема для бутстрапа

Форум — Talks

Репа

Демо

По мне так годно. Не хватает какого нибудь ненужного js который сделает нормальную навигацию клавиатурой. Ничего, dwb/vimperator ftw.

Если я все правильно понимаю, то можно запилить правила для браузера которые будут подставлять эту тему на bootstrap2 сайтах, и если у них там дефолтный бутстрап, то работать оно должно вполне неплохо. Что скажут специалисты по юзерстилям коих на ЛОРе хватает?

Для Ъ: Тема заделывает бутстрап v2 под интерфейс восьмидесятых

 , ,

zinfandel
()

ii: История одной сети, или революция, которую никто не заметил

Форум — General

В начале было фидо

Фидошники очень любят повздыхать о старых временах. Но и причина у этого есть - тогда в сети действительно была организация, тогда, чтобы можно было что-то найти, нужно было только найти эхоконференцию, и в ней найдёшь всех единомышленников по этой теме. Централизация, все умы стекаются. А в интернете, наоборот, каждый суслик своему сайту и агроном своему форуму с 50 разделами. Хочешь найти лучшее решение? Обойди все тематические форумы, хотя бы популярные. Умри, но обойди. Каждый форум - кольцо, которое хочет рулить всеми остальными, и никто не хочет отдавать ни толики своего суверенитета.

Если гора не идёт к Магомету, значит вера без дел мертва. Надо сделать что-то, делающее обмен возможным.

И для этого нужна была какая-то основа. Для начала, просто для обмена трафиком - как фидо, но только проще, сильно проще. Чтобы можно было делать либо плюгины, либо внешние гейты для вордпресов, симплмашинов и прочей интернет-ереси - то есть, от сайтов потребуется либо минимальное вмешательство, либо никакого. Я назвал её ii, хотя чувство прекрасного просило назвать Настей или Катей.

Реализация

Мысль не давала мне покоя, но где-то в фоне, никогда на этом не концентрируясь. Несколько лет, сама по себе, не спрашивая меня, она что-то подмечала, что-то проверяла, что-то отбрасывала, и в итоге, в один прекрасный вечер говорит мне - остался только один вопрос, компромисс между длиной хэша и его красивучестью. Небольшой опрос на эту тему помог выбрать оптимальную длину. И... завертелось. Эталонная реализация, включая сервер и txt-клиент была создана минут за 20, и в итоге там ничего не поменялось, каноны закрепились. Как было всё упрощено, так есть, и так будет всегда.

Главные компромиссы, которые упростили сеть, и которые позволили сделать транзитную ноду на php (спасающую от многих проблем и добавляющую распределённости: просто добавь бесплатный хостинг), уместить в байт 300 кода:

  • Номера имеют только серверные сообщения: Клиентские сообщения - это вообще не сообщения, пока сервер их не завизирует. Не нужны строгие схемы взаимодействия клиента с сервером. Да, кто-то может подумать, что гонять пользовательское сообщение для того, чтобы получить его обратно - это излишняя трата 500 байт в сети, но... это помогает и сразу обнаружить проблемы (если оно не вернётся), и не ломает общий случай частным.
  • Синхронизация, основанная на сравнении: Некоторые пользователи давали советы по различным детекциям, по выборочной сортировке. Да, сейчас проблемы переполнения решаются организационно, а не технически (и это, на мой взгляд, правильно, роботы-детекторы нужного от ненужного так несовершенны), но они решаются. А синхронизация при этом остаётся простой, как три рубля - вот список, и вот список, найди всё то, чего нет, и забери. Из нужных конференций... а ненужные тебя не касаются.
  • Первые два пункта позволили избежать двухсторонней синхронизации: Синхронизация всегда односторонняя. При этом в текущих условиях все успешно обмениваются со всеми, станции со станцями, станции с пойнтами. Боевая тревога по поднятию резервных нод и выключению моей станции пережита тоже успешно. Ибо не стоит верить, что технология может решить организационные вопросы, проще решать эти вопросы людям, а технология пусть решает те задачи, где ничего решать не надо, знай да перекладывай файлики.
  • Обязательные постфиксы для конференций: Во-первых, сразу видно, что это конференция (как по забор.точка.ру сразу понятно, что это интернет-сайт). Во-вторых, позволяют не делать раздутых конференций а просто переезжать в другие. Сейчас общеприняты постфиксы .YY (год) или .YYMM (год-месяц)
  • Простые решения: Один человек ушёл из проекта, обвинив нас в том, что мы многое переизобретаем. Но то, что есть на python с его огромной библиотекой, может не быть на kolibrios с его ассемблерными перевозками. Реализация, которую просто повторить, частями или целиком - вот, что всегда было для меня главное. Наверное, эталонную реализацию можно собрать с помощью циркуля и линейки. Или на счётах. Например, транзитную ноду на php написал я сам, это было только несколько строк. В полнофункциональную ноду его переписали другие. Где-то в недрах, говорят, зреет и нода на bash. Клиент на bash+dialog уже есть. А если бы не было какой-нибудь библиотеки для чего-нибудь - процесс бы просто остановился, потому что трудоёмкость реализации какой-то библиотеки была бы в разы выше, чем всего остального, вместе взятого.

Пробки и ошибки

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

  • п1 Африканские дети и места с плохой связью. Офлайн, все дела. Флоппинет жив. Сигнальнокостёр-нет - будет жить!
  • п2 Поддержка разных дистрибутивов, с базой сообщений, которая входит и в сам дистрибутив, чтобы сделать дискуссии доступными офлайн и сразу при установке системы, чтобы упростить подачу и поиск багов, чтобы упростить поддержку. Это даже проще, чем мейл-лист, потому что не нужен е-мейл, требующий доступа и засоряющий ленту сообщений. Подобную базу можно легко скачивать, и легко упаковывать в сам дистрибутив. Об этом - ниже.
  • п3 Средство для гейтования разных сайтов. А вот и оно, дерево. Которое может раскинуться листьями по всей сети. Надо понимать, что огромный трафик оно не выдержит. Но огромный трафик людям и неинтересен, про то, что Вася дурак, можно написать на любом сайте, и получить аналогичный ответ тоже на совершенно произвольном, тут нет ценности в сохранении и воспроизведении дискуссии. А вот тематические сайты и разделы - имеет смысл и зеркалировать (чтобы потом знать, где искать), и обмениваться с аналогичными сайтами.

Что не получилось? Ничего. Пользователи приходили, не находили тематики, и уходили. Оставались только те, кого заинтересовала подобная технология, но период их интереса - три дня. В итоге, в сети стабильное количество пользователей, три штуки, при этом это всегда разные люди, на смену одному приходит другой. Средств для обмена тоже не появилось, потому что непонятно, кого с кем обменивать. На лоре и опеннете говорят о чём угодно, только не по тематике, а тех редких людей, которым интересно говорить по тематике, вытащить не получилось (по понятным причинам, ибо в сети сейчас никого нет и обсуждать проблемы не с кем).

Нужен трафик. Но, такое ощущение, что с того времени интернет сильно изменился. Мне там вообще ничего неинтересно! Мне не хочется никуда ходить, не хочется никого читать, это не вызывает у меня интереса. Хочется сформировать клуб хороших людей, и оградиться от тлетворного влияния интернета, но я понятия не имею, где их искать, как их собрать и как их удерживать до того, как соберётся критическая масса. Дежурный приём:

- Алё, Серёга, привози девчонок, у нас тут столько водки!
- Алё, Витёк, у нас тут девчонки, вези водку!

... не работает. Революция, которую так хотели большевики - не состоялаcь. Остаётся только пункт 2.

ii и узконишевые os - вместе веселее

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

1. Люди. Это явно не те люди, которые гонятся за всем модным, это увлечённые энтузиасты своеого дела, и их мало волнует то, что над ними посмеиваются. :) Это то, что надо, на данном этапе развития сети. Хорошие люди, умеющие методично гнуть свою линию.

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

3. Моментально появляется тематика. А там, люди и во внетематические перекрёстные эхи будут ходить, поболтать о том, о сём, найдутся новые интересы. «Где двое или трое собраны во имя моё, там я посреди них», и там эха для них. Если два пользователя haiku и три kolibri интересуются одной тематикой, это уже повод для эхи. Хоть об angband, хоть о водке. Теперь у сети есть ещё один якорь.

4. Количество и мелкий трафик форумов поддержки этих проектов как раз идеально вписывается в концепцию ii: вместо того, чтобы создавать темы, в которых один ответ в неделю - тематическая лента, где все вопросы и ответы видны всем, и не нужно всё прокликивать. Впрочем, технология позволяет легко заворачивать хоть в ветки, хоть в темы, хоть в своё представление.

Будущее уже сейчас

В общем, проект потихоньку развивается и тренируется. Вышла версия 03, переписана документация, проект пережил учебно-боевую тревогу по отключению главного сайта и проброса его на php-ноды, без ущерба для общения. Живём. И на текущем этапе ii ищет пользователей и тематические сообщества, для совместного проживания. Наш клуб всегда открыт на http://51t.ru

 

feofil
()

Раскопки старых скриншотов

Галерея — Скриншоты

Недавно раскопал в папке с картинками старые скриншоты 2008 - 2009 годов, того времени, когда я ещё учился в школе и не наигрался с компизом.

Сразу прошу прощения за jpeg, но сохранился только он. Тогда я не знал, как надо сохранять скриншоты.

На всех картинках дебиан 5.0.3, без обновлений. Ставился с 5 двд дисков, интернета не было.

На первых 3 вместо компиза используется beryl+kwin. Beryl был специально собран методом ./configure && make && checkinstall, emerald я тогда не осилил, поэтому использовал kwin. И много ненужных эффектов, куча софта в вайне (возможно сейчас даже при всём желании все эти игрушки в вайне запустить не смогу).

 ,

kirill_rrr
()

Стоит ли переписывать GNU на Python?

Форум — Talks

Недавно возникла такая сумасшедшая идея.

 , ,

Deleted
()

[xterm,tek4014] Дело было вечером, делать было нечего...

Галерея — Скриншоты

или продолжение прошлогоднего безобразия с небольшим резонансом.

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

На этот раз я решил немного заняться анимацией. Предметом издевательств был избран The Riddle от Gigi D' Agostino. В сети нашёлся и уже готовый файл с векторными данными в формате ILDA для лазерных проекторов (зеркало). Осталось дело за малым — скрестить одно с другим, что и можно наблюдать на скриншоте.

Кому интерессно — исходники лежат тут плюс вышеуказанный архив с данными. Запускаем всё это дело в xterm и наслаждаемся движущимися картинками (музыка прилагается).

И да, поклонники альтернативных терминалов в пролёте — этот финт ушами, насколько мне известно, работает только в xterm.

UPD: добавил нормализацию, что бы картинка на весь экран была и синхронизировал на 25fps.

для воспроизведения с музыкой у меня лучше всего работает

(sleep 0.5 && ffplay music.mp3) & ./tekilda theriddle.ild

PS: тытрубки не будет т.к. у меня там нет ни аккаунта, ни желания его заводить

 , tek4014,

beastie
()

Выбор фильма в пятницу

Форум — Talks

Мне всегда не хватало топов imdb, кинопоиска и других сайтов.

Поэтому, я решил сделать свой топ с блэкджеком ипоэтессами и режисерами.

Тестите - http://poiskfilma.com/

Еще не все работает, что хотелось, все буду допиливать постепенно, но уже основные фильтры есть.

Фишка сервиса в том, чтобы можно было подобрать фильм по самым различным параметрам (коих будет еще больше со временем).

Уже сейчас можно отобрать, например, лучшие (по моему мета-рейтингу/рейтинги imdb/кинопоиска) комедии с участием Роберта Де Ниро

Или Лучшие американские фантастические телесериалы, выпущенные после 2000 года

Или Популярные американские фильмы по количеству голосов на imdb.com в жанре комедия, мультфильм, семейный и приключения

Или что-то более экзотическое - Неизвестные японские фильмы по количеству голосов на imdb.com 2010 года, с рейтингом IMDB.com более 7.5

Или можно поискать (скорее всего хорошие фильмы, которые мало кто знает) - Неизвестные британские фильмы по количеству голосов на imdb.com в жанре триллер, выпущенные с 1980 года, с рейтингом КиноПоиска более 7.5, с рейтингом IMDB.com более 7.5

Ну и т.д. фильтрами тоже надо уметь пользоваться, и тогда можно найти хороший фильм/сериал.

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

фичреквесты/багрепорты приветствуются =)

p.s. В базе пока нет многих фильмов позже 2012 года (временно). p.p.s

 imdb,

pi11
()

Новостной rss->jabber бот

Форум — Talks

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

Может быть кому-то еще пригодится. jid бота - webii@jabber.ru

Можно его авторизовать и написать любое сообщение - в ответ он пришлет краткую справку -

RSS Бот.

С помощью этого бота, вы можете подписаться на любой rss поток. Как только будут появляться новые сообщения в rss, бот будет присылать вам их в джаббер

Команды: Оформить подписку на rss: subscribe адресс_rss (Например: subscribe http://lenta.ru/rss)

Отписать от подписки: unsubscribe адресс_rss (Например: unsubscribe http://lenta.ru/rss)

Отписаться от всех подписок: unsubscribe-all

Список подписок: list-my

Работает бот так - если эту rss ленту он еще не знает (т.е. вы первый кто на нее подписался), то вам придут все сообщения с этой ленты. Потом уже будут приходить только новые. Если лента уже парсится, то будут приходить только сообщения, которые появились в ней после вашей подписки.

RSS ленты он парсит с интервалом от 5 минут до 2 часов, в зависимости от того, на сколько часто этот rss поток обновляется.

Еще в планах сделать подписку только на ключевые слова, чтобы бот слал только новости, в которых присутствует определенное слово.

Подписывайтесь на ЛОР! =) - subscribe http://feeds.feedburner.com/org/LOR

реквесты и баг-репорты приветствуются (несколько багов сейчас есть, но не существенные для функционирования).

 , ,

pi11
()

чем залить музыку на ipod в линуксе?

Форум — Desktop

раньше юзал clementine, но он в новой версии разучился в айподы.
поставил gtkpod - вот такое говорит
>> File type of .../Final Destination.m4a is not recognized
и не добавляет.
%subj%

snoopcat
()

Puppy Arcade 11 Live CD

Новости — Игры
Группа Игры

Puppy Arcade — это live дистрибутив linux, основанный на Puppy Linux, но созданный для ретро-игр. В него включено большое количество различных эмуляторов консолей и других игровых платформ:

Amiga (500, 1000, 2000, CD32, CDTV), Apple (68k, 128k, 512k, SE, MacOS, Plus), Atari (400, 400 XL, 800, 800XL, 130XE, 5200, Falcon, Lynx, ST, others), Amstrad (CPC, Plus, VEB, others), Arcades (many), Colecovision, Commodore (64, 128, VIC20, PET, others), Doom, GameBoys (GB, GBC, GBA), GameGear, Genesis/MegaDrive, Intellivision, Master System, MS DOS, MSX, MSX2, N64, NDS, NeoGeo, NeoGeo Pocket, NeoGeo CD, NES/Famicom, PC Engine/TurboGrafix, PC-FX, PlayStation, ScummVM, SNES, Wonderswan, Virtual Boy, ZX Spectrum (16k, 48k, 128k, +2, +2A, +3).

Особенности:

  • Включает в себя загрузчик образов ROM, интерфейс для всех эмуляторов и просмотрщик образов ROM.
  • Свыше 18000 игр (ко всем играм есть подробное описание).
  • Поддерживает джойстик.
  • Имеются драйвера ATI, Nvidia и MESA/Xorg75, доступные в менеджере пакетов.
  • Пользователи могут изменять внешний вид загрузчика образов на свой вкус.
  • Простое управление с клавиатуры, практически для всех эмуляторов по умолчанию.

Домашняя страница проекта


Инструкция

Скачать

>>> Источник новости

 , , ,

fallout4all
()

пятница

Форум — Talks

 defun.co, ,

pi11
()

госдума приняла в третьем чтении поправки в четвертую часть гражданского кодекса. ну наконец-то.

Форум — Talks

!Ъ : http://ria.ru/society/20140225/996988693.html

Ъ :

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

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

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

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

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

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

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

 

Rastafarra
()

Интернетокапец

Форум — Talks

Ъ

Комитет Государственной думы по информационной политике одобрил к первому чтению закон об обязательной регистрации всех создаваемых в интернете ресурсов в Роскомнадзоре.

Reset
()

Науч.фант. Сериалов тред

Форум — Talks

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

это я уже видел, можно не советовать:

Звездный путь
Звездные врата
Светлячек
На краю вселенной
Андромеда
Вавилон 5
доктор кто
Звездный крейсер „Галактика“
Лекс
Визитеры

P.S. хотя можно и не только связанные с космосом

P.P.S. linux тут при том, что смотреть я это буду в уютненькой генточке и на няшном smplayer'е

P.P.P.S тут буду записывать посоветованное(+коменты от советовавших)

Самое главное:  Курс по теме «как избавиться от зависимости от сериалов»
Fallen Skies
Alien Nation (его надо смотреть до Farscape)
Dark Skies (не фильм)
Max Headroom (больше киберпанк, чем sci-fi)
Charlie Jade
Pioneer One
Каприка
Black Mirror
This Is Not My Life
ReGenesis
Borealis (пилот, с натяжкой, ибо science почти нет)

 ,

Deleted
()

Делимся интересными расширениями браузера

Форум — Talks

Может что-то есть что сильно мне поможет, но я о этом не догадываюсь.

У меня пока скромно, хоть есть специфичные: HTTPSEverywhere, Adblock, Flagfox, Colorzilla, Ghostery, JSONView, LiveReload

Поставил Ghostery, Lightbeam и особо не пользуюсь

NoScript считаю лично мне не нужным

vertexua
()

Секс улучшает работу мозга, а порнография отрицательно действует на память, интеллектуальные способности и мультитаскинг

Форум — Talks

Ученые из США и Южной Кореи, проведя ряд экспериментов на крысах и мышах среднего возраста, пришли к интересным результатам.

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

Ряд тестов показал, что после ряда сексуальных актов процесс нейрогенеза у пожилых крыс ускорялся, фактически их мозг становился моложе.

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

Группа исследователей из южно-корейского университета Конкук пришла к выводу, что частый секс успешно противодействует негативному воздействию стресса на мозг.

Именно стресс является главным ингибитором воспроизводства нейронов в мозгу, а половые акты восстанавливают эту функцию,

Вместе с тем, согласно новейшим исследованиям психологов из Университета Дуйсбурга-Эссена в Германии, порнография отрицательно действует на память смотрящих, в особенности ухудшая их способности к мультитаскингу, выполнению нескольких задач одновременно.

Ученые протестировали умственные способности людей до и после показа непристойных картинок и видеофильмов. Большинство из них продемонстрировали ухудшение интеллектуальных показателей после просмотра порнографии.

Источник

P.S. Линукс притом, что секс.

Chaser_Andrey
()

DWB

Форум — Desktop

Есть такой забавный легкий браузер с vim-like управлением DWB. Ставил из реп своего Debian testing gtk3-версию, но затем удалил её, так как в ней не работает флэш. Собрал из исходников gtk2-версию.Так вот, почему-то настройки не запускаются. И как сделать так, чтобы пароли на сайтах сохранялись? Ввлдить каждый раз все заново очень мучительно)

 , , ,

permafrost
()

поругайте js-быдлокод

Форум — Development

вдохновившись этой темой решил написать свой велосипед добавляющий лору двач-стайл функциональность:

// ==UserScript==
// @id             www.linux.org.ru-2ch-style@scriptish
// @name           LOR 2ch-style
// @version    0.1
// @author         
// @description    enter something useful
// @match      http://www.linux.org.ru/*
// @match      https://www.linux.org.ru/*
// @namespace http://www.linux.org.ru/*
// @namespace https://www.linux.org.ru/*
// @include http://www.linux.org.ru/*
// @include https://www.linux.org.ru/*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.js
// @run-at         document-end
// ==/UserScript==

(function () {

var mouseOnPopup = false;

var locationurl = $(location).attr("href").replace(/#.*$/, "");

var locatTimer = null;

var processMouseEnter = function (){
    mouseOnPopup = true;
};

var processMouseLeave = function (){
    mouseOnPopup = false; 
    processMouseOut();
};


var processLink = function (lnk, elem)
        {
            	msg = lnk.parents('article');
            	msg_title = msg.find('.title');
            	msg_body = msg.find('.msg_body.message-w-userpic');
                popup = $('<div class="2ch_popup">' + '<div class="msg_title">' + msg_title.html()  + '</div>' + '<div class="msg_body">' + msg_body.html()   + '</div>' + '</div>');
            	popup.find('.hideon-phone').parent().remove();
                popup.find('div.msg_title > a').each(function (idx,elem){processTag(idx,elem);});
                popup.find('div.answers > a').each(function (idx,elem){processLinkComments(findLink(elem),$(elem));});

                popup.mouseenter(function(){processMouseEnter();}).mouseleave(function(){processMouseLeave();});
                
                if (locatTimer){
                    clearTimeout(locatTimer);
                    locatTimer = null;
                }
                
                $('body').remove('.2ch_popup');
               
                $(popup).css('z-index', '9999')
                                .css('position', 'absolute')
                                .css('top', ($(elem).offset().top)+'px')
                                .css('left', ($(elem).offset().left+$(elem).width()+5)+'px')
                                .css('background-color','#101010')
                                .css('width', '600px')
                                .css('border-radius', '5px')
                                .css('border-width', '1px')
                                .css('border-style', 'solid')
                                .css('border-color','#face8d')
                                .css('padding', '5px')
                                .attr('rel', $(elem).attr('href'));
                 $('body').append(popup);
        };
        
var findLinks = function (msg, elem){
            return msg.find('a').filter(function(){return ($(this).text() === "Ссылка" && $(this).attr('href') == $(elem).attr('href')); });
        };
        
var findLink = function (elem){
        var msgId = $(elem).prop("href").match(/comment-(\d+)/)[1];
        var msgObj = $("#comment-" + msgId);
       return msgObj.find('.title');
    };

var processMouseOver = function (elem){
       var links = findLinks($('#comments'), elem);
       if(links.length > 0)
        {
          processLink(links, elem);
          return false;
        }
        console.log('not found');
        if($('.2ch_popup').length > 0 && $('.2ch_popup').attr('rel') == $(this).attr('href'))
            return false;        
        $.ajax({type: "GET", url: $(this).attr('href')})
        .done(function(msg){
            msg = $(msg);
            msg = findLinks(msg, elem);
            processLink(msg, elem);
        })
    };
    
var processMouseOverComments = function (elem, elemshow){
          processLink(elem, elemshow);
          return false;
    };

var processMouseOut = function (){
    if (locatTimer){
        clearTimeout(locatTimer);
        locatTimer = null;
    }
    locatTimer = setTimeout(function(){    
        if(!mouseOnPopup){
            locatTimer = null;
            $('.2ch_popup').remove(); 
        }
    }, 300);
};

var processTag = function (idx,elem){
        $(elem).mouseover(function(){processMouseOver(elem); })
        .mouseout(function(){processMouseOut();})
    };

var processLinkComments = function (elem, link){

       link.mouseover(function(){processMouseOverComments(elem, link); })
           .mouseout(function(){processMouseOut();});
    };
    
        
var processTitle = function (index, url, element) {
		var replyUrl = $("a", element).prop("href");
		var replyMsgId = replyUrl.match(/.*[\?\&]?cid=(\d+).*/)[1];
		var nick = $("a[itemprop='creator']", element.next()).text();
		if (nick == null || nick == "")
			nick = "anonymous";
					
		var msgId = element.parent().prop("id").match(/comment-(\d+)/)[1];

		$("#comment-" + replyMsgId).each(function() {

			var href = url + "#comment-" + msgId;
			var link = $("<a href='" + href + "'>" + nick + "</a>");
			processLinkComments(element, link);

			var container = $(".msg_body", $(this));
			var answersClass = "answers";
			var answers = $("." + answersClass, container);
			if (!answers.length) {
				answers = $("<div class='" + answersClass + "'>Ответы: </div>");
				answers.css("font-size", "smaller");
				container.append(answers);
			}
			if (answers.children().length) {
				answers.append(", ");
			}
			answers.append(link);
		});
    };
    
	$(".title").has("a[data-samepage='samePage']").each(function(index) {processTitle(index, locationurl, $(this));});
    $('div.title > a').each(function (idx,elem){ processTag(idx,elem); });

}());

Да, да наш девиз: «Ни года без велосипеда». И потом последняя выложенная там версия меня не устраивала по функционалу, а всё остальное что было найдено, скорее не работало чем выполняло задуманное.

Проверялось всё в Scriptish в FF 26.0 в теме Tango. И выглядит оно примерно так.

 , ,

mm3
()

Лучшая СУБД для CQRS+Event Sourcing.

Форум — Development

Добрый день, мои дорогие любители архитектуры распределенных систем.

Сразу накидаю ссылочек, кто хочет интересное чтиво.

http://martinfowler.com/bliki/CQRS.html

http://habrahabr.ru/post/146429/

http://habrahabr.ru/post/149464/

http://blog.jonathanoliver.com/2011/05/why-i-still-love-cqrs-and-messaging-an...

http://msdn.microsoft.com/en-us/library/jj554200.aspx

Вкратце. CQRS - более общий вариант CRUD, мы не обязательно в DAO записываем те же обЪекты что и читаем (Entities). Вместо этого отправляем асинхронные Command и через время, когда он раздуплится, можем делать Query. Тоесть вместо одного DAO у нас Read Model и Write Model.

Event Sourcing, Write Model. У нас нет сущностей, есть Aggregate, которые реально не сохранены в базе, но определяются общим ID. Так вот, когда мы получаем Command на определенный ID, то мы достаем предыдущие Command на этот ID, реплеим их в памяти, они имеют доступ к общему обьекту Aggregate, который конструируется с нуля поглощая эти Command. Потом мы добавляем к нему новый Command и сохраняем его в базу.

Добавление последнего Command порождает много Event, которые разлетаются к чертям асинхронно во все стороны и там какие-то куски кода сферически в вакууме обновляют Read Model. Например в реальном времени обновляют таблицы, делают real time MapReduce, обновляют карту мира, пишут письма, пофиг.

Read Model может быть бесконечно разнообразным и его можно стереть, перепрограммировать и воспроизвести заново все Event. Их можно добавлять потом и делать сколько угодно штук. Они могут быть даже не в вашей компании. С письмами повторную отправку иногда нужно отключать.

А теперь вопрос. Какая СУБД, желательно из бесконечно масштабируемых, для такого подходит.

Mongo, РСУБД прямо утыканы single point of failure, так что отбросим пока.

Cassandra. Идеально, неубиенная, линейно масштабируется, no single point of failure. Первый ключ (parition/row key) - command id. Второй, поддающийся сортировке - timestamp. Но все омрачает один факт. Не смотря на рекламу что с помощью R+W>N можно достичь strong consistency, это простите брехня. Потому что нет rollback, и потом вылазят проблемы что если write неуспешен, то некоторые чтения могут все же увидеть новые данные. А следующее чтение - старые. А потом опять новые. Нужно просто правильные узлы выбирать. Для вебни - самое то. Но когда CQRS+Event Sourcing система будет наивно колбасить миллион комманд в автоматическом режиме, то может неслабо бабахнуть.

Riak - то же самое вроде, не? Очень хотел бы послушать.

HBase? Очень мало знаю о этой СУБД.

Короче нужна кассандра с роллбеком

 , ,

vertexua
()

кто там хотел хардкору?

Форум — Games

http://thecastledoctrine.net http://www.youtube.com/watch?v=2OfcwdEaNzQ

лютая няшка

альфа, 4 доллара

есть исходники

This work is not copyrighted.

Do whatever you want with it, absolutely no restrictions, and no permission 
necessary.


Jason Rohrer
Davis, CA

 castle doctrine,

derlafff
()

Qt,Android, как начать?

Форум — Development

Есть Qt Gui Application, как его скомпилировать под андроид? У меня Fedora 19. П.С. в гугле толком не смог понять что нужно делать, так что можно поподробнее инструкцию.

 , ,

knotri
()