SQL-задача от Yandex (для php developer)

Задача от yandex. 
 
Есть таблица товаров. Нужно написать SQL-запрос для вывода пар id товаров с одинаковыми именами.
CREATE TABLE `goods` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

Прикольные фото про программистов для программистов

Прикольные картинки с программистами, прикольные картинки для программиста.

Набор смешных фото ко дню программиста.

Прикол - программист работает, программист ест

Почему закрыли onliner.by — один из самых популярных ресурсов Беларуси

onliner.by закрыт, но открылся onliner.ru

20 декабря 2014 года Оперативно-аналитическим центром было принято решение об исключении доменного имени onliner.by из реестра национальной доменной зоны. Причина закрытия    Министерством торговли Республики Беларусь были выявлены нарушения законодательства о торговле.

 

Парсинг robots.txt файлов на php

robots.txt — файл с инструкциями для поисковых машин. Обычно в нём указывают список url, которые нужно запретить к индексации (директива Disallow). Но, это далеко не все возможности robots.txt. В robots.txt можно:

  1. задать главное зеркало сайта с помощью директивы Host
  2. указать ссылки на файлы sitemap с помощью директивы Sitemap
  3. указать минимальный интервал в секундах с помощью директивы Crawl-delay, не ранее чем через который робот сделает запрос к следующей странице сайта. Обычно используют, если сайт не справляется с нагрузкой
  4. указать get-параметры, которые не стоит учитывать при индексации страниц с помощью директивы Clean-param
  5. задать urls, которые разрешены к индексации с помощью директивы Allow (протиповоложенность директиве Disallow)

Зачем "прятать" свой email адрес?

Многие люди (владельцы сайтов) размещают на страницах своего сайта свой E-mail адрес. Или же, что еще хуже, email-адрес своих пользователей.

В этой статье мы поговорим о том, как избежать спама от роботов на email так, чтобы при этом не ущемить права и возможности пользователя отправить Вам почту.

Если вы разместите свой е-меил адрес (мыло, мэйл, mail, e-mail) где-нибудь на видимом месте вашего сайта, то рано или поздно вам начнет приходить куча не нужного спама на ящик от ботов, которые серфят в интернете в поисках “свобоных” мыл, чтобы накидать туда спама :). В сети много ботов, которые “лазят” по интернету (сайтам, блогам, порталам, соц. сетям) в поисках новой партии актуальных email-адресов. Если не защитить свой ящик от ботов, то со временем и c ростом популярности сайта к вам будет приходить все больше и больше “ненужных” писем.

Форматирование текста в redmine

Привожу ссылку на официальную документацию по форматированию текста в redmine. Я же попробую сделать свою более удобную и наглядную статью (памятку по оформлению текста в redmine) с примерами по форматированию строковых, блочных, табличных элементов, вставке ссылок, подсветке исходного кода и вставке картинок в redmine.

подсветка синтаксиса кода в redmine

Что такое reverse dns lookup и как получить reverse dns

Что такое Reverse DNS легко понять, если вы знаете что такое DNS. Получение Reverse DNS - противоположенность DNS.

Т.е. если традиционный (прямой) DNS заключается в получении ip-адреса по хосту, то Reverse DNS (обратный, противоположенный) - это получение хоста по ip-адресу. Также Reverse DNS называют PTR-записью (pointer, указатель).

reverse dns lookup

 

Запросы инъекции для mysql

В mysql вместо ожидаемого хэша (строка из 40 букво-цифр) нашёл следующие данные. Я так понимаю, кто то хотел выполнить mysql инъекцию. Далее будут примеры строк для mysql-инъекций, которыми хотели взломать сайт (домен не разглашаю). Хоть инъекция и не прошла, но всё же проверку строки на ожидаемый формат я добавил.

Недостатки фреймворка Kohana

Недостатки фреймворка Kohana

1. IDE-подсказки при работе c ORM. Их нет. Например, код:

$latestPosts = ORM::factory('Post')->fetchLatests($limit);

Названия методов из класса Model_Post придётся вспоминать (например, fetchLatests), т.к. IDE покажет подсказки только для класса ORM, а Model_Post - наследник ORM. Перейти в метод по ctrl+click не получится. Вы можете возразить, есть же PHPDoc @var: 

/**
 * @var $modelPost Model_Post
 */
$modelPost = ORM::factory('Post', $postId);
$latestPosts = $modelPost->fetchLatests($limit); //теперь IDE любезно покажет доступные методы

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

Travis шифрование переменных

Шифрование нужно использовать, если вы хотите скрыть приватные данные от посторонних глаз.

На девелоперской машине нужно установить travis gem. gem install travis ставится долго, создаётся впечатление, что ничего не происходит, но нужно просто немного подождать.

sudo apt-get install rubygems
sudo gem install travis
travis encrypt "__PSW__=password"

Чтобы автоматически добавить шифрованную строку в конфигурационный файл travis .travis.yml, нужно команду encrypt выполнить с ключом --add

travis encrypt "__PSW__=password" --add

 

НОВЫЕ ПОЛЬЗОВАТЕЛИ