Код и примеры
Andrew @Bonch
User
Классовый мутатор Binds.
3 min
1.7KTranslation
В обсуждении недавнего топика хабрасообщество заинтересовалось подробностями написания классов для MooTools и, в частности, мутаторами. В связи с этим мне захотелось что-нибудь написать на эту тему, пока не наткнулся на статью одного из разработчиков MooTools. В этом топике привожу перевод статьи, в которой Jan Kassens описывает пример использования классовых мутаторов.
+18
Микросайтинг
1 min
2.2KЯ не буду подробно объяснять что такое микроблоггинг.
Меня всегда умиляло, когда люди умудряются вести блог в одной строчке статуса.
Я подумал-подумал и решил сделать микросайт, который, как и микроблог, можно запихнуть, например, в профиль.
Условия хостинга для микросайта минимальные: отстутствие php, mysql, запрет на css, но можно вставлять картинки и ссылки.
А что? нам этого хватит!
Итак, заведу-ка я свой микросайт, например, прямо тут, в комментах!
(А чтобы увидеть сайт, надо открыть комменты)
Внимание! В первом коменте устаревшая версия. Более юзабельную бету смотрите у меня в профиле (ainu)
Второе зеркало на примере коммента в ЖЖ: смотреть (не сочтите за рекламу и обратите внимание: в ЖЖ только одна запись, специально для примера)
А исходники тут.
upd: Тут второй пост о микросайтах.
Меня всегда умиляло, когда люди умудряются вести блог в одной строчке статуса.
Я подумал-подумал и решил сделать микросайт, который, как и микроблог, можно запихнуть, например, в профиль.
Условия хостинга для микросайта минимальные: отстутствие php, mysql, запрет на css, но можно вставлять картинки и ссылки.
А что? нам этого хватит!
Итак, заведу-ка я свой микросайт, например, прямо тут, в комментах!
(А чтобы увидеть сайт, надо открыть комменты)
Внимание! В первом коменте устаревшая версия. Более юзабельную бету смотрите у меня в профиле (ainu)
Второе зеркало на примере коммента в ЖЖ: смотреть (не сочтите за рекламу и обратите внимание: в ЖЖ только одна запись, специально для примера)
А исходники тут.
upd: Тут второй пост о микросайтах.
+276
Классы в MooTools.
6 min
3KСоздать свой класс в MooTools очень просто:
//Example 1
var someClass=new Class({
initialize: function(){
alert('Hello, world!');
}
});* This source code was highlighted with Source Code Highlighter.
+26
Изучаем наличие layout
1 min
6.2KTranslation
Примечание: ниже представлен официальный перевод статьи «On having Layout» на русский язык. Статья не является окончательной. Этот перевод отражает 9 версию от 23.10.2007.
UPD текст статьи полностью убран в связи с его неконтролируемыми изменениями с момента публикации. Перепечатка доступна здесь
UPD текст статьи полностью убран в связи с его неконтролируемыми изменениями с момента публикации. Перепечатка доступна здесь
+43
MySQL Performance real life Tips and Tricks. To be continued.
6 min
8.1KПо заявкам трудящихся решил написать еще одну статью, посвященную оптимизации запросов в MySQL.
В прошлой статье habrahabr.ru/blogs/mysql/38907 рассматривались вопросы оптимизации LIMIT, GROUP BY, COUNT.
В данной статье я немного вернусь к вышеописанному и опишу пару примеров, с которыми столкнулся на проекте недавно, после этого приведу еще пару небольших примеров относительно того что такое хорошо и что такое плохо в MySQL.
В прошлой статье habrahabr.ru/blogs/mysql/38907 рассматривались вопросы оптимизации LIMIT, GROUP BY, COUNT.
В данной статье я немного вернусь к вышеописанному и опишу пару примеров, с которыми столкнулся на проекте недавно, после этого приведу еще пару небольших примеров относительно того что такое хорошо и что такое плохо в MySQL.
+76
Архитектура REST
4 min
949KВведение
В русскоязычной части Интернета присутствует большое количество статей, посвященных веб-службам на основе SOAP и XML-RPC, но почему-то почти ничего нет про вполне заслуживающую внимания (но менее распространенную) архитектуру RESТ.
В данной статье описываются основы этой архитектуры, возможности и примеры её использования.
+71
Использование выражений в PHP
4 min
6.9KВ данном тексе я лишь обращаю внимание на некоторые возможности языка PHP. Я не предлагаю их использовать, так как это в некоторых случаях существенно усложняет читабельность кода и приводит к сложностям при отладке. Однако описанные мной подходы в ряде случаев существенно позволяют сократить код.
Выражения — это краеугольный камень PHP. Почти все, что вы пишете в PHP, является выражением. Самое простое и точное определение выражения — «все что угодно, имеющее значение». (с сайта php.net)
UPD: Статья только о том, как МОЖНО делать в некоторых случаях, когда это оправданно. В большинстве случаях (и тем более повсеместно) описанную практику применять не стоит ни в коем случае, так как она сильно усложняет код. Цель статьи — расказать о возможностях языка, не более того.
Выражения — это краеугольный камень PHP. Почти все, что вы пишете в PHP, является выражением. Самое простое и точное определение выражения — «все что угодно, имеющее значение». (с сайта php.net)
UPD: Статья только о том, как МОЖНО делать в некоторых случаях, когда это оправданно. В большинстве случаях (и тем более повсеместно) описанную практику применять не стоит ни в коем случае, так как она сильно усложняет код. Цель статьи — расказать о возможностях языка, не более того.
+46
CSS Sprites 2: время Javascript
11 min
4.4KTranslation
Ощущение динамики часто являлось тем, что отличало насыщенные Flash-ем сайты от сайтов, основанных на стандартах html. До недавнего времени флэш-интерфейсы всегда казались более живыми, они взаимодействовали с пользователем динамично, и это тот функционал, который остальные сайты не могли просто взять и скопировать.
Конечно, позже состояние дел изменилось — появились эффекты для динамических интерфейсов, поддерживаемые такими JS-библиотеками, как Prototype, Scriptaculous, Moo, YUI, MochiKit (и этот список можно продолжить). Сейчас самое время (через 4 года) вспомнить технику CSS Sprites и посмотреть, сможем ли мы добавить в неё «немного динамики».
Конечно, позже состояние дел изменилось — появились эффекты для динамических интерфейсов, поддерживаемые такими JS-библиотеками, как Prototype, Scriptaculous, Moo, YUI, MochiKit (и этот список можно продолжить). Сейчас самое время (через 4 года) вспомнить технику CSS Sprites и посмотреть, сможем ли мы добавить в неё «немного динамики».
+36
Пишем свой MooTools-плагин.
7 min
3KДоброго времени суток.
Это мой первый серьезный пост на Хабре, так что критика приветствуется.
Сегодня я расскажу о написании плагина для JavaScript-библиотеки MooTools на примере модального всплывающего окна.
Это мой первый серьезный пост на Хабре, так что критика приветствуется.
Сегодня я расскажу о написании плагина для JavaScript-библиотеки MooTools на примере модального всплывающего окна.
+48
ООП для ООП: GRASP
4 min
66KGRASP — General Responsibility Assignment Software Patterns (основные шаблоны распределения обязанностей в программном обеспечении)
Когда речь заходит о термине «ООП», все непременно подразумевают Объектно-Ориентированное Программирование, но сегодня речь пойдет не о нем. Почти. Сегодня я бы хотел рассказать о принципах Объектно-Ориентированного Проектирования, а в частности о шаблонах GRAPS и области их применения.
+61
wysiwyg своими руками
3 min
24KСуществует куча платных\бесплатных визуальных редакторов на любой вкус и цвет. Но что, если они работают не во всех браузерах, Вас не устраивает дизайн или функциональность, или просто душа лежит к написанию своего собственного? Ответ на вопрос, как это сделать —
+52
Хранение набора чекбоксов в одном поле БД. Битовая маска.
2 min
19KЧасто при составлении сайтов с каталогами нам приходится оперировать с однотипными карточками каталога. Рассмотрим пример:
У нас имеется каталог СТО которые оказывают различные услуги клиентам. Есть предопределенный список услуг, среди которых производится выбор. Список услуг представляет собой набор чекбоксов, если услуга оказывается то чекбокс помечается, в противоположном случае отметка не ставится. Предположим количество услуг в каталоге равняется десяти(просто для определенности).
Самым простым способом было бы хранение состояния каждого чекбокса в отдельном поле, однако при этом мы для каждой новой услуги(которая будет указываться на сайте и учавствовать в поиске) будем вынуждены расширять таблицу, и изменять поиск.
Но мы пойдем другим путем.
У нас имеется каталог СТО которые оказывают различные услуги клиентам. Есть предопределенный список услуг, среди которых производится выбор. Список услуг представляет собой набор чекбоксов, если услуга оказывается то чекбокс помечается, в противоположном случае отметка не ставится. Предположим количество услуг в каталоге равняется десяти(просто для определенности).
Самым простым способом было бы хранение состояния каждого чекбокса в отдельном поле, однако при этом мы для каждой новой услуги(которая будет указываться на сайте и учавствовать в поиске) будем вынуждены расширять таблицу, и изменять поиск.
Но мы пойдем другим путем.
+30
39-й способ скругления блока. Один тэг, одна картинка.
2 min
1.3KПару дней назад наткнулся на статью про 38 способов скругления блоков. Очень понравилось. Однако там я не встретил способа, которым пользуюсь уже около года. Он не требует лишних тэгов и требует загрузки только одной картинки (спрайт). Работает во всех современных баузерах и IE6+
+4
Неблокирующая загрузка JavaScript
1 min
1.7KTranslation
Примечание: ниже перевод статьи «Non-blocking JavaScript Downloads», в которой автор рассказывает о проблемах, связанных с подключением JavaScript-файлов, и возможной параллелизации их загрузок. Мои комментарии далее курсивом.
Об авторе: Stoyan Stefanov является веб-разработчиком Yahoo! в группе Exceptional Performance и курирует разработку YSlow — инструмента по измерению производительности. Он также внес значительный вклад в разработку продуктов с открытым кодом, выступал на конференциях и автор технических текстов. Его последняя книга Object-Oriented JavaScript.
Внешние JavaScript-файлы блокируют загрузку страницы и сильно влияют на ее производительность, но существует достаточно простой выход из этой ситуации: использовать динамические теги
читать дальше на webo.in →

Внешние JavaScript-файлы блокируют загрузку страницы и сильно влияют на ее производительность, но существует достаточно простой выход из этой ситуации: использовать динамические теги
script
и загружать скрипты параллельно, увеличивая тем самым скорость загрузки страницы и улучшая пользовательское восприятие.читать дальше на webo.in →
+1
Подсчет количества найденных записей в PostgreSQL
3 min
43K
Сходу готового решения найти не удалось. На форумах просто констатировали, что SQL_CALC_FOUND_ROWS в Постгри нет. Некоторые писали, что надо юзать count(*). И больше никакой информации. Но еще из MySQL мне было известно, что поиск с count()-запросом работает почти в 2 раза медленнее, чем с SQL_CALC_FOUND_ROWS. Я консультировался у тех, кто пользуется PostgreSQL, день мучал google и в результате получил 4 варианта замены SQL_CALC_FOUND_ROWS в PostgreSQL, один из которых вполне приемлимый по скорости.
+33
Совместная разработка с помощью Subversion
6 min
13KTranslation
Управлять наёмными рабочими и распределенными проектами — это просто и весело. Стоп, что за чушь? На помощь приходит хороший контроль версий — именно то, что вам нужно, чтобы правильно вести ваши проекты.
Далее — перевод статьи Collaborate and Connect with Subversion. Это мой первый перевод, поэтому был бы очень рад вашим замечаниям.
Далее — перевод статьи Collaborate and Connect with Subversion. Это мой первый перевод, поэтому был бы очень рад вашим замечаниям.
+40
Консоль для новичка. Часть 1.
3 min
1.7KЧасть 1. Часть 2.
В этом посте я попытаюсь познокомить новичков с консолью Linux'a основываясь не столько на теории, сколько на практических примерах.
В этом посте я попытаюсь познокомить новичков с консолью Linux'a основываясь не столько на теории, сколько на практических примерах.
+17
Meteora
2 min
1.4KУже имеется множество javascript фреймворков, инструментов, множество обсуждалось и тут, однако один очень интересный проект мы упустили из виду. Итак, встречайте

