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

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

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

30 чудных библиотек для PHP программистов

Время на прочтение6 мин
Количество просмотров105K
Предлагаю читателям «Хабрахабра» перевод публикации «30 Amazing PHP Libraries for Programmers and Developers». Авторы собрали несколько удивительных PHP-библиотек, которые помогут реализовать некоторые классные вещи, не прилагая много усилий. Цель обзора состоит в том, чтобы преподнести что-то новое, поэтому список не включает популярные библиотеки.
Читать дальше →
Всего голосов 71: ↑60 и ↓11+49
Комментарии18

22 photoshop-плагина для фронтенд-разработчика

Время на прочтение2 мин
Количество просмотров74K
Предлагаю читателям «Хабрахабра» подборку 22 дополнений (скриптов) помощников, необходимых фронтенд-разработчику.

Hexy


Hexy

Печально выбирать слои в макете и каждый раз запускать палитру цветов только для того, чтобы получить шестнадцатиричное значение того или иного цвета. Hexy позволяет использовать инструмент «Пипетка»: нажмите на цвет объекта и скопируйте его непосредственно в буфер обмена.
Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии9

Поиск опечаток в проекте

Время на прочтение1 мин
Количество просмотров12K
Вычитывая документацию к одной библиотеке, обнаружил более десятка опечаток. Документация увесистая и редактируют её несколько человек.

Многократно просматривать тексты на опечатки нет времени и желания, копипастить тексты в онлайн-сервисы — долго и утомительно, хотелось как-то автоматизировать процесс. В итоге появился yaspeller на основе API Яндекс.Спеллера.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии12

Как взламывают корпоративный Wi-Fi: новые возможности

Время на прочтение4 мин
Количество просмотров89K
Статей о взломе Wi-Fi в Интернете достаточно много, но большинство из них касаются режима работы WEP/WPA(2)-Personal, в котором необходимо перехватить процедуру «рукопожатия» клиента и Wi-Fi-точки. Во многих корпоративных Wi-Fi-сетях используется режим безопасности WPA2-Enterprise, с аутентификацией по логину и паролю — как наименее затратный способ. При этом аутентификация осуществляется с помощью RADIUS-сервера.

image

ОС клиента устанавливает соединение с RADIUS-сервером, используя шифрование при помощи TLS, а проверка подлинности в основном происходит при помощи протокола MS-CHAPv2.
Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии29

Интересный и одновременно простой слайдер на чистом CSS3

Время на прочтение5 мин
Количество просмотров306K
Я никому не открою Америку, не удивлю публику новым фокусом и не взорву мозг тем, кто в CSS3 плавает, как аквалангист. Расскажу простой способ, как создать слайдер с помощью простых функций CSS3 без необходимости использовния javascript.
Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии39

Самые нужные плагины для Grunt

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


Доброго времени суток, всем! Кто-то умный, не помню в какой статье именно на Хабре, буквально недавно размышлял о процессе разработки с явным призывом автоматизировать все, что только можно автоматизировать. И лучше один раз потратить время на автоматизацию, чтобы потом экономить его на протяжении всего проекта.

У веб-разработчиков есть прекрасный инструмент для автоматизации массы задач, который называется Grunt. И моя страсть к таксономии заставила себя собрать огромную коллекцию почти из 100 ценных плагинов для этого сборщика. Думаю многие кто уже использует Grunt найдут для себя что-то нужное, а кто нет, глядя на возможности, получит хорошую мотивацию установить его и понять как эта штука работает.

А еще я выложил подборку на GitHub, чтобы каждый мог пополнить коллекцию.

Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии43

Symfony2. Универсальный инструмент для быстрого приготовления табличных списков в административной панели

Время на прочтение9 мин
Количество просмотров8K
Речь пойдет о бандле для Symfony2, первую версию которого я написал более двух лет назад. Всё это время я и мои коллеги активно его использовали, бандл периодически улучшался. Решил поделиться им с сообществом.

Практически в любом приложении требуется выводить табличный список сущностей, обязательно должна быть пагинация, неплохо также иметь возможность сортировки по всем полям и гибкую фильтрацию. Именно эти задачи и решает предоставленный на ваш суд AdminPanelBundle. Конечно, это не что-то новое — та же SonataAdminBundle предоставляет подобный функционал, но Соната — это монстр (в хорошем смысле этого слова), с кучей настроек и зависимостей, а моей целью было реализация быстрой и гибкой навигации по большим табличным массивам.
Читать дальше →
Всего голосов 10: ↑5 и ↓50
Комментарии6

Эффект капельного преобразования в CSS

Время на прочтение2 мин
Количество просмотров50K
Недавно мы рассказывали про морфинг форм в SVG, когда одна форма преобразуется в другую. А теперь давайте взглянем как формы могут перетекать друг в друга. Этот липкий тянучий амебный эффект многим знаком из видео c каплями ртути на поверхности.

image

Читать дальше →
Всего голосов 61: ↑60 и ↓1+59
Комментарии25

Несколько интересных особенностей MySQL

Время на прочтение8 мин
Количество просмотров63K
В не очень далеком прошлом мне пришлось покопаться немного в исходном коде MySQL, и разобраться в некоторых аспектах его работы. В ходе работы лопаткой, и эксперимeнтов, я наткнулся на несколько очень интересных особенностей, часть из которых просто забавна, а в случае некоторых бывает очень интересно понять, чем руководствовался программист, который принимал решение сделать именно так.

Начнем с такого интересного типа, как ENUM.

mysql> CREATE TABLE enums(a ENUM('c', 'a', 'b'), b INT, KEY(a));
Query OK, 0 rows affected (0.36 sec)

mysql> INSERT INTO enums VALUES('a', 1), ('b', 1), ('c', 1);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0


Итак, у нас есть таблица, в ней есть два столбца. У первого, a, тип ENUM, у второго, b, INT. В таблице три строки, у всех трех значение b равно 1. Интересно, чему равны минимальный и максимальный элементы в столбце a?

mysql> SELECT MIN(a), MAX(a) FROM enums;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| c      | b      |
+--------+--------+
1 row in set (0.00 sec)


Кажется странным, было бы разумно, если бы самым маленьким был 'a', а самым большим — 'c'.
А что если выбрать минимум и максимум только среди тех строк, где b = 1? То есть, среди всех строк?

mysql> SELECT MIN(a), MAX(a) FROM enums WHERE b = 1;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| a      | c      |
+--------+--------+
1 row in set (0.00 sec)


Вот так мы заставили MySQL поменять свое мнение о том, как сравнивать поля в ENUM, просто добавив предикат.
Разгадка такого поведения заключается в том, что в первом случае MySQL использует индекс, а во втором нет. Это, конечно, не объясняет, почему MySQL сравнивает ENUMы по разному для сортировки в индексе, и при обычном сравнении.

Второй пример проще и лаконичнее:

mysql> (SELECT * FROM moo LIMIT 1) LIMIT 2;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)


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

Интересно, что далеко не любой SELECT в скобках сработает, в частности, UNION в скобках — это синтаксическая ошибка:

mysql> (SELECT * FROM moo UNION ALL SELECT * FROM hru) LIMIT 2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION ALL SELECT * FROM hru) LIMIT 2' at line 1


Еще несколько интересных примеров под катом
Читать дальше →
Всего голосов 113: ↑110 и ↓3+107
Комментарии95

Raspberry и Telegram: предпосылки создания умного дома

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


Один итальянский магазинчик нащупал новые способы использования Телеграма (и ранее WhatsApp'а), установив его на одноплатный миниатюрный компьютер Raspberry Pi. Как выясняется, мессенджер можно использовать для удалённого общения с собственной техникой. Ниже – перевод статей (1, 2) с сайта Instructables.com. Если есть уточнения по переводу, напишите об этом в комментариях.

Читать дальше →
Всего голосов 52: ↑44 и ↓8+36
Комментарии62

Был получен несанкционированный доступ к более чем 20 000 камерам видео-наблюдения Москвы (теперь вы тоже)

Время на прочтение5 мин
Количество просмотров252K
Привет, Хабрахабр! Наверняка многие из вас помнят легендарный пост «Были получены исходники 3300 глобальных интернет-проектов», который долгое время был первым в рейтинге всех публикаций на сайте. Несмотря на схожий заголовок у моего поста, не претендую на первое место, но считаю, что вам стоит обратить внимание.


Читать дальше →
Всего голосов 325: ↑317 и ↓8+309
Комментарии228

Несколько интересностей и полезностей для веб-разработчика #37

Время на прочтение6 мин
Количество просмотров41K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Buzz.js




В последнее время в интернете все чаще и чаще встречаются проекты, где различные интерфейсные элементы сопровождаются определенными звуками. Я бы даже сказал, что UX/UI в вебе переходит на новую ступень эволюции. А Buzz.js одним из первых готов помочь вам в озвучке вашего интерфейса. Это библиотека для работы с HTML5 Audio API с рядом подходящих обработчиков событий.

var mySound = new buzz.sound( "/sounds/myfile", {
    formats: [ "ogg", "mp3", "aac" ]
});

mySound.play()
    .fadeIn()
    .loop()
    .bind( "timeupdate", function() {
       var timer = buzz.toTimer( this.getTime() );
       document.getElementById( "timer" ).innerHTML = timer;
    });


Читать дальше →
Всего голосов 57: ↑52 и ↓5+47
Комментарии5

Дайджест интересных материалов из мира Drupal #3

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

Мы отобрали для вас самое интересное и полезное из мира Drupal за первые недели 2015 года.

Druplicon

По-русски



  1. Во-первых, в тестовом режиме запустилась новая площадка сообщества DrupalifeCommunity. Слово автору:
    Сразу скажу о судьбе проекта. Им я не претендую заменить Drupal.ru, это совершенно отдельное и самостоятельное начинание. Скажем так, альтернативное сообщество, как каким-то пытался стать DrupalSN.

    На новой площадке уже замечено несколько друпал-гуру, а это хороший знак :)
  2. Чуть ли не первая серьёзная статья на русском, в которой одновременно встречаются слова Drupal и Postgres: «Тестирование производительности Drupal: MySQL vs PostgreSQL часть 1». Очень ждём следующих частей!
  3. Продолжая тему баз данных, Роман Агабеков подробно пишет про репликацию master-slave MySQL.
  4. Как же без Panels: в этот раз «Добавляем поддержку Token'ов в настройки Panel Pane».
  5. Рубрика «Антиквариат»: код либрусека пятилетней выдержки.

Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии21

Опыт создания домашнего Wi-Fi маршрутизатора. Часть 2. Установка и настройка ПО

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


И снова здравствуйте!

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

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

Итак…
Поехали!
Всего голосов 20: ↑17 и ↓3+14
Комментарии37

Облачные IDE для веб-программистов

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


Здравствуйте, уважаемые коллеги и друзья! Меня зовут Евгений, в начале данной статьи я расскажу Вам о 4-ех облачных IDE для веб-разработчиков, а потом о новой online среде разработки, цель которой объединить возможности самых мощных IDE (например: webstorm), простой дизайн Sublime Text и новые решения.
Читать дальше →
Всего голосов 49: ↑35 и ↓14+21
Комментарии98

imarker — коммерческая СОРМ-like веб-аналитика уже у вашего провайдера

Время на прочтение4 мин
Количество просмотров93K
Используете провайдера Акадо, ТТК, Ростелеком, Эр-Телеком, NetByNet или qwerty? Имеете веб-сайт, и видели запросы с IP 92.242.35.54 и User-Agent WebIndex? Возможно, вам будет интересно узнать больше о вашем провайдере и о компании imarker.

О чем речь-то?

Вышеперечисленные провайдеры подключены к сервису «таргетированной рекламы» imarker, которому они зеркалируют исходящий от пользователя трафик. Зеркалируют не только саму ссылку, но и, как минимум, все заголовки до удаленного HTTP-сервера. Как они сами заявляют, у них обрабатывается 38 млн. абонентов ISP.

image

Как только они получают трафик от пользователя, они переходят по ссылке, по которой только что перешел пользователь, и, вероятно, анализируют данные со страницы. Переход происходит буквально моментально (как правило, до 0.5 секунды), информация кешируется примерно на сутки.
Читать дальше →
Всего голосов 106: ↑105 и ↓1+104
Комментарии169

Две недели с врагом или Nokia Lumia 1520 глазами владельца техники Apple

Время на прочтение7 мин
Количество просмотров70K
Хочу поделиться своими впечатлениями от смартфона на WinOS. Возможно, кому-то будет полезен мой опыт с WinPhone-интефейсом после многолетней работы на iOS.

Introduction

Перед началом чтения отзыва обратите внимание: обзор писался в повествовательной форме, поэтому скрыт под хабракатом. Если вы хотите узнать итоговую оценку — просто посмотрите достоинства и недоработки которые я выделил ниже. Интересно услышать вашу точку зрения на обзор.
Подробности
Всего голосов 61: ↑34 и ↓27+7
Комментарии90
12 ...
7

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность