За последний месяц, я написал уже два поста с обзорами плагинов jQuery (1 и 2). Надо сказать, что подобные статьи на английском языке появляются все чаще и чаще. Однако их содержание довольно быстро приедается. Галереи картинок, слайдеры, опять галереи картинок, многочисленные динамические меню и опять слайдеры. Мне не хочется описывать очередную порцию подобных плагинов. Поэтому сегодня я расскажу не о двадцати-тридцати как обычно, а только о семи важных на мой взгляд плагинах, о которых очень хотелось рассказать. Лучше меньше, да лучше.
Николай Александров @dos
User
Подслушиваем в AD
3 min
49K
Введение
Я только недавно столкнулся с виндовыми доменами (Active Directory) и познаю много нового и удивительного. Так уж получилось, что значительное количество пользователей в домене организации имеют права локальных админов (технические специалисты, программисты и другие) (ведь не редко так бывает?). Но последствия от этого колоссальны. В данной статье мы рассмотрим как можно подслушивать звуки (разговоры, переговоры) на удаленных машинах.
+61
Evercookie — самые устойчивые куки
1 min
75KSamy Mamkar разработал систему, которая позволяет хранить куки в 8 местах, автоматически восстанавливая друг друга, и даже добиться того, чтобы куки, поставленное в одном браузере, действовало и в другом.
Удалить это куки практически невозможно! (Все возможно, конечно, но слишком много мороки)
Куки хранятся в:
При удалении из одного из этих мест кука автоматически восстанавливается из оставшихся. Работает даже если пользователь сменит браузер (через Local Shared Objects из Flash).
Описание (на английском) и демо: http://samy.pl/evercookie/.
Попробуйте удалить куки, почистить систему и зайти назад.

Как пользоваться?
Удалить это куки практически невозможно! (Все возможно, конечно, но слишком много мороки)
Куки хранятся в:
- HTTP Cookies;
- Local Shared Objects (Flash);
- Сохранение куки в значениях RGB автосгенерированных и форсированно кэшированных PNG с использованием HTML5 canvas;
- Сохранение куки в Web History;
- HTML5 Session Storage;
- HTML5 Local Storage;
- HTML5 Global Storage;
- HTML5 Database Storage через SQLite.
При удалении из одного из этих мест кука автоматически восстанавливается из оставшихся. Работает даже если пользователь сменит браузер (через Local Shared Objects из Flash).
Описание (на английском) и демо: http://samy.pl/evercookie/.
Попробуйте удалить куки, почистить систему и зайти назад.

Как пользоваться?
+103
Впечатляющие анимационные эффекты
2 min
115KTranslation
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
+230
+95
Запущен конкурс 10K Apart — создай веб-приложение в 10 Кб и выиграй $3000
1 min
1.3K
Команда Mix Online запускает конкурс для веб-разработчиков под названием 10K Apart.
По условиям конкурса, вы должны разработать веб-
Работа должна представлять собой совместимый со стандартами HTML5 веб-
Среди жюри конкурса известные люди: Jeffrey Zeldman, Eric Meyer, Nicole Sullivan, Whitney Hess, Jeremy Keith.
Победитель получит $3000, регистрацию на мероприятие An Event Apart в следующем году и книгу HTML5 for Web Designers.
На сайте конкурса представлено уже три работы.
+67
+87
Как выучить любой язык за 3 месяца?
6 min
99KПеревод статьи Тима Ферриса из его блога.

(Учебник Дзюдо Окано Исао, который я использовал для изучения японской грамматики)
Изучение языка не должно быть сложным.
Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.

(Учебник Дзюдо Окано Исао, который я использовал для изучения японской грамматики)
Изучение языка не должно быть сложным.
Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.
+165
+174
Древовидное облако тэгов
2 min
2.6KДолгое время любил и люблю нативный javascript без всяких примочек и рамочек. Однако фреймворки — вещь полезная!
По долгу службы полюбил jQuery, и пусть судорожно вздохнут все противники, а холивары с завистью потрут руки, но для меня это хоть и не было любовью с первого взгляда — теперь $() в моем сердце.
И, чтобы не быть эгоистом, делюсь со всеми своим первым публичным плагином — hcloud
По долгу службы полюбил jQuery, и пусть судорожно вздохнут все противники, а холивары с завистью потрут руки, но для меня это хоть и не было любовью с первого взгляда — теперь $() в моем сердце.
И, чтобы не быть эгоистом, делюсь со всеми своим первым публичным плагином — hcloud
0
Резюме для Google
2 min
25KTranslation
Нина Цепляева, Рекрутер на инженерные позиции, Google Россия
Кандидаты часто задают нам вопрос — каким должно быть правильное резюме для Google. Поэтому мы решили рассказать, на что обращают внимание рекрутеры в нашей компании.
#1 Не пишите мало. Не пишите много.
Идеальное резюме — это 1-2 страницы текста, из которых сразу понятно, что знает и умеет делать человек.
Старайтесь максимально конкретно обрисовать ваш опыт работы за последние 5-7 лет. Используйте только факты.
Не пишите сочинение: оно “отяжелит” резюме и нам сложно будет отделить важное от очень важного.
Не пишите о том, в чем не очень хорошо разбираетесь. На собеседовании наши инженеры могут начать задавать вам вопросы по предметам, с которыми вы не очень хорошо знакомы, и это негативно скажется на оценке вас как кандидата.
#2 Пишите доступным языком.
Постарайтесь избегать использования аббревиатур, используйте их только в общепризнанных случаях. К примеру, если вы работаете над проектом, который закодирован в вашей компании набором букв, расшифруйте его для того человека, который будет читать резюме.
#3 Образование и опыт.
Начнем со структуры: располагайте события от нового к старому. Текущее место работы на странице должно находиться над предыдущим.
Попытайтесь перечислить только самые значимые проекты, самые важные и интересные, которыми хотелось бы гордиться. Опишите цель проекта, используемые технологии, вашу роль в нем, его длительность и результат.
Перечисляя компании, где вы работали, расскажите нам, пожалуйста, чем эти компании занимаются, по возможности укажите ссылки на корпоративные сайты.
Укажите, где вы получили образование, на каком факультете учились в ВУЗе, какой у вас средний балл в дипломе.
Если у вас имеются публикации, расскажите нам о них.
#4 Достижения.
Если вы участвовали в олимпиадах или каких-либо научных соревнованиях, напишите нам о них: что за мероприятие, какое место вы заняли.
Если вы придумали что-то новое (какую-нибудь программу, алгоритм, изобрели велосипед, самопропалывающиеся грядки, самоналивающийся кофе и т.п.), обязательно расскажите нам об этом. Мы очень ценим кандидатов, способных придумать что-то новое и воплотить это в жизнь.
Помните, что для нас важны ваши способности, ваши знания и опыт, а не громкие названия занимаемых должностей. Если вы любите заниматься разработкой и никогда не были менеджером, не стесняйтесь этого! Многие люди не хотят управлять другими и являются при этом прекрасными специалистами в своей области.
#5 Увлечения.
Расскажите нам о своих хобби и увлечениях — о том, как вы проводите своё свободное время, чем интересуетесь, какие книги любите читать, на каких инструментах играете.
Для подачи резюме в Google нужно составить его на английском языке и отправить, перейдя по ссылке: Software Engineer — Moscow
Разговорный английский язык — это обязательное требование ко всем кандидатам, подающим резюме в Google.

Кандидаты часто задают нам вопрос — каким должно быть правильное резюме для Google. Поэтому мы решили рассказать, на что обращают внимание рекрутеры в нашей компании.
#1 Не пишите мало. Не пишите много.
Идеальное резюме — это 1-2 страницы текста, из которых сразу понятно, что знает и умеет делать человек.
Старайтесь максимально конкретно обрисовать ваш опыт работы за последние 5-7 лет. Используйте только факты.
Не пишите сочинение: оно “отяжелит” резюме и нам сложно будет отделить важное от очень важного.
Не пишите о том, в чем не очень хорошо разбираетесь. На собеседовании наши инженеры могут начать задавать вам вопросы по предметам, с которыми вы не очень хорошо знакомы, и это негативно скажется на оценке вас как кандидата.
#2 Пишите доступным языком.
Постарайтесь избегать использования аббревиатур, используйте их только в общепризнанных случаях. К примеру, если вы работаете над проектом, который закодирован в вашей компании набором букв, расшифруйте его для того человека, который будет читать резюме.
#3 Образование и опыт.
Начнем со структуры: располагайте события от нового к старому. Текущее место работы на странице должно находиться над предыдущим.
Попытайтесь перечислить только самые значимые проекты, самые важные и интересные, которыми хотелось бы гордиться. Опишите цель проекта, используемые технологии, вашу роль в нем, его длительность и результат.
Перечисляя компании, где вы работали, расскажите нам, пожалуйста, чем эти компании занимаются, по возможности укажите ссылки на корпоративные сайты.
Укажите, где вы получили образование, на каком факультете учились в ВУЗе, какой у вас средний балл в дипломе.
Если у вас имеются публикации, расскажите нам о них.
#4 Достижения.
Если вы участвовали в олимпиадах или каких-либо научных соревнованиях, напишите нам о них: что за мероприятие, какое место вы заняли.
Если вы придумали что-то новое (какую-нибудь программу, алгоритм, изобрели велосипед, самопропалывающиеся грядки, самоналивающийся кофе и т.п.), обязательно расскажите нам об этом. Мы очень ценим кандидатов, способных придумать что-то новое и воплотить это в жизнь.
Помните, что для нас важны ваши способности, ваши знания и опыт, а не громкие названия занимаемых должностей. Если вы любите заниматься разработкой и никогда не были менеджером, не стесняйтесь этого! Многие люди не хотят управлять другими и являются при этом прекрасными специалистами в своей области.
#5 Увлечения.
Расскажите нам о своих хобби и увлечениях — о том, как вы проводите своё свободное время, чем интересуетесь, какие книги любите читать, на каких инструментах играете.
Для подачи резюме в Google нужно составить его на английском языке и отправить, перейдя по ссылке: Software Engineer — Moscow
Разговорный английский язык — это обязательное требование ко всем кандидатам, подающим резюме в Google.

+34
SMS-уведомления из Nagios малой кровью
2 min
17KСтоял как-то раз админ в курилке и думал — а как бы ему так в нерабочее время вдали от компьютера и интернетов узнать, что на каком-то из его серверов проблема возникла. Можно конечно посадить студента за монитор с Nagios, чтоб он если что звонил админу и говорил «Тут красненькое что-то появилось»… Стоп. Звонил. На мобильный. Нафиг студента, SMS можно получать. На этом мысль остановилась и админ пошёл пить кофе. Потом вернулся и сел за рабочее место, где в браузуре был загружен Google Calendar… и решение пришло само.
+27
Fugue Icons 2.9.3a
1 min
2.4K
Совсем недавно существенно обновился набор замечательных иконок Fugue Icons от Yusuke Kamiyamane. Теперь их 2,926 (16х16) + 210 (24х24) + 46 (32х32) = 3182 качественные иконки для вашего сайта. В архиве также имеется версия без теней.
Лицензия Creative Commons Attribution 3.0 позволяет использовать иконки в любых целях со ссылкой на автора.
Превью 3Mb
Архив 4.9Mb
Архив+исходники 24.8Mb
+118
Простой и эффективный метод отразить http DDoS от 50мбит с помощью nginx и iptables
7 min
67KЗдравствуй, Хабр!
Предлагаю твоему вниманию простой и в то же время эффективный метод борьбы с http DDoS. На основе сервера Xeon 2.5GHz / 4Gb RAM / SAS можно отражать атаку примерно до 300 Мбит/с (значение получено методом экстраполяции).
Производится тонкая настройка параметров системы. Так что север будет способен выдерживать больше подключений от ботнета, чем канал до сервера сможет пропустить.
Борьба с Http DDoS на выделенном сервере или ВПС. Максимальная возможная мощность сдерживания DDoS атаки ограничивается физическими возможностями сервера и пропускной способностью канала.
Ваш сайт будет правильно индексироваться во время атаки, что позволит сохранить позиции в выдаче поисковых систем. Особенно актуально для сайтов с большими SEO бюджетами.
На время атаки придется отказаться от некоторых сервисов вашего сайта. Возможно, придется расширить полосу канала, перенести сайт на более мощный сервер. Эффективность достигается максимизацией коэффициента масштабируемости системы. Обеспечивается быстрое наращивание аппаратных ресурсов при увеличении мощности атаки.
Предлагаю твоему вниманию простой и в то же время эффективный метод борьбы с http DDoS. На основе сервера Xeon 2.5GHz / 4Gb RAM / SAS можно отражать атаку примерно до 300 Мбит/с (значение получено методом экстраполяции).
Способ реализация
Производится тонкая настройка параметров системы. Так что север будет способен выдерживать больше подключений от ботнета, чем канал до сервера сможет пропустить.
Область применения
Борьба с Http DDoS на выделенном сервере или ВПС. Максимальная возможная мощность сдерживания DDoS атаки ограничивается физическими возможностями сервера и пропускной способностью канала.
SEO под DDoS-ом
Ваш сайт будет правильно индексироваться во время атаки, что позволит сохранить позиции в выдаче поисковых систем. Особенно актуально для сайтов с большими SEO бюджетами.
Стоимость и эффективность
На время атаки придется отказаться от некоторых сервисов вашего сайта. Возможно, придется расширить полосу канала, перенести сайт на более мощный сервер. Эффективность достигается максимизацией коэффициента масштабируемости системы. Обеспечивается быстрое наращивание аппаратных ресурсов при увеличении мощности атаки.
+165
Плагин для отображения таблицы с данными. FlexiGrid
8 min
8.1KТаблицу мы будем делать используя jQuery-плагин «FlexiGrid».
Более чем уверен, что опытные программисты уже знакомы с этим плагином, но как показывает опыт, некоторые все же не знают о подобных вещах.
Более чем уверен, что опытные программисты уже знакомы с этим плагином, но как показывает опыт, некоторые все же не знают о подобных вещах.
-1
Highcharts: Красивые, динамические чарты за 5 минут!
2 min
67K
Highcharts — библиотека для создания чартов написанная на JavaScript, позволяет легко добавлять интерактивные, анимированные графики на сайт или в веб-приложение. На данный момент чарты поддерживают большое количество диаграмм линейных, круговых, колоночных рассеивающих и многих других типов.

Минимальная версия для IE составляет 6+. Также браузеры поддерживающие Canvas элемент, и в некоторых случаях SVG для графического рендеринга.
+125
ExtJS. Изложения в примерах
1 min
4.9KХотел бы начать знакомить всех с фреймворком ExtJS. Оказывается, все не так сложно как может показаться…
1. [ExtJS] :: Часть 1. Вводная. Модель DOM и типы данных в ExtJS
2. [ExtJS] :: Часть 2. Основы пользовательского интерфейса в ExtJS
3. [ExtJS] :: Часть 3. Загрузка, проверка и обработка форм в ExtJS
4. [ExtJS] :: Часть 4. Работа с выпадающими списками и календарем
5. [ExtJS] :: Часть 5. Отображение и редактирование табличных дан
6. [ExtJS] :: Часть 6. Обзор таблиц и списков
7. [ExtJS] :: Часть 7. Вкладки и деревья
Ссылка на ресурс тут
Пока все.
Думаю, что разработчиками будет интересно. Еще материалы планирую разместить немного позже, как появится свободное время.
PS. С НАСТУПАЮЩИМ!!!
1. [ExtJS] :: Часть 1. Вводная. Модель DOM и типы данных в ExtJS
2. [ExtJS] :: Часть 2. Основы пользовательского интерфейса в ExtJS
3. [ExtJS] :: Часть 3. Загрузка, проверка и обработка форм в ExtJS
4. [ExtJS] :: Часть 4. Работа с выпадающими списками и календарем
5. [ExtJS] :: Часть 5. Отображение и редактирование табличных дан
6. [ExtJS] :: Часть 6. Обзор таблиц и списков
7. [ExtJS] :: Часть 7. Вкладки и деревья
Ссылка на ресурс тут
Пока все.
Думаю, что разработчиками будет интересно. Еще материалы планирую разместить немного позже, как появится свободное время.
PS. С НАСТУПАЮЩИМ!!!
+18
Загрузка браузером нескольких файлов
5 min
30KЕсли нужно дать пользователю возможность загрузки нескольких файлов, традиционное решение на данный момент — использовать для этой цели Flash (реже — Java applet или ActiveX). В случае, если соответствующий плагин недоступен, пользователю, как правило, показывают стандартный HTML-элемент для загрузки файла.
Последнюю ситуацию можно улучшить, если использовать встроенную в браузеры возможность множественной загрузки файлов. Из всех браузеров сейчас данную возможность не поддерживает только Internet Explorer (впрочем, мы ещё не видели девятую версию, может там что-то изменится), остальные браузеры — Opera 9 и выше (а так же версии 3.5—6.05), Firefox 3.6+, Chrome 3.0.191.0+ и Safari 4.0.1+ такую возможность предоставляют.
Достаточно написать что-то вроде
К сожалению, «Опера» (ещё с версии 3.5) отправляет, при использовании мультизагрузки, файлы в контейнере «multipart/mixed», который PHP не понимает.
Я попробовал исправить эту ситуацию.
Последнюю ситуацию можно улучшить, если использовать встроенную в браузеры возможность множественной загрузки файлов. Из всех браузеров сейчас данную возможность не поддерживает только Internet Explorer (впрочем, мы ещё не видели девятую версию, может там что-то изменится), остальные браузеры — Opera 9 и выше (а так же версии 3.5—6.05), Firefox 3.6+, Chrome 3.0.191.0+ и Safari 4.0.1+ такую возможность предоставляют.
Достаточно написать что-то вроде
Copy Source | Copy HTML
- <form enctype="multipart/form-data" method="post">
- <input type="file" min="1" max="9999" name="file[]" multiple="true" />
- <input type="submit" name="submit" />
- </form>
PHP оказался готов к такой конструкции (именно для него в параметре «name» стоят квадратные скобки), он просто разложит загружаемые файлы по элементам массива $_FILES, если только мы не используем «Оперу».К сожалению, «Опера» (ещё с версии 3.5) отправляет, при использовании мультизагрузки, файлы в контейнере «multipart/mixed», который PHP не понимает.
Я попробовал исправить эту ситуацию.
+96
Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое
16 min
40K
Введение
С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:
0. Зачем вообще что-то оптимизировать? 1. Оптимизация ОС (FreeBSD) 1.1 Переход на 7.х 1.2 Переход на 7.2 1.3 Переход на amd64 1.4 Разгрузка сетевой подсистемы 1.5 FreeBSD и большое кол-во файлов 1.6 Softupdates, gjournal и mount options 2. Оптимизация фронтенда (nginx) 2.1 Accept Filters 2.2 Кеширование 2.3 AIO 3. Оптимизация бэкенда 3.1 APC 3.1.1 APC locking 3.1.2 APC hints 3.1.3 APC fragmentation 3.2 PHP 5.3 4. Оптимизация базы данных 4.1 MySQL 4.1.1 Переход на 5.1 4.1.2 Переход на InnoDB 4.1.3 Встроеный кеш MySQL - Query Cache 4.1.4 Индексы 4.2 PostgreSQL 4.2.1 Индексы 4.2.2 pgBouncer и другие. 4.2.3 pgFouine 4.3 Разгрузка базы данных 4.3.1 SphinxQL 4.3.2 Не-RDBMS хранилище 4.4 Кодировки 4.5 Асинхронность Приложение. Мелочи. 1. SSHGuard или альтернатива. 2. xtrabackup 3. Перенос почты на другой хост 4. Интеграция со сторонним ПО 5. Мониторинг 6. Минусы оптимизации
+361
Календарные типы данных в MySQL: особенности использования
6 min
83KВ MySQL 5 есть несколько типов данных для хранения даты и времени. Это TIMESTAMP, DATE, DATETIME, TIME и YEAR. Все они обладают своими особенностями, и выбор в пользу того или иного календарного типа должен производиться отдельно в каждой конкретной ситуации. Я хотел бы поделиться с вами результатом моего сегодняшнего миниисследования этих типов, в том числе в аспекте работы с временными зонами.
+5
Information
- Rating
- 9,915-th
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity