Pull to refresh
68
0
Send message

Вкусный CSS: Sass + Compass

Reading time2 min
Views70K

Что такое Haml/Sass?


Haml (xHTML Abstraction Markup Language) это язык разметки для упрощённой генерации xHTML. В свою очередь эквивалент Haml для css — это Sass (Syntactically Awesome StyleSheets).

В данной статье я расскажу чем примечателен Sass. И с помощью чего sass-файл можно скомпилировать в css.
Читать дальше →
Total votes 55: ↑47 and ↓8+39
Comments78

Улучшаем формы или Веб-Восемь-Ноль-Сто-Три

Reading time13 min
Views1.4K
Итак, мы выбрали браузер вместо отдельно стоящего толстого клиента. Пользователь очень хочет вводить данные. Однако, обычные формы плохие. Потому, что:

Читать дальше →
Total votes 65: ↑42 and ↓23+19
Comments52

Мультиязычность

Reading time1 min
Views8.4K
Коллеги,

а кто как решает проблемы мультиязычности контента? с учётом SEO конечно и всех прочих рюшечек!

Мои основные постулаты это:

1) Разные языки на разных поддоменах (en.mainsite.com de.mainsite.com mainsite.com ––> default)
2) Автоматический подбор языка клиенту в первый визит (подбор либо по базе данных IP либо по языку броузера)
3) ЧПУ c спецификой языка
4) Весь контент в обной СУБД
5) Все media (картинки и прочее) живут на отдельном поддомене media.site.com
6) В шкурке языковая привязка идёт через языковой файлик (подгружается в шаблон) — из имени поддомена легко просчитать какой языкой файл использовать (кеш — уже отдельная тема, но тоже реализуется)
Total votes 18: ↑10 and ↓8+2
Comments35

Suggest в Google — никакого аякса

Reading time1 min
Views1.6K
Честно говоря, у меня, давно сложилось впечатление, что если клиент (в данном случае броузер) что-то должен с сервера забирать без перезагрузки страницы, то это обязательно должен быть AJAX XMLHttpRequest. Ткнул куда-то пользователь, сработало событие, сгенерировался AJAX XMLHttpRequest-запрос, пришел с сервера ответ, коллбэк обработал его и пользователь что-то увидел.

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

Читать дальше →
Total votes 103: ↑65 and ↓38+27
Comments94

Личный тайм-менеджмент

Reading time9 min
Views93K
Почитав недавний топик про лягушек я понял, что Хабрасообщество не очень хорошо ориентируется в вопросах тайм-менеджмента и многие никогда не занимались построением своей тайм-системы.

Поэтому я попробую исправить этот недочёт.

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

Welcome!

Читать дальше →
Total votes 194: ↑177 and ↓17+160
Comments155

Первый взгляд: Silverlight 3 – бесплатная книга

Reading time1 min
Views1K
В конце прошлого года мы анонсировали бесплатную книгу на русском языке “Введение в Microsoft Silverlight 2”. Это перевод известной книги Лоуренса Морони и комплексное руководство по данной технологии.

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

На конференции MIX09 было представлено бесплатное дополнений к этой книге с описанием новых возможностей третьей версии. На российской конференции ReMIX09 на прошлой неделе мы анонсировали перевод этого дополнения на русский язык, загрузить которое могут все желающие с сайта мероприятия. Авторизация доступна через OpenID, LiveID или логин/пароль.

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

Мы надеемся, что данное руководство вместе с книгой по Silverlight 2 позволит всем желающим освоить интересную технологию и подготовиться к выходу финальной версии Silverlight 3.
Total votes 52: ↑33 and ↓19+14
Comments42

8 Характеристик удачного пользовательского интерфейса

Reading time5 min
Views18K
Существует много информации о различных методах проектирования пользовательского интерфейса, которую вы можете использовать, создавая веб-сайт или интерфейс программы.
Я составил список из 8 характеристик, которые считаю залогом успешного пользовательского интерфейса.
Читать дальше →
Total votes 65: ↑59 and ↓6+53
Comments85

Новая версия проблем от AOL

Reading time2 min
Views4.5K
Вот снова повторяется история недельной давности. Контакт-лист в оффлайне, а милое «ICQ System» говорит мне, что версия протокола 5.1 is no longer supported.

