Search
Write a publication
Pull to refresh
0
0

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

Send message

Дзен-режим работы с деревом комментариев

Reading time5 min
Views1.7K
Статья для веб-дизайнеров и юзабилистов, перед которыми стоит цель сделать удобное юзабилити форума с древовидной структурой и сложными обсуждениями, угадать и отыскать структуру своих форумов высокого уровня сложности, выполнить форум в доступной технике CSS. Приведён пример такого форума.

Для удобства работы со сложными обсуждениями в теме предлагается несколько реализованных на CSS техник обработки.
1) изображение ветвящихся узлов;
2) режим скрытия всей метаинформации, кроме имени (и бледного аватара с текстом сообщений);
3) режим скрытия всего, кроме бледных аватаров и текста (дзен-режим);
4) режим показа корневой ветви обсуждения с метаинформацией (оценки, ссылки);
5) показ одной ветви с полной метаинформацией (дата, автор, кнопка ответа).

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

-prefix-free: изящный и миниатюрный «костыль» на JavaScript, избавляющий от необходимости вспоминать и перечислять префиксы свойств CSS3 для разных браузеров

Reading time4 min
Views18K
Всякому такому автору сайта, который когда-либо снабжал своё детище стилями CSS3, уж конечно доводилось сталкиваться с необходимостью многократно повторять одно и то же свойство CSS3 и давать ему одно и то же значение, но указывая перед именем свойства различные префиксы разработчиков браузеров (vendor prefixes).

Эти префиксы необходимы для того, чтобы во браузерах работали те свойства CSS3, которые ещё не до конца стандартизированы: считается, что отдельное задание свойства для каждого из нынешних браузеров поможет в дальнейшем обойти возможное различие между нынешней реализацией свойства в каждом конкретном браузере и окончательными требованиями страндарта. Во браузере Mozilla Firefox для этой цели употребляется префикс «-moz-», в Google Chrome и в Apple Safari (и в других браузерах на основе Webkit) — префикс «-webkit-», в Опере — префикс «-o-», в IE — префикс «-ms-», а в Konqueror (и в наиболее ранних версиях Safari) — префикс «-khtml-».

На практике, однако же, автор сайта чаще всего использует своего рода «общий знаменатель» возможностей нескольких браузеров — значения свойств CSS3, работающие одинаково (или почти одинаково) во всех современных браузерах. Да и записываются все они также одинаково. Указание префиксов сводится поэтому ко многократному повторению свойств. Например, чтобы придать нескольким кнопкам jQuery-плагина ColorBox закруглённые края и заставить их отбрасывать тень, поневоле придётся записать в CSS вот что:
#cboxPrevious, #cboxNext, #cboxClose {
   -webkit-box-shadow: 0 0 6px #000;
      -moz-box-shadow: 0 0 6px #000;
           box-shadow: 0 0 6px #000;
   -webkit-border-radius: 6px;
      -moz-border-radius: 6px;
           border-radius: 6px;
}

Во-первых, это задалбывает.

Во-вторых, это неэкономично.

В-третьих, всегда существует риск забыть о необходимости указать тот или иной префикс. (В списке «How to avoid common CSS3 mistakes» эта ошибка — на первом месте.)

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

И такое средство появилось — благодаря Lea Verou. Вот оно:

[-prefix-free]

Читать дальше →

Метод html-верстки кнопок с применением псевдоэлементов

Reading time7 min
Views9K
Появлению этой методики способствовала воистину монстрообразная вёрстка элементов страницы на нашем проекте. Подумать только, для отображения одной кнопки требовалось до семи тегов на один элемент.

Выглядело это примерно так:



html
<div class="large_button"><br>  <span class="buttons submit_v2-button clickable"><br>    <i class="left left2"></i><br>    <i class="body"><br>      <b>В архив</b><br>      <i class="end"><br>        <i></i><br>      </i><br>    </i><br>  </span><br></div>

Видно, что запутаться в таком коде проще простого, тем паче, что вариантов кнопок на проекте накопилось не менее 30. Попытка создать такую кнопку на серверной стороне вызывала негодование у коллег «пехапистов».

Поэтому моей негласной задачей стало максимальное упрощение кода.
Читать дальше →

SITH — техника CSS3 для плавной смены изображения

Reading time2 min
Views17K
Доброго времени суток, Хабр!

Хотел бы рассказать Вам, каким образом я добился плавной смены цветов иконок при наведении на них курсора. Подобная проблема часто встречается на Facebook. Если иконка представляет собой синий силуэт на белом фоне, то при наведении курсора оба цвета меняются местами, причём происходит это мгновенно и выглядит немного резко. Мои эстетические чувства были задеты, и я разработал своё решение.

Не встретив на просторах Интернета чего-либо подобного, я взял на себя ответственность назвать этот метод SITH (Soft Image Transition on :Hover) — плавный переход изображения при наведении.

SITH - CSS3 Soft Image Transition on :Hover

Под хабракатом Вы найдёте полное описание техники, весь код, несколько скриншотов и ссылку на демонстрационную версию.
Читать дальше →

Почти идеальная схема мошенничества с использованием Webmoney

Reading time4 min
Views83K
Хочу рассказать о новой схеме мошенничества в рунете, на которую сам чуть не попался.

Задумали мы с другом купить сайт. На специализированном форуме нашли тему с аукционом, сайт понравился, сделали ставку. Автор темы не указал никаких своих контактов, поэтому предполагалось, что дальнейшая связь победителя аукциона и продавца сайта будет осуществляться через личные сообщения форума. Проходит минут 30 и моему другу в аську пишет продавец сайта, уточняя, действительно ли он хочет купить сайт за названную в теме сумму. Получает подтверждение, после чего предлагает приступить собственно к сделке, не дожидаясь результата аукциона, так как деньги нужны срочно.
Читать дальше →

Что почитать по веб-разработке

Reading time3 min
Views236K
Топик Много книг, хороших и разных навёл на мысль сделать похожий каталог наиболее удачных и интересных книг по веб разработке.

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

update: Теперь есть электронные версии книг!

Начнём…
Читать дальше →

Обзор двадцати двух бесплатных шрифтов с сайта Open Font Library: 16 шрифтов с кириллицею + 6 орнаментальных и спецсимвольных шрифтов

Reading time4 min
Views62K
Сегодня я упоминал ужé о трудностях, с которыми сталкивается всякий, кто желает разыскать на сайте Open Font Library шрифты с поддержкою кириллицы. Фильтра по языкам нет; поиск по слову «cyrillic», как dimitrymd успел убедиться, находит только десяток шрифтов.

Я ощущаю поэтому, что есть смысл составить да выложить более полный список тамошних шрифтов, имеющих поддержку кириллицы. Порядок шрифтов будет алфавитным:

  1. ConsolaMono
  2. Crimson
  3. Dataface
  4. Designosaur
  5. Didact Gothic
  6. GNUTypewriter
  7. Grana Padano
  8. Jura
  9. Neocyr
  10. NotCourierSans
  11. Old Standard
  12. Pfennig
  13. Press Start 2P
  14. Sansus Webissimo
  15. Triod Postnaja
  16. VDS

«На закуску» я намерен также обозреть полдюжины шрифтов с различными спецсимволами да орнаментами:

  1. Chess
  2. FivefoldOrnamentsEtc
  3. Futhark Adapted
  4. Knots
  5. UniCons
  6. Web Symbols

Читать дальше →

SQL инъекции. Проверка, взлом, защита

Reading time4 min
Views341K
SQL инъекция — это один из самых доступных способов взлома сайта.
Суть таких инъекций – внедрение в данные (передаваемые через GET, POST запросы или значения Cookie) произвольного SQL кода. Если сайт уязвим и выполняет такие инъекции, то по сути есть возможность творить с БД (чаще всего это MySQL) что угодно.

Как вычислить уязвимость, позволяющую внедрять SQL инъекции?


Довольно легко. Например, есть тестовый сайт test.ru. На сайте выводится список новостей, с возможностью детального просомтра. Адрес страницы с детальным описанием новости выглядит так: test.ru/?detail=1. Т.е через GET запрос переменная detail передаёт значение 1 (которое является идентификатором записи в табице новостей).
Читать дальше →

Анимация спрайтов при помощи CSS, JS и Canvas

Reading time4 min
Views25K
Всем привет. Пару дней назад совершенно случайно наткнулся в залежах дисков на «Космические рейнджеры 2: Доминаторы». Устанавливать не стал, так как сейчас не хватает времени, чтобы как следует в неё погрузиться. А решил посмотреть, что на диске находится. Посмотрел «Фан-Арт» и там увидел программку для ковыряния ресурсов рейнджеров. Вот и решил посмотреть, из чего же сделаны наши доминаторы. Покликав немного, нашел файлики с анимацией в формате GAI. Начал любоваться той анимацией. Захотел их сохранить в «гифки», но не как не давала та программка сохранить анимацию? Можно либо сохранить текущий кадр, либо все файлы в PNG. Я решил сохранить все кадры, а их было — 150. Картинки все есть, а почему бы не сделать с ними ту же анимацию.
Читать дальше →

Английский для айтишника? Легко!

Reading time2 min
Views183K
Эта тема не относится к IT напрямую, но все знают, что без нее никуда. К сожалению, далеко не у всех есть возможность изучать английский с преподавателями. Ну что ж, попробуем заняться этим дома и с максимальной отдачей!
Читать дальше →

Создание сайта: мечты и реальность. Или за что платит заказчик

Reading time3 min
Views8.5K


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

Читать дальше →

Некоторые функции, которые я использую в своих проектах

Reading time4 min
Views2.6K
Доброго времени суток, Под катом предлагаю Вам ознакомиться с функциями на PHP, которые я использую в большинстве своих проектов. В статье мы получим погоду для любого города мира при помощи Google, получим Whois и favicon домена, количество ретвитов определенной страницы и сделаем генератор ссылок на профили в твиттере, сделаем скриншот сайта, соберем css в 1 файл как у яндекса, распакуем zip и преобразуем картинку в ASCII-код.
Прошу под кат

Характерные особенности языка Dart

Reading time8 min
Views20K
Dart был разработан так, чтобы выглядеть знакомо для программистов на таких языках, как Java и JavaScript. Если постараться, можно писать на Dart практически так же, как на одном из них. Если очень постараться — можно даже превратить его в Фортран, но при этом вы упустите множество неповторимых и классных особенностей Dart.

Эта статья поможет вам научиться писать код в стиле Dart. Так как язык всё ещё активно развивается, многие идиомы тоже могут измениться в будущем. В некоторых местах мы пока сами не определились, что является наилучшей практикой (может быть вы нам поможете?) Тем не менее, вот несколько моментов, на которые стоит обратить внимание, чтобы переключить свои мозги из режима Java или JavaScript в режим Dart.
Читать дальше →

Еще раз про IP-адреса, маски подсетей и вообще

Reading time7 min
Views1.5M
Чуточку ликбеза. Навеяно предшествующими копипастами разной чепухи на данную тему. Уж простите, носинг персонал.

IP-адрес (v4) состоит из 32-бит. Любой уважающий себя админ, да и вообще айтишник (про сетевых инженеров молчу) должен уметь, будучи разбуженным среди ночи или находясь в состоянии сильного алкогольного опьянения, правильно отвечать на вопрос «из скольки бит состоит IP-адрес». Желательно вообще-то и про IPv6 тоже: 128 бит.

Обстоятельство первое. Всего теоретически IPv4-адресов может быть:
232 = 210*210*210*22 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.
Ниже мы увидим, что довольно много из них «съедается» под всякую фигню.


Записывают IPv4-адрес, думаю, все знают, как. Четыре октета (то же, что байта, но если вы хотите блеснуть, то говорите «октет» — сразу сойдете за своего) в десятичном представлении без начальных нулей, разделенные точками: «192.168.11.10».

В заголовке IP-пакета есть поля source IP и destination IP: адреса источника (кто посылает) и назначения (кому). Как на почтовом конверте. Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника.
Читать дальше →

10 практичных WordPress шорткодов

Reading time5 min
Views44K
Шорткоды – пользовательские функции, которые сохраняют время при написании поста в WordPress. Сегодня я хочу представить Вам 10 самых используемых WordPress шорткодов.
Читать дальше →

Обзор свежих материалов, август 2011

Reading time5 min
Views840
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-июль 2011.



Читать дальше →

Оформление изображений на CSS3

Reading time8 min
Views70K
При использовании свойств box-shadow или border-radius непосредственно на изображении, браузеры могут некорректно отображать заданные нами CSS стили, из-за чего внешний вид блока будет существенно отличаться от задуманного. Однако если использовать изображение в качестве фона, то этой проблемы можно запросто избежать. Из статьи вы узнаете, как с помощью jQuery сделать идеально закругленные углы у изображений, а так же какие еще способы оформления возможны с помощью таких свойств как box-shadow, border-radius и transition.
Читать дальше →

Информационная опасность

Reading time2 min
Views4.8K

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

Не существует объективных методов оценки безопасности информационной системы. Все существующие методы могут говорить либо об опасности (так нельзя, это нельзя, тут дыра), либо говорить о соответствии системы каким-то требованиям какого-либо сертифицирующего органа… И вот тут, внимание, следите за руками, соответствие этим требованиям называют критериями безопасности. Мол, прошла сертификацию на SFOD-12, значит безопасна. Главное — иметь бумажку. А авторам этой бумажки — надуться посолиднее, чтобы авторитетом доказать, что безопаснее некуда.

Причина — в неконструктивном смысле слова «безопасность». Что такое «безопасная система»? Это система, у которой нет части функционала (например, которая НЕ даёт доступа к информации, или которая НЕ предоставляет какую-то функцию). Таким образом, безопасная система, это система, в которой КРОМЕ описанного в ТЗ нет НИКАКОГО ДРУГОГО функционала.

Если перевести на язык математики, то мы берём конечное множество функций (техническое задание), высчитываем его дополнение. Дополнение до чего? Во, вот это и есть главный вопрос, который не описывает современная информационная безопасность. Дополнение до множества, которое нам не известно, которое бесконечное (или если и конечное, то за пределами обозримой для нас границы). Мы описываем в этом бесконечном множестве отдельные типы атак, дурных конфигураций, ошибок проектирования и т.д., но это всё равно, что перечислять отрезки на множестве вещественных чисел.

Читать дальше →

История одного взлома или как пытались увести всё, но не увели ничего

Reading time6 min
Views13K
Цель данного топика придать огласке действия мошенников пытавшихся обмануть не не только простых пользователей, но и навредить честным людям, которые вывели их на чистую воду. Злоумышленники боятся огласки и известности, так как это сильно навредит их планам. Публикую этот пост по просьбе друга и основателя проекта macpages.me Наиля Янгазова. Далее повествование идет от его имени.

Предисловие


У меня есть моя основная почта на сервисе MobileMe, который кстати будущим летом уже станет историей. Я был наивен и никогда не использовал сложные, сгенерированные пароли в сети и все было здорово. Однако, в конце 2010 года, работая за компьютером неожиданно получаю сообщение о восстановлении пароля на почте, процедуру сам не заказывал. Естественно, понимаю, что почту хотят увести, но успеваю перед злоумышленником по этой ссылке сам сменить пароль. С тех пор я использую только пароли, сгенерированные софтом, например 1Password на Mac.

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

Читать дальше →

Установка GSM-сигнализации на даче

Reading time6 min
Views62K
Для того, чтобы знать о том, что происходит с дачным домом в моменты отсутствия, я решил установить там охранную систему. Хочу поделиться со всеми этим опытом и деталями ее выбора и установки. Думаю, что многим это окажется полезным.

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

image
Головное устройство сигнализации.

В интернетах я прочитал про GSM-сигнализации и стал искать сайты продавцов. В результате нашлась одна контора, которая предлагала несколько головных блоков на выбор и к ним – всякие датчики и прочую комплектуху. Цена головного устройства в 4000 рублей устроила меня полностью и я стал прикидывать то, что требуется для покупки.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity