Как стать автором
Обновить
0
Александр @InfernoZread⁠-⁠only

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

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

Введение в CSS3 Grid Layout. Работаем с сетками

Время на прочтение10 мин
Количество просмотров113K
Update: Часть сведений в данной статье устарели. Рекомендую свежие материалы на css-live.ru.

Введение


intuition game grid

Модуль CSS3 Grid Layout — это один из самых интересных, на мой взгляд, модулей в семействе CSS3. Официальная история модуля в виде черновика спецификации насчитывает сегодня чуть менее года. О предварительном анонсе еще с названием CSS Grid Alignment на TPAC 2010 Владимир Юнев писал еще в декабре 2010. Надо также отметить, что с чуть другим названием и несколько отличным синтаксисом, но с той же сутью, он был заявлен в качестве WD еще в 2007г. Сегодня работы по доводке модуля идут полным ходом, предварительная реализация уже есть в Internet Explorer 10 и есть надежда, что поддержка новых возможностей также появится в будущих версиях других популярных браузеров.

Зачем нужен Grid Layout?


Задача, которую решает модель CSS3 Grid Layout, очень проста и понятна любому веб-верстальщику (да и не только ему): предоставить удобный механизм расположения контента по виртуальной сетке.

В отличие от старых табличных подходов, основанных на использовании table, здесь не замусоривается семантика документа и представление четко отделено от содержания. В отличие от различных вариаций блочной верстки со становящимися при сколь-нибудь сложной структуре безумными и многоэтажными float'ами в сочетании с вручную просчитанными отступами, здесь описание стилей становится тривиально простым и прозрачным. В отличии от абсолютного позиционирования с привязкой к координатам, здесь сохраняется гибкость. В отличие от популярных сегодня css/js-библиотек для разметки по сетке путем указания соответствующих классов (взять хоть те же bootstrap или yui css grids), здесь не замусоривается привязка классов.

Сплошное удовольствие! Осталось только дождаться широкой поддержки :) Впрочем, если вы планируете делать приложения в стиле Metro для Windows 8 на html/js, ключевые возможности, описываемые в модуле CSS3 Grid Layout, уже работают — и можно двигаться вперед, используя удобные и практичные механизмы.
Читать дальше →

Сверхплавные трансформации для jQuery

Время на прочтение1 мин
Количество просмотров20K
Недавно наткнулся на jQuery Transit, плагин для плавных трансформаций и переходов. Вместо работы с таймерами, плагин использует CSS3 трансформации.

Работает с тем же синтаксисом, что и animate, но вместо этого стоит использовать метод transition.

С более старыми браузерами новые эффекты не работают, а стандартные CSS будут меняться, хотя и без какой-либо анимации. Для того, чтобы откатиться обратно на animate, достаточно использовать следующее:
if (!$.support.transition)
    $.fn.transition = $.fn.animate;

Всего 2КБ.

Blur JS

Время на прочтение1 мин
Количество просмотров17K
Классный jQuery плагинчик может применить blur на любой html элемент.

Работает в canvas используя алгоритм StackBlur.



www.blurjs.com

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

Улучшаем юзабилити за 5 минут

Время на прочтение4 мин
Количество просмотров7.3K
В этой блогозаписи я намерена поделиться несколькими такими советами по увеличению юзабилити сайта, каждый из которых очень лёгок в реализации. Не все они кросс-браузерны, но всё равно они «глазурь на тортике»: читатель и не заметит, что их нет.

1. Отображайте нажатия кнопок и кнопкоподобных ссылок


Мой излюбленный совет. Когда стиль кнопки задаётся в CSS, или когда для отображения необычной кнопки используется рисунок (либо как фон, либо как элемент <img />), то кнопка не реагирует на нажатие во всех или в некоторых браузерах (зависит от ситуации). Вот какой простой уловкою вы можете дать знать посетителю сайта, что он и впрямь нажал на нечто нажимаемое:

.mybutton:active {
   position: relative;
   top: 1px;
   left: 1px;
}

Этим кодом кнопка смещается на 1 пиксел направо и на 1 пиксел вниз, когда её нажимают. Испробуйте: выглядит весьма убедительно.

Есть другие, не менее быстрые варианты: придать границе свойство inset, указать свойству text-indent значение 1px, изменить направление градиентного фона (что можно сделать быстро, если для этого не придётся прибегнуть ко графическому редактору, то есть если где-то ещё на сайте используется готовый перевёрнутый градиент), или комбинация нескольких из них.

2. Плавные переходы (CSS3 transitions)


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

Yota антенна своими руками

Время на прочтение2 мин
Количество просмотров122K
Все началось с того, что резко упал сигнал с имеющейся антенны WFL 2700-24, 24dB. Что тому было виной, я до сих пор так и не выяснил. Может быть пигтейл расшатался в модеме или из-за снегопада завалило передающие антенны на базовой станции, я не знаю. Последовательно меняя компоненты системы, мне так и не удалось восстановить сигнал на прежнем уровне. Под подозрением оставалась антенна которую заменить было нечем. К сожалению, из антенн с большим усилением в магазинах были только аналогичные по конструктиву модели, поскольку я точно не знал, что вызвало падение сигнала, становиться владельцем 2 похожих антенн которые практически не работали у меня дома, меня не прельщало. Взяв за основу обычную спутниковую антенну Supral 900x1000, кусок пластиковой водопроводной трубы диаметром 40 мм и уже имеющийся модем Samsung U-200 я приступил.
Читать дальше →

Деобфускация PHP кода

Время на прочтение20 мин
Количество просмотров56K
Деобфускация PHP
Так уж случилось, что на днях мне попался один нужный PHP скрипт, но обфусцированный.
По какой-то причине он никак не работал. Я пишу на PHP достаточно давно, и мне очень нравится отлавливать нестандартные ситуации в скриптах, особенно когда при выполнении в логах нет ошибок, а скрипт просто не выполняет своих предназначенных обязанностей, руки так и чесались расшифровать. Последней каплей стало то, что автора этого скрипта не было в сети, чтобы помочь решить мою проблему. Скрипт кстати куплен моим товарищем, собственно он и попросил помочь.

Цель данной статьи, показать принцип дешифровки, зашифрованных скриптов, чтобы например расшифровать залитый злоумышленником вирус на PHP.

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

Bootstrap 2.0 – HTML+CSS+JS UI фреймворк

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

Вышла новая версия офигительного UI фреймворка от Twitter — Bootstrap 2.0 Для тех кто не в курсе что это, настоятельно рекомендую ознакомиться. Этот набор позволяет создавать отличные шаблоны сайтов за считанные часы (проверено на собственном опыте) на основе готовых элементов и экономить килотонны нервов на адаптации кода под разные браузеры.

Особенности Bootstrap:
  • Полный набор компонентов в виде стилей и анимаций поведения для элементов интерфейса
  • Поддержка возможностей HTML5, CSS3 (но при этом работает и в IE7!)
  • Поддержка идеологии 940-пиксельной сетки
  • Поддержка идеологии fluid-grid
  • Кросплатформенность — наборы стилей для десктопных и мобильных браузеров
  • Возможность кастомизации и добавления собственных стилей
  • Возможность добавлять jQuery плагины

Мастхэв для верстальщиков и проектировщиков интерфейсов!

Видеообзор Samsung Galaxy S 2

Время на прочтение1 мин
Количество просмотров517
Ну все, мы успели вдоволь наиграться одной из самых ожидаемых новинок на рынке смартфонов – Samsung Galaxy S II, теперь пришло время поделиться некоторыми впечатлениями. Смартфон оказался на самом деле очень ярким, но не без нюансов.

Надёжный и безопасный Linux (наш ответ Чемберлену)

Время на прочтение8 мин
Количество просмотров20K
После прочтения на Хабре недавних статей, посвящённых теме безопасности линукс систем, у меня возникло желание поделиться своей точкой зрения на этот вопрос.
Статья в целом рассчитана на начинающих администраторов, поэтому в ней изложены очевидные для хорошего специалиста вещи. Ценные дополнения и замечания приветствуются.
Копи-пейст выдержки из конфиг файлов я почти не буду приводить по трём причинам:
  1. Это приведёт с излишнему разрастанию статьи
  2. Маны и гугл никто не отменял
  3. Пункт 2 очень полезен для развития специалиста


Итак, как повысить безопасность и надёжность сервера (да и рабочей станции) на базе линукс?

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

Обработка пользовательких видео

Время на прочтение3 мин
Количество просмотров4.4K
Некоторое время я занимался (и занимаюсь до сих пор) веб-проектом, где необходимо было добавить фичу для загрузки пользовательских видео-роликов. Собственно, какие могут быть пользовательские видео? Очень разного качества и разнообразных форматов. Начиная от обычных flash файлов, которые представляют наименьшую проблему, до различных записей с телефонов. Встала задача — сделать демона, который бы занимался обработкой очереди загруженных файлов и выполнял следующие функции:
— Конвертирование видео в flash формат (FLV), ипользуя VP6 кодек
— Обновление метаинформации видеофайла
— Создание thumbnails из видео
— Дальнейшии манипуляции с БД

Конкретно в этой статье я рассмотрю варианты обработки уже сконвертированного в формат flash видео-ролика. Итак приступим.
Читать дальше →

База GeoIP – страны и города, январь 2011

Время на прочтение2 мин
Количество просмотров12K
Вышла в свет новая версия русскоязычной базы данных стран и городов. Основные изменения:
— для перевода названий городов использован API Карт Google (идея chernikov)
— для поиска по странам СНГ подключена база geobaza.ru (идея derketzer)
Результат этой работы доступен для свободного скачивания.
Читать дальше →

Программирование в PHP для командной строки

Время на прочтение9 мин
Количество просмотров43K
Предисловие

Ubuntu предоставляет в комплекте с пакетом apache2 утилиты для включения\выключения виртуальных хостов и модулей. Однако, создание конфигов для виртуальных хостов отнимают дополнительное время. Поэтому, мне захотелось исправить этот недостаток. Можно было, конечно, сделать автоматические поддомены для апача, но я решил написать скрипт, который создает файлы конфигурации виртуальных хостов для апача, а так же, при необходимости, добавляет имя хоста в файл /etc/hosts. Я не очень хорошо пишу скрипты в bash'e, поэтому решил использовать PHP для моей довольно простой задачи, который я, к тому же, знаю довольно неплохо.
Итак, в этой статье мы сделаем сразу две полезных вещи: ознакомимся с операциями ввода\вывода командной строки в PHP и напишем скрипт, который совсем немного упростит нам жизнь.
Читать дальше →

Сам себе сервис скриншотов

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

Все началось с ...


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

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

Первое, что пришло на ум — это готовые сервисы по созданию скриншотов, предоставяющие API. Но, перебрав некоторые (сейчас уже названия не помню), понял, что это не для меня: возможности были довольно урезаны, иногда приходилось довольно долго ждать «очереди», иногда сайты на скринах выглядели довольно убого. А главной проблемой было то, что все это должно было работать асинхронно и из скрипта я бы не смог понять — то ли сервис отдал мне временную картинку-заглушку, то ли уже готовый скриншот сайта.

Итого, я решил сделать собственный «велосипед».
Читать дальше →

Практические советы тем, кто хочет построить веб-сообщество ч.4

Время на прочтение4 мин
Количество просмотров1.2K
Вот созрела и 4-ая часть моей статейки с советами стартаперам, основанной на примере развития своего проекта — сообщества автотуристов.

Предыдущие части: Часть 1, Часть 2 и Часть 3

Глава 10. Где же мои рекламодатели?

image

В 9-ой главе предыдущей части я писал про необходимость составления и рассылки презентации, наглядно показывающей Вашим потенциальным рекламодателям все рекламные возможности Вашего проекта, краткий срез его аудитории и условия сотрудничества. Но главный вопрос я так и оставил не раскрытым: а куда слать-то презентацию и, послав, как понять, что она не покоится в «Спаме» ящика рекламодателя, а, хотя бы, была прочитана.
Читать дальше →

«Живой» концерт Хацунэ Мику

Время на прочтение1 мин
Количество просмотров93K
Японию захлестнула очередная волна любви к синтетической поп-звезде. Имя Хацунэ Мику, как и её голос, собран из нескольких составляющих — хацу (первый), нэ (звук) и мику (будущее).



Хацунэ Мику была создана ещё в 2007 году и быстро завоевала популярность, в Японии. Но сейчас, когда о ней стали потихоньку забывать, её создатели — Crypton Future Media решили пойти на беспрецедентный шаг – организовать её «живой» концерт при помощи анимированной 3D-голографии. Статья на Gizmodo частично объясняет, как это было осуществлено. На заглавном видео эпизод этого концерта.

Родитель первой синтетической поп-звезды — программное обеспечение Vocaloid небезызвестной фирмы Yamaha, имитирующее поющий голос человека на основе заданной мелодии и текста. Любую программу на основе неё можно условно поделить на две части: систему синтеза голоса (пения) и библиотеки исполнителей. Голос певца разбивается на небольшие отрывки и записывается в базу данных. Далее, пользователь набирает текст нового произведения, вводит ноты, задаёт ритм, а Vocaloid автоматически формирует песню, подбирая соответствующие тексту фонемы и звуки.

Мессенджер, встраиваемый в ваш сайт

Время на прочтение1 мин
Количество просмотров1.9K
В этом посте я хочу рассказать о новом продукте, которым я воспользовался, но не являюсь его создателем. В один прекрасный момент у меня появилась необходимость разработать мессенджер, подобрый месседжеру Facebook, для одного из моих сайтов. Задача была совсем не тривиальная. Я не стал изобретать «велосипед» (болезнь многих менеджеров проектов и разработчиков) и нашел готовое решение Imsgr.ru, с помощью которого можно установить мессенджер на любой сайт.


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

Что такое минимализм?

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

Минимализм vs. простота


Я постоянно слышу термин «минимализм» и «минималистический». В мире дизайна есть разные способы, чтобы описать дизайн, простой, ясный и удобный. Однако большинство используют термин — «минимализм». Если вы собираетесь использовать это слово, то по крайней мере потрудитесь понять истинное значение и использовать его правильно. Первое, что нужно понимать, что простота — это не минимализм. Они похожи, но они не то же самое.
Читать дальше →

Шарик, отвечающий на вопросы

Время на прочтение1 мин
Количество просмотров3.9K
Не знаю в какой блог засунуть. Видимо, «я пиарюсь» подходит больше остальных.

Сегодня я решал один важный вопрос и переклинило меня, что непременно нужно воспользоваться шариком, отвечающим на вопросы (как в фильме «трасса 60»).
Шарик, отвечающий на вопросы

Гугл нормальных online-шариков не нашел: либо предлагают купить материальный шарик, либо online, но этот шарик страшно выглядит и/или с хитрой логикой (например, нужно ввести текст вопроса, который проходит валидацию).

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

Возможно, кому-то такой шарик покажется чуть приятнее остальных.

http://www.ecm7.ru/8ball/

UPD:
Шарик переехал на собственный домен: www.8-ball.ru.
Старая ссылка тоже работает и перенаправляет на новое место.

UPD:
Благодаря NeonXP появилось расширение с шариком для Google Chrome.

Windows-компьютер без антивирусов

Время на прочтение6 мин
Количество просмотров64K
Предупреждение: Описанное в статье несколько устарело, т.к. я забросил винды в эпоху Windows 2003.

Каждый раз, когда меня знакомые спрашивают: «какой антивирус лучше?», я могу сказать только одно: «антивирус — как придворный шаман. Бывают лучше, бывают хуже, но определить, кто лучше камлает, не получится». Антивирус не гарантирует защиту от вирусов, более того, у него есть полное моральное право пропустить новую заразу и начать её детектить дня через 2-3 после «инцидента». Т.е. как основное средство защиты он годится не очень.

Ниже описывается настройка windows, которая позволит защититься от любых реальных (т.е. встречающихся в природе) вирусов без использования антивирусов. Данная конфигурация уже 3 с половиной года работает на терминальном сервере, где пользователи (в лучшие времена до 70 человек) совсем не стесняются притаскивать на флешках всяких засранцев, лазать по сети где попало и т.д.

Теория


Любой уважающий себя вирус, оказавшись запущенным, тем или иным методом стремится в системе закрепиться, т.е. создаёт исполняемый файл или библиотеку, которая прописывается тем или иным образом в запуск. «Авто» запуск или в форме «дополнения» к другим исполняемым файлам (debugger, hander, плагин, и т.д.) — не важно. Важно: существует барьер под названием «запуск кода». Даже старые-добрые вирусы, дописывающие себя в исполняемые файлы, всё равно должны иметь возможность писать в файлы, которые предполагается запускать.

Безусловно, есть вирусы, размножающиеся без создания файлов (например, мс-бласт). Но условием появления этого вируса должна быть доступность сервера для обращений с носителей вируса или запуск кода через эксплоит в браузере\сетевой компоненте. В случае дыры в браузере дальнейшее размножение не возможно (т.к. нужно обращаться к браузерам на других машинах, а это требует поднятия сервера, куда будут ходить другие пользователи и мотивации пользователям ходить именно на этот узел). В случае дыры в сетевой компоненте и размножения без сохранения на диск, описанная мною методика с большой вероятностью работать не будет и возможна эпидемия. Однако, я не уверен, что антивирусы поймают такой 0day эксплоит, плюс, их (дыры) довольно резво фиксят, так что этот сценарий я откладываю как маловероятный. Наличие же файрволов ещё более уменьшает их опасность. От не-0day вполне же спасает своевременная (автоматизированная) установка обновлений.

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

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

Однако, запреты и разрешения не будут иметь смысла, если не сформулировать правила, которые запретят запуск «чужаков».

Модель безопасности


Перед тем, как описать подробно конфигурацию, сформулирую теоретические принципы её организации:

1. То, куда пользователь может писать закрыто для запуска.
2. То, что пользователь может запускать, закрыто для записи.
Читать дальше →

Нормальное скачивание файлов

Время на прочтение1 мин
Количество просмотров20K
Сперва, хотелось бы сказать огромное спасибо за корректное объяснение причин проблемы хабраюзеру xn__p2a и принести извинения другим хабраюзерам за некоторую некомпетенцию в вопросе, имевшую место.

Наверное, все пользователи этого браузера не раз сталкивались со следующей проблемой: при попытке скачивания файла получаем следующее:
image
в очередной раз я словил этот баг когда захотел скачать flash player через только_что_поставленную Opera 10.60 и меня это сильно огорчило…
Да что-ж такое-то?

Информация

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