Как стать автором
Обновить

FWC: SmartSelect — тулкит для работы с компонентами форм типа select, combobox и т.д.

Разработка веб-сайтов *
FWC:SmartSelect 2.7

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

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

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

все настройки для компонентов smartselect описываются в отдельном xml-файле или json-строкой.

Читать дальше →
Всего голосов 29: ↑25 и ↓4 +21
Просмотры 3.2K
Комментарии 85

Практический HTML: учимся любить формы

Разработка веб-сайтов *
Перевод
Примечание: ниже находится перевод тезисов доклада «Learning to Love Forms» с конференции «WebVisions 2007» (автор Aaron Gustafson). Докладчик рассказывает о верстке форм, используя корректный и эффективный XHTML/CSS-код.

  • Формы — это необходимое зло. Людям свойственно усложнять формы, хотя они могут быть представлены весьма просто.
  • Рассматривайте верстку форм как создание обычного XHTML-кода. Но будьте готовы к несоответствиям со стороны браузеров и применению хаков.
  • Разбивайте сложные формы на несколько простых частей.
  • Старайтесь обеспечивать максимальную семантическую ценность кода.
  • Не усложняйте дизайн форм.


XHTML & CSS приемы



  1. Элемент FORM создает форму.
  2. Единственным обязательным его атрибутом является ACTION, и он всегда должен быть URI.
  3. По умолчанию METHOD выставляется в GET.
  4. Атрибут NAME устарел, используйте вместо него ID.
  5. Элемент FIELDSET используется для группировки связанных полей формы. Может быть вложенным.

Читать дальше →
Всего голосов 43: ↑38 и ↓5 +33
Просмотры 7.8K
Комментарии 70

Замена стандартного select с использованием Mootools

MooTools *
Иногда бывает нужно заменить стандартный HTML элемент select своим.
Обычно это необходимо, если фантазия дизайнера разыгралась и он нарисовал «кастомизированный» select и настаивает, чтобы было реализовано как он того захотел. Ну что ж, надо — сделаем.

Небольшая предыстория.

Однажды мне было необходимо кастомизировать select. Я использую mootools, поэтому, сразу пошел искать плагинчик для замены select'a — вдруг кто-то уже написал? Действительно, нашел несколько. Стал разбираться. Все просмотренные мною плагины оказались полной ерундой — они вели себя не как стандартный select. Выкинул их в помойку и решил написать свой плагин, который бы полностью повторял поведение стандартного select'a.
Читать дальше →
Всего голосов 52: ↑47 и ↓5 +42
Просмотры 3.9K
Комментарии 76

Не возможно обновить (UPDATE) ту же таблицу, которую используешь в SELECT-запросе

Чулан
Сегодня наткнулся на очень неприятный баг в MySQL. При выполнении следующего запроса в MySQL 5.0.45:

UPDATE `files` SET `file_md5` =
(
SELECT MD5( `file_blob` )
FROM `files`
WHERE `id`= 6
)
WHERE `id` = 6

Получил ошибку:
#1093 — You can't specify target table 'files' for update in FROM clause
Читать дальше...
Всего голосов 35: ↑6 и ↓29 -23
Просмотры 354
Комментарии 12

Дерево в выпадающем списке средствами XSLT

XSLT *
Допустим, у нас на сайте есть у нас нечто иерархическое. Например, категории товаров. У категорий есть подкатегории и так далее. И пусть нам захотелось вывести эту иерархию в выпадающий список.
Далее
Всего голосов 32: ↑30 и ↓2 +28
Просмотры 3.8K
Комментарии 30

Полный html-код для вывода списка регионов России

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

1. Важно — регионов сейчас 83 (upd!). Не все программисты заметили, что в последние годы некоторые регионы успели объединиться. Под катом html-код.

2. Создал три варианта для Value. Один по названиям регионов, второй по автомобильным кодировкам, третий — по ISO. Регионы отсортированы по тому, как идут в Конституции, однако у новообъединённых регионов вроде Забайкальского края, код не соответствует положению.

UPD: регионов всё-таки 83. Прошу прощения. Код поправлен.
UPD: создан третий вариант с ISO-3166-2 в качестве ID и Value для регионов.
UPD: добавил недостающие названия республик.

Пожалуйста, пользуйтесь.
Читать дальше →
Всего голосов 23: ↑19 и ↓4 +15
Просмотры 4.7K
Комментарии 48

Select теряет ON при JOIN'e

Zend Framework *
Столкнулся с проблемой в ZF.
Есть две связанных таблицы. Обе наследуют Zend_Db_Table_Abstract. Формируем запрос к БД:

$select = $this->select();
$select->where(’Catalog.trashed = ?’, 1)
->where(’C.trashed = ?’, 0)
->join(array(’C’ => ‘Categories’), ‘C.id = Catalog.categoryid’, array())
->order($sort);


Смотрим запрос к БД:
SELECT `Catalog`.* FROM `Categories` AS `C` INNER JOIN `Catalog` WHERE (Catalog.trashed = 1) AND (C.trashed = 0) ORDER BY `sort` ASC

ON в JOIN потерялся.
А вот и решение:
Всего голосов 2: ↑0 и ↓2 -2
Просмотры 540
Комментарии 4

css opacity и select-ы

Разработка веб-сайтов *
Совсем недавно натолкнулся на один занимательный CSS баг/фичу, решил поделиться, возможно кому пригодится.
Нужно было на сайте создать выбор городов из списка, стандартный список не подошел по эстетическим соображениям, результат должен был выглядить как «ссылка» при клике на которой выпадает список доступных городов, задача банальна, но тут случайно наткнулся на занимательное поведение браузеров, причем как оказалось у всех одинаковое.
Читать дальше →
Всего голосов 70: ↑65 и ↓5 +60
Просмотры 13K
Комментарии 48

Отличия сетевых вызовов Windows и Linux

Разработка веб-сайтов *
Из песочницы
image
Во многом совместимые на уровне исходных кодов модели сокетов от Berkeley и Microsoft, на практике оказываются не такими уж кросплатформенными.

Рассмотрим некоторые хитрые различия в их реализации, которые обнаружились при написании кросплатформенного RPC для перенаправления сетевых вызовов некоторого процесса в одной ОС на другую ОС.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 19K
Комментарии 2

Пять способов показать выпадающий список в Asp.Net MVC, с достоинствами и недостатками

ASP *
В большинстве интродукций к Asp.Net MVC рассказывается о том, как красиво и просто организовать привязку модели к простым полям ввода, таким, как текстовое или чекбокс. Если ты, бесстрашный кодер, осилил этот этап, и хочешь разобраться, как показывать выпадающие списки, списки чекбоксов или радиобаттонов,
этот пост для тебя.
Всего голосов 48: ↑35 и ↓13 +22
Просмотры 41K
Комментарии 18

Еще раз об архитектуре сетевых демонов

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

Так как большинство авторов не удосуживается хотя бы залезть в документацию, то обычно в таких статьях вся информация базируется на неких слухах и пересказах слухов. Эти слухи бродят по сети и поражают википедию, хабрахабр и другие уважаемые ресурсы. В результате получаются опусы вроде "Вы наверное шутите, мистер Дал, или почему Node.js" (пунктуация автора сохранена): она, в основном, верная по сути, но изобилует неточностями, содержит ряд фактических ошибок и изображает предмет с какого-то непонятного ракурса.

Мне было сложно пройти мимо статьи, изобилующей фразами вроде «эффективные реализации polling'а на сегодняшний день имеются лишь в *nix-системах» (как будто poll() есть где-то, кроме некоторых *nix). Этот пост начинался как комментарий, разъясняющий уважаемому inikulin ошибки в его статье. В процессе написания оказалось, что проще изложить предмет с самого начала, что я собственно и делаю отдельным постом.
В моем очерке нет срыва покровов или каких-то неизвестных трюков, здесь просто описываются преимущества и недостатки разных подходов человеком, который проверял, как всё это работает на практике в разных операционных системах.
Для желающих просветиться — добро пожаловать под кат.
Читать дальше →
Всего голосов 161: ↑159 и ↓2 +157
Просмотры 16K
Комментарии 53

jQuery CoreUISelect — плагин для стилизации селекта

Разработка веб-сайтов *JavaScript *jQuery *
На Хабре уже проскальзывали обзоры плагинов для стилизации селекта (раз и два)

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



Итак, задача — сделать плагин с блэкджеком и ш… для стилизации селекта, который по максимуму повторяет поведение стандартного. А это навигация с клавиатуры, автоподгонка ширины дропдауна, поддержка optgroup, автокомплит и самое главное полная кастомизация, включая скроллбар*.
Читать дальше →
Всего голосов 63: ↑57 и ↓6 +51
Просмотры 19K
Комментарии 61

Оптимизация производительности SQL Server с использованием индексов

SQL *Microsoft SQL Server *
Из песочницы

Введение


Как известно, индексы повышают производительность аналогично оглавлению или предметному указателю в кнгие. Прочитав несколько статей в интернете и пару глав из книжек, хотелось бы узнать, насколько индексы помогают увеличить скорость выборки данных из SQL Server. Рассмотрим на примере.
Читать дальше →
Всего голосов 17: ↑7 и ↓10 -3
Просмотры 70K
Комментарии 49

Замена стандартных селектов в браузере

JavaScript *jQuery *
Selectimus


На текущем проекте некоторое время назад стала задача по унификации селектов во всех браузерах. Нужно было изменить их так, чтобы при одинаковом отображении они внешне оставались близкими к стандартным но при этом имели возможность гибкой настройки средствами CSS. Поискав готовые библиотеки, на тот момент ничего подходящего не нашел и решил сделать свой. Взял за отправную точку дизайн близкий к стандартному, плюс замена скроллбара, со стандартного системного на свой, также одинаковый во всех браузерах. Реализован скрипт в виде jQuery плагина. Требуемая версия jQuery – 1.5+.
Читать дальше →
Всего голосов 25: ↑11 и ↓14 -3
Просмотры 13K
Комментарии 62

Тонкости AngularJS: select внутри шаблона директивы

JavaScript *Angular *
Эта статья будет описывать решение одной конкретной задачи, а также на примере показывать как работает $transclude.

Задача такая: сделать директиву, обертку для select-а. Предположим, что мы хотим одним тегом добавлять сразу и селект и label к нему (потом можно будет туда добавить ошибки заполнения, но мы для простоты не будем этого делать). В общем то, на первый взгляд выглядит все просто.

Сделаем директиву и назовем ее field. Использовать будем так:

<field title="Цвет" type="select" ng-model="selectedColor" options="color.id as color.name for color in colors"></field>
Читать дальше →
Всего голосов 26: ↑20 и ↓6 +14
Просмотры 23K
Комментарии 9

Мультиселект и автокомплит на AngularJS

Разработка веб-сайтов *JavaScript *Angular *
Со списками множественного выбора на Ангуляре всегда было неважно. Существующие решения либо обертки над jQuery-плагином, либо выглядят как не пойми что, либо просто корявы. И у всех естественно особое уникальное АПИ, как будто пользователям делать больше нечего как вникать в ход мыслей разработчиков каждого плагина. Меня такое положение дел не устроило, поэтому написал свой велосипед. Спустя год он дозрел до публикации.

Та-дам! (и забавная история вконце)
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры 24K
Комментарии 71

Параллельная обработка большого селекта в нескольких сессиях

Блог компании Samtrest Oracle *Java *SQL *
Представьте: есть селект, который возвращает записи, каждую из которых нужно обработать, и то ли много записей, то ли обработка каждой записи занимает много времени, а процесс обработки одной записи не зависит от процессов других записей.
Классический пример для того, чтобы задействовать многопоточность или в случае баз данных выполнять обработку в нескольких сессиях. В Оракле для этого используется hint /*+ parallel() */ и pipelined functions. Это здорово, но если у вас Oracle standard edition(где parallel не работает) или вы хотите обработать не каждую запись по отдельности(из соображений, что лучше накопить работу, а потом в bulk, одним ударом, выполнить), а поделить весь вывод селекта на куски и каждый обработать отдельно?
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры 17K
Комментарии 9

select / poll / epoll: практическая разница

Блог компании Инфопульс Украина Системное программирование *Сетевые технологии *C *Разработка под Linux *
Перевод
При проектировании высокопроизводительных сетевых приложения с неблокирующими сокетами важно решить, какой именно метод мониторинга сетевых событий мы будем использовать. Их есть несколько и каждый хорош и плох по-своему. Выбор правильного метода может быть критически важной вещью для архитектуры вашего приложения.

В этой статье мы рассмотрим:

  • select()
  • poll()
  • epoll()
  • libevent
Читать дальше →
Всего голосов 60: ↑55 и ↓5 +50
Просмотры 50K
Комментарии 65

Серия MicroSD, созданная с чистого холста

Блог компании Kingston Technology Разработка под Android *Смартфоны Фототехника Настольные компьютеры
Вот казалось — SD-карты памяти. Изобретены лет 20 назад, начали продаваться — чуть позже, эксплуатируются повсеместно, дважды уменьшались в размерах — сперва до Mini-формата, а затем и до Micro. За время жизни выросли по объёму ~ в 2 000 раз, чего ещё желать? Правильно, увеличения скорости работы. И разумных цен. И то, и другое есть у новых линеек Kingston. А ещё в них наконец навели порядок — вместо десятка вариантов осталось всего три. Заманчиво?


Читать дальше →
Всего голосов 26: ↑21 и ↓5 +16
Просмотры 27K
Комментарии 60

Нельзя так просто взять и написать SELECT, если вендор не разрешает… но мы таки напишем

Ненормальное программирование *Java *SQL *Алгоритмы *NoSQL *
Tutorial

TL;DR: GitHub://PastorGL/AQLSelectEx.


Aerospike AQL SELECT


Однажды, ещё не в студёную, но уже зимнюю пору, а конкретно пару месяцев назад, для проекта, над которым я работаю (нечто Geospatial на основе Big Data), потребовалось быстрое NoSQL / Key-Value хранилище.


Терабайты исходников мы вполне успешно прожёвываем при помощи Apache Spark, но схлопнутый до смешного объёма (всего лишь миллионы записей) конечный результат расчётов надо где-то хранить. И очень желательно хранить таким образом, чтобы его можно было по ассоциированным с каждой строкой результата (это одна цифра) метаданным (а вот их довольно много) быстро найти и отдать наружу.

И вот какая вышла история...
Всего голосов 44: ↑42 и ↓2 +40
Просмотры 14K
Комментарии 46
1