Сам по себе это не самостоятельный фрэймворк, это набор виджетов (как их называют разработчики проекта). Сам пакет основан на MooTools. Однако имеет уже множество встроенных функций, таких как автокомплит, календари и т.п.

Сам по себе это не самостоятельный фрэймворк, это набор виджетов (как их называют разработчики проекта). Сам пакет основан на MooTools. Однако имеет уже множество встроенных функций, таких как автокомплит, календари и т.п.
+33
Евангелие от GUID
6 min
53KTranslation
Разбираясь с новым Visual C# 2008 (он настолько бесплатный для начинающих разработчиков, что я не удержался), нашел новое для себя слово в науке и технике — GUID.
Привожу пример интересной, как мне кажется, статьи, призывающей использовать глобально-уникальные идентификаторы во всех сферах народного хозяйства. Статья, в основном про .NET и прочий микрософт, но, думаю, будет полезна многим здесь, ибо реализации GUID есть почти во всех современных БД и языках (включая mySQL и PHP ;).
ПС: Если будет интересно, то выложу перевод второй части, где автор отвечает на комменты к первой статье.
Привожу пример интересной, как мне кажется, статьи, призывающей использовать глобально-уникальные идентификаторы во всех сферах народного хозяйства. Статья, в основном про .NET и прочий микрософт, но, думаю, будет полезна многим здесь, ибо реализации GUID есть почти во всех современных БД и языках (включая mySQL и PHP ;).
ПС: Если будет интересно, то выложу перевод второй части, где автор отвечает на комменты к первой статье.
+1
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity