Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

rdTree — DHTML-дерево на MooTools

Разработка веб-сайтов

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

Это может быть help, справочная информация, быстрая навигация по админ-панели, древовидное меню и т.д. Пользователю такая организация навигации понятна, так как она реализивана во всех операционных системах.

Поиск хороших решений неприменно приводил к красиво оформленным и хорошо документированыи коммерческим библиотекам, например Zapatec Tree. За unlimited версию там просит 799$.

Дорого! Будем поддерживать разработчиков свободного ПО и искать хорошо написанное дерево на JavaScript.


Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры2.1K
Комментарии 45

Иерархические структуры данных и Doctrine

Разработка веб-сайтов

Введение



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

В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.

Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.

Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.
Читать дальше →
Всего голосов 64: ↑63 и ↓1 +62
Просмотры67.9K
Комментарии 41

Многоуровневое дерево с маркерами (HTML, CSS). Продолжение с jQuery

Разработка веб-сайтов
Посмотреть в работе многоуровневое дерево с маркерами.В продолжение темы про дерево немного переделал код и подключил jQuery. Теперь дерево живое, узлы разворачиваются, как этого многие ожидают видя подобное дерево.
Теперь оформление дерева делает скрипт — сам расставляет маркеры для элементов с вложенными узлами.
Благодаря использованию скрипта HTML стал проще.

UPD 05.04.2009: обновлены скрипты, есть несколько вариантов скриптов.
UPD 09.04.2009: продолжение
Читать дальше →
Всего голосов 50: ↑47 и ↓3 +44
Просмотры35K
Комментарии 44

Многоуровневое дерево с маркерами (HTML, CSS, jQuery). Запоминаем выбранный узел

Разработка веб-сайтов
Дерево помнит выбранный узел по urlЭто продолжение темы про дерево. Хочу его довести до ранга «готов к внедрению». Потому повозился с JavaScript и сделал запоминание выбранного узла на основе адреса ссылки.
Если ссылка вложена в поддерево, дерево развернется до её уровня и, если у неё самой есть поддерево — оно тоже будет развернуто.

JavaScript сделал как смог, т.к. давно не использовал. Прошу помощи в доработке и оптимизации.
Читать дальше →
Всего голосов 22: ↑18 и ↓4 +14
Просмотры5.3K
Комментарии 18

Многоуровневое дерево с маркерами, сохраняющее состояние (HTML, CSS, jQuery, Cookies)

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

Читать дальше →
Всего голосов 38: ↑35.5 и ↓2.5 +33
Просмотры16.5K
Комментарии 48

Дерево категорий с чекбоксами на JQuery

Чулан

Begin



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

Написал такое вот деревце. Реализовал в виде плагина к любимому JQuery )

Что умеет:


  • Если указан пустой див — загружает из указанного скрипта все категории, и подкатегории(вложенные ul, если li имеет класс folder и не имеет вложенного списка(ul) — дерево будет автоматом подгружать этот список из указанного скрипта с указанной глубиной рекурсии(это забота скрипта выдавать запрашиваемые данные с требуемыми параметрами).
  • Если указан готовый список — то можно сворачивать/разворачивать подкатегории, отмечать нужные, которые будут подсвечены заданным классом
  • Получать выбранные номера категорий (value чекбоксов) в массиве
  • Возможность поиска по всем загруженным веткам дерева, вывод результата поиска в указанный див(указывается див для поиска, в котором строка для ввода запроса + див(пустой) для вывода результатов)
  • Число результатов поиска можно ограничить (в параметрах)
  • При клике на одном из найденных результатов — дерево открывается чтобы отобразить заданную ветку и она подсвечивается классом(указывается в параметрах)
  • Можно задать чтобы при клике на родительской категории — внутренние также выделялись
  • Можно задать сообщение которое выдается при попытке выделить лишний чекбокс если число их ограничено.


Вроде ничего не забыл )

Параметры:
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры658
Комментарии 10

Древовизируйте

Я пиарюсь

Есть сервис:


image

Назначение:


Быстрая конвертация мыслей в визуальное древовидное представление.

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

Кто-то другой вероятно сможет найти иное применение.

Плюсы:


  • Любую операцию можно сделать с хоткея
  • Внизу по этому поводу красуется «неглупая» панель с хоткеями. Неглупая потому что показывает только доступные в данный момент времени сочетания клавиш. Напрмер, если вылез попап, то она покажет какой клавишей его скрыть, какой пролиcтать и т.п.
  • Минималистичность.
  • Легкий дизайн, который не отвлекает.
  • Возможность видеть все проекты сразу.
  • Возможность работы на нескольких машинах одновременно с одного пользователя. То есть оно умное, все из себя ajax и обновляет.


а где живет?
Всего голосов 102: ↑82 и ↓20 +62
Просмотры954
Комментарии 97

Плагин Ext.ux.HistoryTree — дерево с историей

Библиотека ExtJS/Sencha
Добрый день.
Хочу поделиться ExtJS плагином Ext.ux.HistoryTree — дерево с историей:
— для всех переходов по дереву (раскрытие/скрытие ветки, выделение ветки) работают кнопки Назад/Вперед;
— в URL браузера всегда прямая ссылка на текущее состояние дерева.

Demo и API

Совместимость:
— IE6+ (с определенными ограничениями), FF, Opera, Safari, Chrome;
— ExtJS версии 2.3.0, 3.2.1 (это все версии, что я тестировала).

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

Буду рада замечаниям и предложениям по работе плагина.
Всего голосов 37: ↑31 и ↓6 +25
Просмотры1.1K
Комментарии 29

Древовидное облако тэгов

jQuery
Долгое время любил и люблю нативный javascript без всяких примочек и рамочек. Однако фреймворки — вещь полезная!
По долгу службы полюбил jQuery, и пусть судорожно вздохнут все противники, а холивары с завистью потрут руки, но для меня это хоть и не было любовью с первого взгляда — теперь $() в моем сердце.
И, чтобы не быть эгоистом, делюсь со всеми своим первым публичным плагином — hcloud
Древовидное облако тэгов
Всего голосов 56: ↑28 и ↓28 0
Просмотры2K
Комментарии 35

XmlTree плагин для QtCreator

Qt
Qt Creator из легкой и простой IDE развился во вполне удобную и функциональную среду. Чего стоит один только Generic Highlighting. Но к сожалению, не всегда удобно просматривать и редактировать xml файлы в виде исходного текста разметки, иногда проще редактировать в виде дерева нод. Для этой цели и был разработан плагин XmlTree, о котором ниже пойдет речь.
Читать дальше →
Всего голосов 24: ↑22 и ↓2 +20
Просмотры1.2K
Комментарии 8

How to по деревьям на jQuery

jQuery
Из песочницы
Часто встречаются задачи, в которых требуется отобразить древовидную структуру взаимосвязей каких-либо сущностей. Например, навигация по файловой системе, меню сайта или содержание учебника.
image
Самым простым вариантом отобразить древовидную структуру в HTML являются списки. Но нас интересуют деревья, обладающие динамическими свойствами. Без javascript тут не обойтись. Так как решение нужно обычно быстро, то использование jQuery позволяет создавать динамические деревья, экономя прилично времени на кодинге. Чтобы сэкономить себе еще кучу времени идем на поисковик и ищем подходящее решение. В целом часто на этом дело создание дерева на сайте и ограничивается, но бывают ситуации, когда дерево подходит, но не имеет какой-то маленькой фишки и тут уже ни чего не остается, кроме как модифицировать имеющиеся дерево.
Читать дальше →
Всего голосов 48: ↑40 и ↓8 +32
Просмотры6.4K
Комментарии 12

The Foundry Nuke. Введение

Обработка изображений


большое разрешение — по клику

Снова здравствуй, Хабр!

В этом посте я бы хотел рассказать о великолепной программе под названием Nuke от компании The Foundry, которая уже затрагивалась вот в этом посте, но вызвала много вопросов читателей, далеких от 3д графики в общем, и от 3д-композитинга в частности.

Если описать в двух предложениях, то Нюк является мировым стандартом в композитинге и пост-обработке, и был одним из ключевых инструментов в подавляющем большинстве голливудских фильмов с бюджетом, отличным от кустарного.
Да что вообще говорить — Аватар, Трон: Наследие, Трансформеры, Watchmen, Властелины Колец, и большинство остальных голливудских блокбастеров были сделаны именно в Нюке.

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

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

В процессе написания поста я понял, что все, что я хотел бы описать, просто не уместится ни в один пост, ни в цикл статей. Хоть пост и получился длинным, но это вершина айсберга — в нем описывается чуть менее 0.01% всего, чем хочется поделиться.

Интересно?
Добро пожаловать под кат! Осторожно! Много трафика, Джобса, чайников, и надкусанных НЛО.

Читать дальше →
Всего голосов 330: ↑319 и ↓11 +308
Просмотры58K
Комментарии 96

Sluggable, Timestampable и так далее в Symfony 2

Symfony
Перевод
В второй Symfony, мы можем присоеденить бихейверы (behaviours) к нашим моделям используя расширения от Doctrine. Один пакет (bundle), StofDoctrineExtensionsBundle, даёт возможность использовать следующие бихейверы: Sluggable, Translatable, Timestampable, Loggable и Tree.

Вышеописанные расширения позволяет превратить обычные ссылки в удобочитаемые (sluggable), осуществлять простую поддержку интернационализации (translatable), организовывать контроль версий (loggable), создавать и автоматически заполнять дату создания и обновления сущности (timestampable), и организовывать древовидную структуру хранения данных (tree).
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Просмотры10.9K
Комментарии 4

JsTree — деревья это так просто

Разработка веб-сайтовJavaScriptjQuery
Tutorial
Привет!

О плагине JsTree на хабре упоминалось лишь в далеком 2009 году. С тех времен все довольно сильно поменялось. Плагин активно развивается. Страница проекта на гитхабе.

Учитывая специфику проекта, над которым сейчас работаю(справочная система), этот плагин оказался просто незаменимым, и я использую 90% его функционала с превеликим удовольствием. И я до сих пор не видел такой же мощной альтернативы.



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

Что мы имеем?


  • Построение дерева на основе html разметки, json и xml формата
  • Drag & drop с тонкой настройкой возможности перемещения нодов по дереву
  • Динамическое добавление/удаление/изменение нодов
  • Возможность построения нескольких деревьев на одной странице и манипуляция нодами между этими деревьями
  • Возможность присвоения нодам произвольных типов (file, folder, drive, да какой угодно), и указать отдельное поведения для каждого
  • Поддержка тем оформления (на скрине в начале статьи пример того, как это реализовал я)
  • Управление с клавиатуры
  • Использование нативных и кастомных чекбоксов
  • AJAX подгрузка нодов, запоминание состояния дерева
  • Плагин красиво и читабельно написан, позволяет писать дополнительные плагины к нему и без проблем кастомизировать.
  • Удобная система байндингов для обработки событий
  • Мультиязычность
  • Управление анимацией раскрытия
  • Поиск по дереву
  • Кастомное контекстное меню
  • Поддержка браузеров: IE 6+, Firefox 2+, Safari 3+, Opera 9+, Chrome
  • Мини-фича, которая меня особенно порадовала — плагин wholerow — выделения нода во всю ширину. А-ля mac style
Читать дальше →
Всего голосов 44: ↑42 и ↓2 +40
Просмотры71.6K
Комментарии 47

Knockoutjs. «Растим» дерево

Разработка веб-сайтовJavaScript
Tutorial

Судя по частоте появления статей, KnockoutJS набирает популярность на Хабре. Внесу и я свою лепту. Хочу осветить тему нестандартных для HTML элементов управления и «дерева» в частности. Под деревом здесь понимается аналог элемента управления TreeView. Статья подразумевает, что читатель уже знаком с KnockoutJS на базовом уровне. Публикация может рассматриваться, как пособие для изучения KnockoutJS. С другой стороны, надеюсь, и опытные пользователи KnockoutJS смогут почерпнуть для себя что-то новое.
Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Просмотры14.7K
Комментарии 7

Custom Tree v2 jQuery plugin

Разработка веб-сайтовJavaScriptjQuery
На днях решил вернуться к перепиливанию одного своего старенького Open Source проекта.
В процессе обдумывания решил, что предыдущий компонент с деревом в его нынешнем виде меня больше не устраивает.

Хотелось чего-нибудь более Event Driven, с понятным и простым API.

Сейчас решил, что оно уже готово для Public.

Берите, пользуйтесь.
Или посмотрите на example в рамках GH-pages.

Под катом краткий перевод краткой документации по API.

UPD: в комментариях мой код для организации перетаскивания.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры9.3K
Комментарии 17

Tree — убийца JSON, XML, YAML и иже с ними

ПрограммированиеD
Recovery mode
Здравствуйте, меня зовут Дмитрий Карловский и я… много думал. Думал я о том, что не так с XML и почему его в последнее время променяли, на бестолковый JSON. Результатом этих измышлений стал новый стандарт формат данных, который вобрал в себя гибкость XML, простоту JSON и наглядность YAML.

image Tree — двумерный бинарно-безопасный формат представления структурированных данных. Легко читаемый как человеком так и компьютером. Простой, компактный, быстрый, выразительный и расширяемый. Сравнивая его с другими популярными форматами, можно составить следующую сравнительную таблицу:
Больше — лучше JSON XML YAML INI Tree
Человекопонятность 3 1 4 5 5
Удобство редактирования 3 1 4 5 5
Произвольная иерархия 3 3 3 1 5
Простота реализации 3 2 1 5 5
Скорость парсинга/сериализации 3 1 1 5 5
Размер в сериализованном виде 3 1 4 5 5
Поддержка поточной обработки 0 0 5 5 5
Бинарная безопасность 3 0 0 0 5
Распространённость 5 5 3 3 0
Поддержка редакторами 5 5 3 5 1
Поддержка языками программирования 5 5 3 5 1
Читать дальше →
Всего голосов 275: ↑168 и ↓107 +61
Просмотры156.8K
Комментарии 629

Lock-free структуры данных. Concurrent maps: деревья

ПрограммированиеC++АлгоритмыПараллельное программирование
Это последняя, на сегодняшний день, статья из цикла про внутреннее устройство конкурентных ассоциативных контейнеров. В предыдущих статьях рассматривались hash map, был построен алгоритм lock-free ordered list и контейнеры на его основе. За бортом остался один важный тип структур данных — деревья. Пришло время немного рассказать и о них.

Исследования, посвященные алгоритмам конкурентных деревьев, не требующих внешней синхронизации доступа к ним, начались довольно давно — в 70-х годах прошлого века, — и были инициированы развитием СУБД, поэтому касались в основном оптимизации страничных деревьев (B-tree и его модификации).

Развитие lock-free подхода в начале 2000-х не прошло мимо алгоритмов деревьев, но лишь недавно, в 2010-х годах, появилось множество действительно интересных работ по конкурентным деревьям. Алгоритмы деревьев довольно сложны, поэтому исследователям потребовалось время — порядка 10 лет — на их lock-free/non-blocking адаптацию. В данной статье мы рассмотрим самый простой случай — обычное бинарное дерево, даже не самобалансирующееся.
Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Просмотры20.9K
Комментарии 13

Открытый курс машинного обучения. Тема 5. Композиции: бэггинг, случайный лес

Блог компании Open Data SciencePythonАлгоритмыМатематикаМашинное обучение

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


UPD: теперь курс — на английском языке под брендом mlcourse.ai со статьями на Medium, а материалами — на Kaggle (Dataset) и на GitHub.


Видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).


Читать дальше →
Всего голосов 56: ↑55 и ↓1 +54
Просмотры164.3K
Комментарии 30
1