upd: Судя по комментариям хабрапользователей, проблема наблюдается у многих.
Страдают пользователи из России и Украины.
Выявлены проблемы на Adium, Pidgin. Miranda, QIP, R&Q в строю.

upd:
Новая версия QIP Infium: qip.ru/download/qipinfium9024.exe (прямая ссылка на скачивание с оф.сайта)
Новая версия QIP: qip.ru/download/qip8082.exe (прямая ссылка на скачивание с оф.сайта)

В Pigdin работает благодаря статье habrahabr.ru/blogs/ubuntu/49865

upd: Перенес в IM, спасибо! Ищем решения совместно.

Читать дальше →
Total votes 151: ↑108 and ↓43+65
Comments479

Завершился World Final ACM ICPC

Reading time1 min
Views977
В Стокгольме подведены итоги XXXIII финала Чемпионата Мира по программированию.

Команда СПбГУ ИТМО получает золотые медали и становится чемпионом мира и Европы 2009 года!
Команда Tsinghua U заняла 2 место и получила золотые медали.
Команда СПбГУ заняла 3 место и получила золотые медали.
Команда Саратовского ГУ заняла 4 место и получила золотые медали.
Команда Oxford U заняла 5 место и получила серебряные медали.
Команда Zhejiang U заняла 6 место и получила серебряные медали.
Команда MIT заняла 7 место и получила серебряные медали.
Команда Алтайского ГТУ заняла 8 место и получила серебряные медали.
Команда Warsaw U заняла 9 место и получила бронзовые медали.
Команда U Waterloo заняла 10 место и получила бронзовые медали.
Команда Тбилисского ГУ заняла 11 место и получила бронзовые медали.
Команда Carnegie Mellon U заняла 12 место и получила бронзовые медали.

Чемпионом Африки и Ближнего Востока стала команда German University in Cairo.
Чемпионом South Pacific стала команда Melbourne U.
Чемпионом Южной Америки стала команда?..
Чемпионом Северной Америки стала команда MIT.
Чемпионом Азии стала команда Tsinghua U.
Чемпионом Европы стала команда СПбГУ ИТМО.
Сейчас в Стокгольме начался финал студенческого чемпионата мира по программированию.

Условия задач здесь: http://cm2prod.baylor.edu/resources/pdf/2009Problems.pdf

Команда СПбГУ ИТМО стала второй раз подряд чемпионами, притом разными составами команд!
Total votes 8: ↑6 and ↓2+4
Comments8

Инфраструктура современного офиса — 3

Reading time6 min
Views9.9K
Что-то я затянул с очередной серией, но тому были причины: от кучи неотложных дел на работе, до раненого автомобиля :(
Ладно, в этот раз — организация внешних вводов, вопросы построения телефонии и некоторые аспекты построения Wi-fi. Как и в предыдущих сериях, я не претендую на глубину раскрытия техники, стремясь лишь показать основные варианты развития элементов инфраструктуры. Предыдущие серии про инфраструктуру здесь и здесь (а здесь — бонус трек про оборудование Allied Telesis).

Провайдерские вводы


Существует целый спектр возможных решений, каждое из которых следует принимать руководствуясь масштабом организации, бюджетом и внешними факторами. Рассмотрим основные по пунктам:
  1. Вы — небольшая компания (до десяти человек), заезжаете в подвал жилого дома или, пуще того, в квартиру на первом этаже жилого здания.
    В такой ситуации с выбором провайдера привередничать не приходится и надо рассчитывать на наличие в здании местного провайдера (если их несколько — вам сильно повезло, конкуренция повышает уровень сервиса). Можно пытаться экономить, оформляя интернет на физическое лицо, однако, в таком случае, стоит быть готовым к тому, что в прайм-тайм местечковый провайдер решит, например, «поменять сетевое оборудование», что приведет к неприятному простою в работе. Целесообразно в такой ситуации предусмотреть резерв хотя бы в виде мобильного интернета (Skylink, Yota, Edge/GPRS) — критически важное письмо в таком случае, пусть медленно, но доползёт. Телефония в такой ситуации, как правило, исполняется в виде «медно-волоконного канала» городского провайдера.
  2. Вы все еще небольшая компания, но сидите в гараже (бытовке, ларьке, домике на дереве, здании на территории промзоны).
    Все безрадостно — ваш единственный выход — радиоканал до ближайшей точки присутствия скоростного интернета, либо, если шансов добить по радио нету — интернет через сотовый телефон. Если шансы все же есть, запасайтесь дальнобойными направленными антеннами и шагайте в ближайшее место, где может быть интернет. В моей практике был случай, когда автосервис около года работал через стрим, который находился в двух километрах от. Проблемы в таком случае те же, что и в предыдущем (нестабильность местного кабельного провайдера), правда, в случае использования длинного Wi-Fi линка вы еще и от погоды зависеть будете. В сильный дождь или снегопад перебои — не редкость..
  3. Вы заезжаете в бизнес-центр.
    Все уже лучше, но не без специфики: как правило владельцы бизнес центров уже договорились с одним-двумя большими провайдерами, что ограничивает ваш выбор (притащить своего провайдера удастся только если вы — очень большая компания с серьезной арендной ставкой). Плюс ситуации в том, что канал организуют быстро, и, скорее всего без проблем. Явный минус — один — монополисты в здании тарифы могут воротить очень грустные.
  4. (моя ситуация) Вы заезжаете в отдельно стоящее здание.
    Геморрой страшный, но при должном подходе получится очень красиво :) Подробно об этом сценарии — чуть ниже.

Итак, отдельно стоящее здание. Учитывая, что вы — хозяин положения, при организации провайдерских вводов стоит учитывать следующее:
  • Отказоустойчивость (любой более-менее серьезный маршрутизатор умеет выбирать живой канал). По возможности закладывайте два независимых канала от независимых провайдеров;
  • Дороговизна (более серьезный провайдер будет просить более серьезных денег). При этом более дешевый провайдер будет, скорее всего, грешить всеми детскими болезнями домовых сетей — падения канала в течение дня, « плановые профилактические работы» в прайм-тайм и прочие прелести
  • Время подключения. Если в предыдущих сценариях вас скорее всего подключили бы в течение дня-двух, то построение индивидуального канала может стать вопросом нескольких месяцев (тут и согласования с городскими кабельными службами, и неповоротливость больших провайдеров, и проблемы со строителями..)

И все? А где же телефония и WiFi? В конце-концов и про вводы можно поподробнее..
Total votes 44: ↑40 and ↓4+36
Comments50

Инфраструктура современного офиса — 2

Reading time8 min
Views18K
Disclaimer: я не претендую на всю глубину изложения. Я принципиально опускаю моменты, требующие глубокого погружения в предмет, поскольку этот цикл статей не является энциклопедией инфраструктурщика. Кому надо больше — задавайте вопросы или ходите в ваш любимый поисковик :) Да, я лично готов ответить на все вопросы по существу. :)

Да, эта статья — продолжение цикла про организацию инфраструктуры современного офиса. Начало — здесь. Подоспело продолжение про телефонию, wi-fi и планирование провайдерских вводов

Как и в прошлый раз, при написании этой статьи я осознаю, что планка по объему материала взята слишком высоко — поэтому, в этот раз остановимся на вопросах организации СКС и общих аспектах организации сети (ЛВС). В следующий раз, стало быть, дойдем до беспроводных решений, телефонии и организации внешних вводов. В качестве необъявленного ранее бонус-трека последует отдельная статья о типовых решениях построения сети на оборудовании Allied Telesis.

СКС

Для специалиста по ИТ структурированная кабельная система является, по сути, базисом для всех систем, обеспечивающих функционирование офиса с точки зрения информационных технологий. Сама по себе СКС — совокупность пассивного коммутационного оборудования, обеспечивающего физическую взаимосвязь между геометрически распределенными элементами офиса. В состав СКС входит, в общем случае, следующее:
  1. Кабельная продукция (витая пара, оптические кабели, коаксиальные кабели)
  2. Коммутационные и кроссовые панели (патч-панели, плинты, муфты)
  3. Оконечные (со стороны пользователя) устройства — всевозможные розетки и разъемы. Сюда же, кстати, стоит отнести и патч-корды, соединяющие вышеуказанные розетки непосредственно с клиентским оборудованием.

В настоящее время, СКС регламентируется рядом стандартов:
  • EIA/TIA-568В Commercial Building Telecommunications Wiring Standard (американский стандарт)
  • ISO/IEC IS 11801 Information Technology. Generic cabling for customer premises (международный стандарт)
  • CENELEC EN 50173 Information Technology. Generic cabling systems (европейский стандарт)

В общем случае, проект вашей СКС должен соответствовать как минимум одному из указанных стандартов. К слову, наиболее употребимые формулировки категорий СКС — «5», «5e», «6» определены в американском стандарте. Если вы не подключены к интернет по WiFi, посмотрите на маркировку кабеля, который соединяет ваш компьютер с сетевой розеткой на стене — скорее всего, там будет присутствовать либо «5e», либо «6». По большому счету, от категории СКС зависит только теоретическая скорость передачи данных по кабелям, но об этом — чуть ниже.

А почему, кстати, сразу не воткнуть кабели в свитч — спросит въедливый читатель..

И почему же?
Total votes 79: ↑73 and ↓6+67
Comments58

Инфраструктура современного офиса — 1

Reading time6 min
Views14K
Как известно, сейчас все находятся в состоянии, именуемом «Финансовым кризисом». Пустующие офисы, безработица и все такое… Однако, существует надежда, что так длиться вечно не может, поэтому когда-нибудь и вашей конторе потребуется заехать в новый, красивый, оборудованный по последнему слову техники офис.Этот цикл статей — для тех, кто хочет понимать, из чего состоит современный офис с точки зрения ИТ-инфраструктуры — менеджеры по ИТ, руководители ИТ, старшие администраторы и просто интересующиеся. Я привожу здесь то, с чем столкнулся в процессе работы лично. По сути — предлагаю вам не набивать моих шишек :) Эта статья открывает цикл, вторая часть (про СКС и ЛВС) уже опубликована, как и продолжение про телефонию, wi-fi и планирование провайдерских вводов.По факту сбора и систематизации материала, выясняется, что в одну статью я, очевидно, не помещусь в связи с большим количеством информации, которую хочется донести. В этой статье я попробую раскрыть состав инженерных систем, составляющих работу офиса и описать один из подходов к проектированию таких систем. Полагаю, всего получится четыре статьи, которые я буду публиковать еженедельно. Буду рад соавторам, и, разумеется, возникающим вопросам.

-1. Из чего состоит современный офис?

Что же, вы (руководство компании, ваш начальник, вы сам, как руководитель своего бизнеса) решили, что пора менять офис. Поначалу, решение вызывает легкий трепет, ибо предполагает невероятный объем работы — планирование, различные согласования, надзор за исполнителями… Самое ужасное — deadline, как правило, прописан крайне жестко, и риск опоздания является напрямую финансовым риском.С другой стороны, правильный подход обеспечит вам, как минимум, исключительное удовольствие от результатов вашей работы а как максимум еще и понимание того, что все сделано правильно.Следует понимать, что как и в разработке любой сложной системы, при работе над инженерными системами здания, максимальное внимание следует уделять при планировании и проектировании, поскольку любая переработка в фазе, близкой к завершению будет крайне дорогостоящим удовольствием (особенно, при понимании того, что затрат можно было избежать при грамотном проектировании).Непосредственно, состав инженерных систем, формирующих работу здания с точки зрения IT-специалиста (слаботочных систем), включает в себя, в общем случае, следующие подсистемы:
  1. СКС — структурированная кабельная система. Под этим понятием, в первую очередь, подразумевается кабельная структура, обеспечивающая работу вычислительной сети и телефонии офиса (раскрытие темы — в статье №2)
  2. ЛВС, телефонная система и WiFi — активное сетевое оборудование (коммутаторы, маршрутизаторы, точки доступа и прочее) и телефонная станция. Я объединяю эти пункты, поскольку современная телефонная станция, как правило, содержит функции для обеспечения работы телефонов по ip, и, вообще говоря, прослеживается тенденция к тому, что все большее количество установленных АТС заточены, в первую очередь, на работу по ip (говорим о масштабах офиса от 10-15 постоянных рабочих мест) (раскрытие темы — в статье №2)
  3. Организация внешних вводов. Вопрос, скорее, строительный, но вы, как ИТ-специалист, должны четко понимать, как именно будет, например, осуществляться подключение вашей серверной к внешним коммуникациям (раскрытие темы — в статье №2)
  4. Система пожаротушения и противопожарного оповещения (раскрытие темы — в статье №3)
  5. Системы обеспечения физической безопасности: система контроля доступа, система оповещения о проникновении (в т.ч., и оповещение служб пультовой охраны о внештатных ситуациях), система видеонаблюдения (раскрытие темы — в статье №3)
  6. Система телевещания внутри офиса (например, ip-вещание или банальный НТВ+ в кабинетах руководства и переговорных) (раскрытие темы — в статье №3)
  7. Системы «интеллектуального здания» — те самые, которые будут включать свет в кабинетах руководителей по щелчку пальцев, поддерживать оптимальный климат, экономить электроэнергию, применяя всякие умные алгоритмы и так далее. (раскрытие темы — в статье №4)
  8. Система энергоснабжения всего перечисленного. Без электричества, увы, никуда поехать не удастся. К сожалению, личного опыта не везде хватает, посему отсылаю к первой части статьи Novikov« Электрика в малом и среднем офисе». Может, он и на следующие части разродится :)Я, впрочем, включу свои соображения на этот счет в качестве бонус-трека к статьям, наравне с отдельными элементами системы кондиционирования (применительно к серверным помещениям).
Я намеренно включил в этот список вещи, которые не всегда поддерживаются ИТ-службой офиса, в связи с рядом факторов:
  1. Вы (и вряд ли кто-то еще) будете обеспечивать координацию исполнителей по слаботочным системам; вообще говоря, вам сильно повезет, если подрядчик по всем слаботочным системам будет один — так намного проще. Однако, высока вероятность того, что в силу бюджетных или иных соображений, придется выбирать между несколькими или разделять фронт работ между ними
  2. (следствие из первого пункта) Вы и никто другой будете отвечать перед руководством (или перед собой, да) за результат работы; Естественно, что удовлетворенность руководства и вас будет напрямую зависеть от качества и количества реализованных «хотелок»
  3. В конце концов, современные инженерные системы, как правило высоко интегрированы с вычислительной техникой — многие системы уже напрямую, например, зависят от наличия ip и активно его используют; кроме того, зачастую многие аспекты управления инженерными системами завязаны на единый пульт управления, например, рабочее место управления системами безопасности.
А дальше?
Total votes 36: ↑31 and ↓5+26
Comments15

Jabber-бот для Openfire за час

Reading time10 min
Views16K


Вот уже порядка двух лет я занимаюсь разработкой ботов для ICQ. После ряда недавних событий, из-за которых ICQ-боты часто оказывались неработоспособными, а также после статьи Знакомство с jabber ботами, у меня возникло стойкое желание изучить вопросы, связанные с разработкой ботов для Jabber.
В данном посте я хочу поделиться с вами своим первым опытом в данной области. Расскажу как с нуля, потратив всего один час времени, написать простого Jabber-бота.
В качестве платфомы для разработки бота я выбрал Openfire. На выбор повлияло то, что Openfire написан на Java (изучать что-нибудь типа Python совершенно не хотелось). Плагинная структура Openfire позволяет быстро и удобно прикрутить к нему функционал бота. Кроме того, Openfire прост в настройке, и к тому времени уже был установлен в качестве моего jabber-сервера.
Итак, приступим
Total votes 19: ↑16 and ↓3+13
Comments9

Полезные инструменты для web-разработчиков

Reading time2 min
Views2.3K
Хотелось бы просто поделиться ссылкой на простейшие инструменты, которые могут помочь web-разработчикам, облегчив их рутинные процедуры.

MailLink


Почти год назад была необходимость защитить большое количество адресов электронной почты от роботов по сборке мейлов, для последующей рассылки по ним спама. По этому поводу быстро набросал страничку, которая позволяет кодировать адреса посредством JavaScript. За основу был взят алгоритм из плагина шаблонизатора Smarty (для особо пытливых могу выложить реализацию на РНР отдельно).

Конечно у него есть и свои минусы:
  1. адрес будет показываться только при всключенном JavaScript
  2. если у робота есть поддержка JS, то он может распознать скрываемый e-mail
Насчет первого, то скорее всего выключенный JS — это паранойя во времена веб два нуль и выше. Насчет второго, то как показала практика — писателям таких пауков очень лень пытаться распознать закодированные адреса, когда на просторах сети полным полно не закодированных. Так что данных алгоритм работает в большинстве, чем 99.5% случаев.

Читать дальше →
Total votes 100: ↑83 and ↓17+66
Comments34
12 ...
86

Information

Rating
Does not participate
Registered
Activity