Как стать автором
Обновить
35
0
paradoxs @paradoxs

Пользователь

Отправить сообщение

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

Время на прочтение15 мин
Количество просмотров81K

Введение



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

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

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

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

Parallel Extensions для .net 3.5

Время на прочтение8 мин
Количество просмотров5.8K
Aquafresh :-)Количество ядер у процессоров растет год от года. Но многие программы до сих пор умеют использовать только одно. В небольшой заметке хочу рассказать о дополнении к библиотеке System.Threading, которое называется Parallel Extensions. Это дополнение позволяет на высоком уровне выполнять задачи на всех доступных ядрах/процессорах.

Данная статья является лишь кратким вводным обзором в Parallel Extensions. Так же в конце статьи вы найдете ссылки на ресурсы, которые раскрывают тему во всех деталях.

Если интересно, то смело ныряем под кат.
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии69

14 бесплатных Web-приложений для совместной работы

Время на прочтение4 мин
Количество просмотров77K
«Люди не являются островами в открытом океане». Это высказывание успешно можно использовать особенно в том случае, если вы — дизайнер или разработчик. Несмотря на существование платных средств, как Basecamp и Zimbra, вы можете использовать ещё и бесплатные, которые, пожалуй, не уступают платным (а порой и обгоняют их).

В этой статье мы рассмотрим 14 бесплатных Web-приложений для совместной работы в сети Интернет. Нужен вам простой редактор с самыми основными возможностями или полнофункциональное приложение для управления проектами, вы сможете обнаружить здесь по крайней мере одно приложение, удовлетворяющее вашим требованиям.

Читать дальше →
Всего голосов 129: ↑123 и ↓6+117
Комментарии59

Анонс YUI 2.6.0

Время на прочтение1 мин
Количество просмотров1.5K
Обновилась javascript-библиотека Yahoo! User Interface (YUI) до версии 2.6.0.
Кроме исправлений предыдущих элементов управления, добавлены два новых:

The Carousel Control



Живой пример

The Paginator Control



Живой пример

Прочие исправления перечислены здесь

Скачать новую версию с sourceforge.net (10.5 Mb)
Архив включает документацию, многочисленные примеры и собственно библиотеку YUI.

Ссылка на анонс
Официальный сайт проекта

Всего голосов 27: ↑22 и ↓5+17
Комментарии22

JS-тень

Время на прочтение1 мин
Количество просмотров1.5K
Может быть я изобретаю велосипед, но от нечего делать решил попробовать сделать тень средствами яваскрипта, вот что из этого получилось

js-тень
Пользуйте на здоровье :)

UPD: Добавил смещение тени
Всего голосов 148: ↑136 и ↓12+124
Комментарии61

Шпаргалка для дизайнеров

Время на прочтение1 мин
Количество просмотров3.9K

В очередной раз перелистывая мануал по wordpress'у, решил его скомпилировать в один файл, оный и предлагаю Вам для скачивания…
Читать дальше →
Всего голосов 58: ↑55 и ↓3+52
Комментарии24

MySQL Performance real life Tips and Tricks

Время на прочтение9 мин
Количество просмотров37K
Пообещал вчера написать статью о реальных случаях оптимизации БД MySQL.
Пришлось сегодня вставать утром пораньше чтобы воплотить обещанное в жизнь.
Централизованное управление мыслями поддерживать еще сложно, поэтому не судите строго за казусы и ляпсусы в моей статье.

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

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

Читать дальше →
Всего голосов 143: ↑139 и ↓4+135
Комментарии93

Основы NHibernate. Часть 1

Время на прочтение10 мин
Количество просмотров61K
Не так давно попался под руки новый проект. До сих пор, в основном, приходилось допиливать старые. В проекте предполагалось использование БД. Погуглив немного решил отказаться от старых методов работы с данными в пользу ORM. Да, есть много кодогенераторов(например, CodeSmith), которые в считанные секунды создадут уровень доступа к данным, но такие решения не отличаются гибкостью, а при дальнейшем развитии грозят превратиться в кошмар. Хотя и у ORM тоже есть свои недостатки. Но обо всем по порядку. Сейчас же я хочу поделиться с вами моим опытом в освоении одного из представителей мира ORM — NHibernate. Почему из всех возможных ORM я выбрал для изучения NHibernate? Во-первых, потому что надо было выбрать что-то одно. Во-вторых, история NHibernate уходит глубоко корнями в ORM-фреймвокр Hibernate для Java и является достаточно зрелым решением. Больше пока, вроде, и нет аргументов, но, думаю, они появятся позже при более близком знакомстве с NHibernate.
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии66

Вопросы зала

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

Чтобы как-то упорядочить общение и не раствориться в бесконечности, мы ограничимся десятком-другим первых вопросов, обдуманных и заданных по существу. Это своего рода эксперимент, поэтому обещать всестороннего удовлетворения интересов мы, конечно, не берёмся. Речь пойдёт больше о технической стороне дела, а не о взаимоотношениях с пользователями и урегулированию морально-этических вопросов.

Итак, люди, причастные к созданию проекта habrahabr, готовы ответить на ваши вопросы в комментариях к этой записи.

Внимание! Название блога говорит за себя: предпочтение отдаётся вопросам о технической стороне дела
Всего голосов 65: ↑60 и ↓5+55
Комментарии256

Города России в именительном, предложном (местном) и родительном падеже.

Время на прочтение1 мин
Количество просмотров8.6K
Приняв во внимание все замечания из предыдущего поста с базой городов, мы обновили ее и добавили еще родительный падеж. Теперь база отвечает на вопрос «Откуда?». Например: Вася из Ярославля.

Скачать:
  1. CSV
  2. MySQL

Автоматическая обработка: Jetfish
Вычитка и ручная корректировка Sofrus

Как и в прошлый раз, при желании, выражайте респект и уважуху им, а не мне. Я просто их прикрываю.
Всего голосов 111: ↑103 и ↓8+95
Комментарии24

14 модулей для Drupal, о которых вы должны знать

Время на прочтение2 мин
Количество просмотров12K
В продолжении темы о Drupal’е хочу предоставить несколько расширенный обзор модулей. С помощью некоторых из них можно строить уже не просто standalone-блог, а сообщество с элементами социальности. Список, конечно же, не претендует на полноту и основывается лишь на личном опыте автора.

Итак, вот они:
Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии55

Интерфейсы vs. классы

Время на прочтение4 мин
Количество просмотров285K
Обсуждая с различными людьми — в большинстве своём опытными разработчиками — классический труд «Приёмы объектно-ориентированного проектирования. Паттерны проектирования» Гаммы, Хелма и др., я с изумлением встретил полное непонимание одного из базовых подходов ООП — различия классов и интерфейсов.

Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии161

Основы Hibernate

Время на прочтение17 мин
Количество просмотров433K


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

Долго думал, о чем же написать свой «первый» топик… Слово первый не зря взял в кавычки, так как первый топик на самом деле уже был, опыт был к сожалению неудачный — дело закончилось баном.  Решил больше не копипастить. Уверенности тому, что надо написать что-то свое, придал вот этот топик. Решил твердо — пусть это будет и редко, но буду писать сам.

Ну, едем дальше!

Совсем недавно, по роду свой деятельности, мне пришлось столкнуться с таким понятием как ORM — (англ. Object-relational mapping). В двух словах ORM — это отображение объектов какого-либо объектно-ориентированного языка в структуры реляционных баз данных. Именно объектов, таких, какие они есть, со всеми полями, значениями, отношениями м/у друг другом.
Читать дальше →
Всего голосов 64: ↑59 и ↓5+54
Комментарии112

Коридоры в нашей голове

Время на прочтение2 мин
Количество просмотров2.8K
Коридоры в нашей голове
Я сбрасываю кожу, буду утром в другой.
Я ничего тут поделать не могу.
Никто мне не поможет разобраться с cобой,
Если сам себе не помогу.
Захар Май, «Сбрасываю кожу».

Попробую уравновесить свой жесткий пост этими размышлениями, не менее жесткими, но намного облегчающими жизнь. Для меня эти идеи работают «на все сто».
Ко мне часто приходят новые идеи. Как правило, я какое-то время вынашиваю новую идею внутри. Потом начинаю доставать окружающих с обсуждением этой идеи (например, в ЖЖ, этом блоге или в реальной жизни). Обсуждение позволяет отсеять лишнее, иногда просто выстроить мысли, иногда родить новые.
Очень часто (в большинстве случаев) я слышу вариации одного и того же ответа – «У тебя ничего не получится!»
Почему, черт возьми? Я общаюсь с неглупыми людьми. Многих я считаю умнее себя. Но ответ в большинстве случаев один.

Недавно я задумался над этой проблемой. Это проблема, потому что мне гораздо легче развивать существующие идеи и придумывать новые, не когда я отражаю негативные нападки, а наоборот – чувствую поддержку собеседника.
Читать дальше →
Всего голосов 48: ↑35 и ↓13+22
Комментарии32

10 лучших вебсайтов по обучению Photoshop

Время на прочтение1 мин
Количество просмотров56K
Вместо того, чтобы тратить впустую время, обыскивая сеть, в поисках хороших уроков по Photoshop, придерживайтесь этого списка.

PS Heroперейти


PSD tutsперейти


Tutorial 9перейти

Читать дальше →
Всего голосов 83: ↑73 и ↓10+63
Комментарии61

Indeed

Время на прочтение3 мин
Количество просмотров2.2K
Существует огромное количество рейтингов языков программирования, некоторые измеряют скорость(Debian Shootout), другие пытаются определить популярность(TIOBE Index), третьи считают количество поисковых запросов(Google Trends) но всё же самым актуальным для любого человека, который зарабатывает программированием на жизнь, является состояние рынка труда. Сайт indeed.com предоставляет очень удобное средство для просмотра различных трендов, в данном случае мы запросили у него динамику спроса на самые популярные языки для Web:



Какие же можно сделать выводы?
Всего голосов 46: ↑42 и ↓4+38
Комментарии125

Верстка: реализация «резиновых» кнопок

Время на прочтение2 мин
Количество просмотров6.7K
Практически на каждом сайте нужно реализовывать меню. Обычно в этом нет никакой проблемы — заворачиваем все в ненумерованный список — ul, прописываем все наобходимые стили и готово.
Но очень часто дизайнеры, пытаясь создать очередной мегаопупительный макет, делают какие-либо 3D кнопки, либо кнопки с закругленными краями и кучей градиентов, либо еще что либо ужасное :)

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

Читать дальше →
Всего голосов 56: ↑49 и ↓7+42
Комментарии56

Trojan-Dropper.Win32.Agent.rek: «легальный» руткит

Время на прочтение4 мин
Количество просмотров22K
В заметке описывается драйвер, который загружается вирусом, рассмотренным в предыдущей части. Драйвер работает на уровне ядра операционной системы, и обеспечивает «привилегированное» прикрытие основной функциональности трояна, которая работает в режиме пользователя (авторское название компоненты — winnt32.dll. Подробнее о ней см. habrahabr.ru/blog/virus/43787.html).

Краткое описание.
Программа представляет собой nt-драйвер (так же известны, как legacy-драйвера, то есть не связанные ни с каким физическим устройством). Является руткитом: используя механизмы ядра ОС, лишает другие программы доступа к некоторым файлам и ключам реестра.
Детектируется касперским как Trojan-Dropper.Win32.Agent.rek. Размер 27548 байтов.
Лирическое отсутпление. «Обычный» руткит может использовать недостатки в реализации ОС для сокрытия объектов: файлов, сетевых соединений, и так далее вплоть до секторов жесткого диска. Для этого в простейшем случае делается перехват системного вызова. Системный вызов по сути — это вызов функции, а вызов функции — это передача управления по указанному адресу. Руткит записывает по этому адресу свой код, который трансформирует результат оригинальной функции. К примеру, проверяет, пытается ли кто-то открывать файл с телом вируса, и возвращает какой-нибудь код ошибки, например «доступ заперещен».
Руткит перехватывает обращения с реестру и файлам, используя легальные методы самой ОС.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии62

Применение Золотого сечения в Web

Время на прочтение5 мин
Количество просмотров49K
К сожалению, в наше время перенасыщенное рекламой, у многих сложился стереотип, что дизайн – это просто симпатичная и яркая картинка.

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

Сделав сногсшибательную картинку, иногда видишь, что все-таки в ней что-то не так. И это отражается на потребителе, когда продажи товара просто не идут. В отличие от конкурента, у которого совершенно пустая белая картинка, с парой выражений (скажем с рекламным слоганом) и логотипом.

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

10 принципов эффективного веб-дизайна
Пять дизайнерских правил применяемых в Web

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

Это, скажем так преамбула, которую можно отнести к любому направлению дизайна. В этой статье мы поговорим о Web-дизайне и о применении Золотого Сечения и Правила Третей.

Одной из главных задач эффективного дизайна в Web – это ясность и интуитивность. А также концентрация внимания пользователя на нужных местах страницы. Как этого добиваются?

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

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

Читать дальше →
Всего голосов 116: ↑106 и ↓10+96
Комментарии57

Microsoft Managed Extensibility Framework

Время на прочтение2 мин
Количество просмотров2.6K
Четвертого июня группа разработчиков Microsoft представила CTP проекта Managed Extensibility Framework (MEF). MEF – это механизм, который позволяет минимумом кода внедрить в проекты поддержку расширяемости (например, плагинов).

Ссылка на сообщение от разработчиков: weblogs.asp.net/whaggard/archive/2008/06/04/first-managed-extensibility-framework-mef-bits-released.aspx

Скачать CTP вместе с примерами и документацией можно здесь: code.msdn.microsoft.com/mef
Далее я приведу короткий пример из документации для лучшего понимания, что такое MEF.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность